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": "Verwerfen",
"action_open_news": "News öffnen",
"action_update": "Aktualisieren",
"activity": {
"days_ago": {
"one": "vor 1 Tag",
"other": "vor {count} Tagen"
},
"hours_ago": {
"one": "vor 1 Stunde",
"other": "vor {count} Stunden"
},
"just_now": "gerade eben",
"minutes_ago": {
"one": "vor 1 Minute",
"other": "vor {count} Minuten"
},
"never_updated": "Noch nie aktualisiert",
"pending_at": {
"one": "1 ausstehendes Update",
"other": "{count} ausstehende Updates"
},
"title": "Aktivität",
"updated": "Aktualisiert",
"updated_days_ago": {
"one": "Vor 1 Tag aktualisiert",
"other": "Vor {count} Tagen aktualisiert"
},
"updated_today": "Heute aktualisiert"
},
"caption_checked": "geprüft {time}",
"caption_ignored": {
"one": "1 Paket ignoriert",
@@ -33,6 +60,10 @@
"press_key": "Beliebige Taste zum Schließen drücken"
},
"settings": {
"activity_history_length": {
"description": "Wie viele der letzten Prüfungen für das Aktivitätsdiagramm aufbewahrt werden.",
"label": "Länge des Aktivitätsverlaufs"
},
"assume_yes": {
"description": "Übergibt --noconfirm / -y, damit Paketmanager nicht nach Bestätigung fragen. Aus bedeutet, du bestätigst jedes Paket im Terminal-Fenster selbst.",
"label": "Automatisch mit Ja bestätigen"
@@ -84,6 +115,10 @@
"description": "Sendet eine Desktop-Benachrichtigung, wenn eine Prüfung aktualisierbare Pakete findet.",
"label": "Bei gefundenen Updates benachrichtigen"
},
"show_activity_graph": {
"description": "Zeichnet die Anzahl ausstehender Updates über die letzten Prüfungen sowie den letzten Update-Zeitpunkt auf und zeigt sie als kleines Diagramm im Panel. Deaktiviert stoppt auch die Aufzeichnung.",
"label": "Aktivitätsdiagramm anzeigen"
},
"show_count": {
"description": "Zeigt die Anzahl ausstehender Updates neben dem Bar-Symbol.",
"label": "Anzahl der Updates anzeigen"