From ecf11290bda5a670ff520f62a96d85645ad95d82 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 20 Oct 2026 12:23:50 +0200 Subject: Filter bars: chips read as buttons, status dots, group labels Chips get a button background and border, a dot in the color the table uses for that status, and a muted label per group (overlay, status, state, result). Search fields get a search icon and a clear button. Phase 2 spec: why the signing key locks after the GUI quits. Co-Authored-By: Claude Opus 5.5 --- docs/superpowers/specs/2026-10-19-sb-builder-phase2-design.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'docs/superpowers') diff --git a/docs/superpowers/specs/2026-10-19-sb-builder-phase2-design.md b/docs/superpowers/specs/2026-10-19-sb-builder-phase2-design.md index 66fb2c1..21a041f 100644 --- a/docs/superpowers/specs/2026-10-19-sb-builder-phase2-design.md +++ b/docs/superpowers/specs/2026-10-19-sb-builder-phase2-design.md @@ -149,8 +149,14 @@ fields, not an error. `gpg-preset-passphrase --forget` per keygrip and returns `{"error": "bad passphrase"}`. The passphrase is never put on a command line, in the environment, in a log or on disk. -- To verify in planning: whether a preset passphrase expires with the cache - TTLs or lasts until the agent restarts. The GUI checks state before every +- Found 2026-10-20: the preset passphrase is lost when gpg-agent exits, and + it exits when root's last login session ends. elogind then removes + `/run/user/0` (root does not linger), where the agent's sockets live; the + agent notices its socket is gone and terminates. The GUI's ssh + ControlMaster keeps a session open while sb-builder runs, so the key stays + unlocked as long as the GUI does, and locks about 10 minutes after it + quits (ControlPersist). Accepted as is; `loginctl enable-linger root` + would keep the agent across sessions. The GUI checks state before every real run either way. ### Version -- cgit v1.2.3