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
+20 -1
View File
@@ -1,6 +1,6 @@
id = "yuuto/arch-updater"
name = "Arch Updater"
version = "1.0.1"
version = "1.1.0"
plugin_api = 9
author = "yuuto"
license = "MIT"
@@ -86,6 +86,25 @@ label_key = "settings.check_reboot_needed.label"
description_key = "settings.check_reboot_needed.description"
default = true
# ── Activity ─────────────────────────────────────────────────────────────────
[[setting]]
key = "show_activity_graph"
type = "bool"
label_key = "settings.show_activity_graph.label"
description_key = "settings.show_activity_graph.description"
default = true
[[setting]]
key = "activity_history_length"
type = "int"
label_key = "settings.activity_history_length.label"
description_key = "settings.activity_history_length.description"
default = 10
min = 3
max = 30
visible_when = { key = "show_activity_graph", values = ["true"] }
# ── Update run ───────────────────────────────────────────────────────────────
[[setting]]