fix(tui): fade the resumed-session notice instead of pinning it - #28
Merged
Conversation
The "resumed session <id>" notice was posted as a sticky note, so it stayed on screen until six newer notices pushed it out. Make it transient like the other info traces. Same symptom, second cause: transient notes posted outside handleEvent (ctrl+t, ctrl+e, cancel acks, session resume) never armed the noticeExpireMsg sweep, so they only faded when an unrelated render happened. Add transientNoteCmd, which posts the note and returns the sweep cmd, and batch it at every non-event call site.
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.
Summary
Fixes the
resumed session <id>notice never disappearing after resuming a session via the^Rpanel.Two root causes, one symptom:
addNote(sticky — only evicted by six newer notices) instead of as a transient trace. It now fades after the 3snoticeTTLlike skill/memory/subagent notes.handleEvent(ctrl+t,ctrl+e, cancel acks, the resume path) never armed thenoticeExpireMsgsweep — the tick was only scheduled insidehandleEvent— so those notes also lingered on an idle screen until an unrelated render. NewtransientNoteCmdhelper posts the note and returns the sweep cmd; batched at all five non-event call sites.The
server log · <path>notice stays sticky deliberately — it's a durable pointer to the log file, not a transient trace.Test plan
make fmt/make vetcleanmake lint— 0 issuesmake test— full-racesuite greenTestResumedSessionNoteFades: resume notice is transient, sweep cmd is armed, note pruned after TTLTestCancelRunGuardsupdated to the new contract (idle cancel returns the notice sweep, posts the transient note)