fix(arch-updater): tighten package list UI and fix Dismiss/Update panel behavior (#289)

* fix(arch-updater): tighten package list spacing and icon size

* fix(arch-updater): make Dismiss actually clear the pending list

* fix(arch-updater): make hitting update close the panel

* feat(arch-updater): add per-source icons to the package list header

* feat(arch-updater): add an activity graph to the panel

Tracks the pending-update count across recent checks and when the last
update ran, persisted to disk so it survives restarts. Off also stops
recording history, not just hiding it.

* feat(arch-updater): show per-point detail on activity graph hover

ui.graph has no pointer props of its own, so a row of ghost buttons
sits under the line as per-point hit targets, each with a native
tooltip. History entries now carry a timestamp and whether the check
followed an update run, so hovering a point says when it happened and
either its pending count or "Updated".

* fix(arch-updater): load activity history at startup, not on first check

loadHistoryState() only ran lazily inside recordCheck/recordUpdateRun,
so a freshly started service published an empty history until a check
completed, hiding the graph even when prior sessions had data on disk.

* fix(arch-updater): render activity graph with sharp points, not curves
This commit is contained in:
Yuuto
2026-08-07 22:27:08 -04:00
committed by GitHub
parent 41a5373cd0
commit 4fcd5f1686
7 changed files with 398 additions and 18 deletions
+35
View File
@@ -3,6 +3,33 @@
"action_dismiss": "Dismiss",
"action_open_news": "Open news",
"action_update": "Update",
"activity": {
"days_ago": {
"one": "1 day ago",
"other": "{count} days ago"
},
"hours_ago": {
"one": "1 hour ago",
"other": "{count} hours ago"
},
"just_now": "just now",
"minutes_ago": {
"one": "1 minute ago",
"other": "{count} minutes ago"
},
"never_updated": "Never updated",
"pending_at": {
"one": "1 pending update",
"other": "{count} pending updates"
},
"title": "Activity",
"updated": "Updated",
"updated_days_ago": {
"one": "Updated 1 day ago",
"other": "Updated {count} days ago"
},
"updated_today": "Updated today"
},
"caption_checked": "checked {time}",
"caption_ignored": {
"one": "1 package ignored",
@@ -36,6 +63,10 @@
"press_key": "Press any key to close"
},
"settings": {
"activity_history_length": {
"description": "How many of the most recent checks to keep for the activity graph.",
"label": "Activity history length"
},
"assume_yes": {
"description": "Pass --noconfirm / -y so package managers do not ask for confirmation. Off means you confirm each one in the terminal window.",
"label": "Answer yes automatically"
@@ -87,6 +118,10 @@
"description": "Send a desktop notification when a check finds packages to upgrade.",
"label": "Notify when updates are found"
},
"show_activity_graph": {
"description": "Track pending-update counts across recent checks and when you last updated, shown as a small graph in the panel. Turning this off also stops recording the history.",
"label": "Show activity graph"
},
"show_count": {
"description": "Show the number of pending updates next to the bar glyph.",
"label": "Show the update count"