fix: accept goose-shaped AGENT_SESSION_ID without the AGENT marker - #377
Merged
Conversation
|
Warning Review limit reachedNext included review available in 16 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
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 |
Deploying wireup-landing with
|
| Latest commit: |
407c585
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://ba6d0e9d.wireup-landing.pages.dev |
| Branch Preview URL: | https://fix-goose-session-shape.wireup-landing.pages.dev |
Live probe of goose 1.45: the harness forwards AGENT_SESSION_ID (its sessions.db id, YYYYMMDD_N) to MCP children and bash tools, but the AGENT=goose marker only reaches shells via goose term init. Gating the goose adapter on both left every wire MCP under goose on the per-process minted path — a persona orphaned on every session restart and unbounded by-key home accumulation (8.9k homes on one operator box). is_goose_session_id adds the shape check: AGENT=goose honors the id as-is; otherwise a goose-shaped id keys the session; anything else without the marker is rejected so a foreign host cannot launder a goose persona. Live-verified end to end: goose run resolves the wire MCP to source=goose, resume keeps the persona, parallel sessions get distinct personas. Updates the strict-gate test's foreign-marker case to the refined contract and adds the dual-gate matrix test. Rebased on the post-#376 session.rs union (PI + Codex + goose strict).
laulpogan
force-pushed
the
fix/goose-session-shape
branch
from
August 31, 2026 18:02
bf834eb to
407c585
Compare
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.
Problem
Follow-up to the goose adapter that landed in #374 (strict gate:
AGENT=goose&&AGENT_SESSION_ID). Live-probed goose 1.45.0: the harness forwardsAGENT_SESSION_ID(itssessions.dbid,YYYYMMDD_N-shaped) to MCP children and bash tools, but sets theAGENT=goosemarker only viagoose term initshell integration — MCP children never see it. With both required, every wire MCP under goose fell to the per-processmintedpath: a persona orphaned on every session restart, and unbounded by-key home accumulation (8,930 homes on one operator box, most minted lint).Fix
is_goose_session_id(^\d{8}_\d+$shape check) completes the gate:AGENT=goosemarker present → harness id honored as-is (any shape)WIRE_SESSION_IDoperator override still wins (covered by test (c)).Verification
goose runresolves the wire MCP tosession_source=goose;goose run --resumekeeps the same persona; two parallel sessions get distinct personasAlso in this branch
Carries f6fc2af (clippy 1.98 relay-handler/test-literal fixes) — committed on the shared worktree between my edits; included because its message says the 1.98 lints hard-fail CI for every PR.