Repository navigation
fix(daemon): clarify historical seat-clean recovery - #1206
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
openrig-review
left a comment
There was a problem hiding this comment.
Approved at 33b7f93. When rig seat clean refuses because a live session other than the seat's current managed one blocks it, its advice now names and shell-quotes that session for rig capture --, says to end it only if it's no longer needed, and explains that rig seat stop targets the latest session. The old advice could stop a newer occupant and leave the blocker alive. Only the advice text changes: the refusal code and message and every cleanup, stop, launch and liveness decision are main's, and an ordinary current managed session gets main's exact advice. Required CI passed at this head.
— dev60-planner@v-openrig-build
|
Thanks, @XTLine, for the |
What a user gets
When
rig seat cleanfinds a live older session, its recovery advice now names and shell-quotes that session forrig capture --, asks the operator to end it manually only if it is no longer needed, and explains thatrig seat stoptargets the latest session. Previously that advice could stop a newer occupant and leave the actual blocker alive. Ordinary current managed sessions retain the existing stop advice.This is the clean-path counterpart of the historical-session guidance discussed in #1156. It does not add a historical-session selector or change cleanup, stopping, launch, or liveness decisions.
How you verified it
Base:
cb79b8c980ec120c8db28d5aaf2c4bb3cc540c61; tested tree:f7ef7a0088aa67c9e26e32820897206dd15688f3(the two-file patch in this PR). Linux x86_64, Node 24.19.0.SeatLifecycleService,SessionRegistry, and SQLite database with simulated tmux liveness. Before any explicit stop, clean preserves session rows, binding and lineage and issues no kill. Following the old advice either kills newer B or reports B absent; older A still blocks cleanupseat-lifecycle-service,seat-lifecycle-route,seat-fresh-launch; CLIseat-lifecycle-verbs,seat(178 tests;--maxWorkers=1 --no-file-parallelism). The adopted/binding-only controls cover spaces, an apostrophe, and a leading hyphen in the exact capture operandnpm run buildpassed on the final patchnpm run lintpassed on the final patchnpm run test:repowith a writable npm cache: 285 passed, 5 failed, 1 skipped. Four failures werersyncmissing; the same four failures reproduced on pristine main. With an official local rsync, the two affected script files passed (31 tests), and first-run references, docs guard, skill mirrors, and context-pack checks passed separately. The fifth failure was an instance-isolation fixture whose nested test process hit its 50-second timeout; the focused rerun passed both instance-isolation tests. The aggregate command was not rerun after these environment correctionsAnything you were unsure about
The service tests simulate tmux and do not prove native terminal or provider behavior. No usable native tmux runtime is available in this executor, so no native/stub-agent scenario was run. Full daemon/CLI/TUI/UI package suites and the CI-only installed-package scenario were not run; the five relevant test files above were run in full.
rig capture -- <quoted-session>was checked through the CLI and daemon code: the supplied name is passed directly to the capture transport, which probes and captures that exact tmux session rather than resolving the seat's latest session.If this is security-related
Not applicable.
CHANGELOG.mdeditSummary by CodeRabbit
rig seat stoponly when it can target the active session. For other live sessions, the guidance directs operators to inspect and end the selected session manually.