Repository navigation
fix(host): the marked repair also removes the old socket of an older host - #305
Conversation
|
@codex review |
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
…-socket # Conflicts: # .agents/skills/verify-session-lifecycle/coverage.json
Why
ThomasK33 asked to work every deferred follow-up of the first autopilot round until none is left, and to ship valid deferred review findings as a follow-up PR in the same run. Codex's last review round on #284 found this one (P2, thread on
src/host/lifecycle.ts), and #284 deferred it because that round took blockers only.A reconcile that repairs a marked session (#284) records
destroyedand then unlinks the session's socket. A host of an older version listens at the old path under/tmp/agent-tty(#288). The repair never removed that old socket, solistorinspectrecordeddestroyedand left the old socket file of a dead host until a latergcordestroy.recordDestroyedalready removes it.What changed
src/host/lifecycle.ts: after the marked repair's unlink and socket directory cleanup,reconcileSessioncallsremoveLegacySocketBestEffort, asrecordDestroyeddoes. That helper removes the old socket only whenisOwnLegacySocketaccepts it, and it logs errors instead of throwing them..agents/skills/verify-session-lifecycle/scripts/facts.mjs: theReconcileRepairsMarkedpattern includes the new statement. SKILL.md andsrc/host/README.mdname the old-socket removal. The model has one host version, so the old socket path stays outside it.Behavior changes for CLI and JSON users
list,inspectorgcrepairs a marked session, the old socket of an older host is gone too.Validation
Red first: at
933125a0(test only),a reconcile that repairs a marked session removes itfailed (the old socket under/tmp/agent-ttystayed). It passes on the head. The two other old-socket tests (destroy removes it when the host is dead,destroy keeps it when the host check throws) pass before and after.Lifecycle check (
check.sh --update-coverage): all 71 runs as expected,current25,534,376 distinct states andcurrent-no-token24,675,744 (unchanged: the model does not change, andReconcileRepairsMarkedstill reads TRUE). Coverage synced in4eb86f8d.Gates: typecheck, lint and format pass. Unit 1930/1930.
socket-directoryandlifecycleintegration 77/77 (vitest run --maxWorkers=1 --retry=2).Merge of main
ca7c6367(fix: create stops its host and names the session on every error of its readiness wait #294, ci: give the macOS quality gates 45 minutes instead of 30 #306, docs: say that a query a shell command prints leaves its reply at the next prompt #298; mergead0395c2, coveragea0ce3474), no Codex round (Codex round 1 on4eb86f8dwas clean in both lanes). Onlycoverage.jsonconflicted.check.sh: all 71 runs as expected, same state counts.facts.mjsdrift 0. Unit 1938/1938. Typecheck and lint pass.Generated with
xum• Model:anthropic:claude-opus-5-5• Thinking:xhigh