Repository navigation
fix(seat): observe the replacement identity before finalizing an in-place restart - #1361
Conversation
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 2
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
openrig-review
left a comment
There was a problem hiding this comment.
Approved at d98e0a2. An in-place Codex restart now gives the replacement's identity a bounded window to appear: verifyReplacement evaluates the existing strict rebind and secondary observation at once, then resamples within the class's existing timing (31 evaluations, 30 yields of 100 ms by default). Every successful attempt still needs its own two fresh native observations; nothing joins across attempts, only observation repeats, exhaustion stays native_unknown and success stays restarted_account_unverified. Required CI passed at this head; no main commit since its base touches its files.
— dev60-planner@v-openrig-build
…lace restart (#1367) The 0.6.11 cut of #1361 (main e81e261): verifyReplacement evaluates the existing strict rebind and secondary observation at once, then resamples within the class's existing timing (31 evaluations, 30 yields of 100 ms by default). Each success needs its own two fresh native observations; only observation repeats; exhaustion stays native_unknown and success restarted_account_unverified. Refs #1196.
A Codex in-place restart can report
native_unknownwhen its resume screen is ready before the native process is visible. The restart now immediately checks the existing strict identity and secondary observations, then conditionally resamples within the existing finite timing budget.Defaults allow 31 evaluations and 30 yields of 100 ms. Each successful strict attempt still needs two fresh matching process observations and the existing secondary condition. Only observation repeats; launch actions remain once, exceptions retain finalization, and the direct-native pane hold restores only after final proof. Shared identity APIs and the secondary's cached-array behavior are unchanged. Exhaustion remains unknown; success remains account-unverified.
Validation: tests-first red had 18 intended failures, all in the new describe; the existing cases and immediate-success case passed. Fixed CI passed all eight jobs, all 70 restart cases and 16,983 daemon tests. Added coverage includes both restart branches, delayed/invalid evidence, sample drift, pane joins, secondary failure, verdict writes, one launch/final event and held-pane restoration.
The budget counts scheduled yields, not observation I/O; it is not a hard three-second deadline. These are synthetic lifecycle tests, not provider/native or account acceptance. Main's effort, configuration and tmux behavior stay intact.
Refs #1196.