feat(terminal): S2 DSK confirm flow — completes the node console (#215)#223
Merged
Conversation
Surface the S2 DSK confirmation (#187) in the terminal so an operator can complete an Authenticated / Access Control inclusion: - subscribe to the DSKPendingConfirmation(y s) signal; a non-empty payload records {nodeId, dsk} on ActivityState, an empty one (the daemon's "cleared" notice once the PIN is accepted / the session ends) clears it; - drawHeader shows a colour banner while pending: "DSK confirm: node N <partial-DSK> -> press [k] to enter PIN"; - [k] prompts the 5-digit PIN and calls ConfirmDSK(nodeId, pin). A malformed PIN is ignored daemon-side, so the banner stays up for a retry; on success the daemon's empty signal clears it. Banner-plus-key (not an auto-popped modal) keeps it non-intrusive and naturally supports retry. The signal handler only stores state — the blocking PIN prompt runs on the UI thread. This is the last #215 step — the master/detail console redesign is complete. Builds on both presets; 471/471 ctest unaffected; clang-format + clang-tidy clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The last piece of the console redesign (#215) and the last operator-facing gap in the S2 inclusion flow (#187): confirm a node's DSK from the terminal.
What
DSKPendingConfirmation(y s): a non-empty payload records{nodeId, dsk}onActivityState; the daemon's empty notice (sent once the PIN is accepted / the session ends) clears it.DSK confirm: node N <partial-DSK> -> press [k] to enter PIN. The partial DSK (first group shown as00000) is for matching against the device label.[k]prompts the 5-digit PIN and callsConfirmDSK(nodeId, pin). A malformed PIN is ignored daemon-side, so the banner stays up for a retry; on success the daemon's empty signal clears it.Why banner + key (not an auto-popped modal)
Less intrusive (doesn't hijack the screen mid-task), and naturally supports retry. The signal handler only stores state — the blocking PIN prompt runs on the UI thread (signal handlers run on the async event-loop thread and mustn't block).
Notes
Builds on both presets; 471/471 ctest unaffected (TUI has no ctest harness); clang-format + clang-tidy clean.
#215 complete
console shell → live values → contextual actions → signal-driven refresh → DSK confirm. The terminal is now a full master/detail node console. Closes #215.
🤖 Generated with Claude Code