Repository navigation
Fix Codex saved histories that reference replaced rollout files - #842
Merged
Merged
Conversation
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.
Codex sessions that replace their rollout file or reference a prefix of an older rollout now appear as one saved session. Freshell follows the selected history head, reads only the referenced byte and message boundaries, and uses the logical session ID when resuming. Both search paths see the same selected history.
The resolver observes Codex's read-only SQLite selection and archived rollouts, invalidates cached dependencies when they change, and reports unresolved histories with structured logs. Unclassified copies remain quarantined; removing a copy restores the saved row without a browser reload. Running terminals remain available during quarantine.
Also repairs the FreshAgentView test race that could assert against a detached lazy-Markdown fallback node.
The disposable Docker test sandbox now reaps orphaned child processes. A controlled reproduction showed that accumulated zombies can exhaust its existing 512-process limit and cause terminal-creation checks to time out; Docker's init process prevents that accumulation while retaining the limit.
Validation:
Deployment of the live Rust server is a separate operation.