fix: retain catalog and layout state across resume - #873
Merged
Merged
Conversation
Fresh-process resume rebuilt the tool catalog and project layout, changing the request prefix despite unchanged conversation history. Persist selected tool names and order plus the same-workspace layout segment. Resolve names against the current registry and retain current instructions and permission checks. Cover save/load and fresh-process restart in offline regressions.
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.
What changed
Persist loaded native/MCP tool names and order, plus the session-start layout segment. Restore them before the first resumed request. Add save/load regressions and an offline fresh-process check to CI.
Why
A fresh process rebuilt this state and changed the request prefix despite unchanged conversation history. Resolve tools against current capabilities rather than saved schemas or permission grants. Restore layout only in the same workspace without freezing current instructions or overriding map opt-outs. Successful restoration does not guarantee a cache hit.
Verification
zig build --summary all— passed.zig build test --summary all— passed.scripts/eval-tier1.shvia the pre-push hook — passed.python3 scripts/test-resume-cache.py --mode offline --out <temporary-directory>— passed.python3 scripts/test-resume-cache.py --mode preflight --out <temporary-directory>— passed.Closes #867.
Closes #871.