fix(developer): expose AGENT_SESSION_ID to shell commands - #10428
Conversation
10e1e7b to
c975457
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 10e1e7b713
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
c975457 to
302f7eb
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 302f7eb9b7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
302f7eb to
ecfd8bf
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ecfd8bf9a8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
f210046 to
738114f
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 738114f0eb
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
affd24f to
dbf65e8
Compare
dbf65e8 to
48fc166
Compare
* origin/main: (24 commits) fix(session): create inventory tables atomically with schema version (#10586) fix(providers): rewrite oneOf to anyOf in tool schemas for OpenAI-compatible backends (#10571) fix(evals): report cache-aware Harbor costs (#10430) fix(acp): allow custom model as default for non-local providers (#10438) fix(config): require absolute goose path roots (#10454) chore(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 (#10541) fix(permissions): scope smart approval by request (#10457) fix(summon): preserve fixed subrecipe values (#10452) chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 in /documentation (#10506) fix(flatpak): bundle git so hermit can clone its package registry (#10511) feat(hooks): pass working_dir to the Stop hook context (#10296) chore(deps): bump actions/setup-java from 5.5.0 to 5.6.0 (#10540) chore(deps): bump actions/setup-node from 6 to 7 (#10539) chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.20 to 2.1.1 (#10542) chore(deps): bump gradle/actions/setup-gradle from 4.4.3 to 6.2.0 (#10543) Add declarative Sakana AI provider for the OpenAI-compatible Fugu API (#10357) fix(developer): expose AGENT_SESSION_ID to shell commands (#10428) Clean up stale documentation audit findings (#10114) Restore model interactions viewer (#10205) fix(acp): forward image content chunks to client during live session (#10485) ... # Conflicts: # crates/goose/src/session/session_manager.rs
Context
This is a bug fix for Goose's documented
AGENT_SESSION_IDcontract. Goose exposes the session ID to STDIO extensions and documents it for Developer extension shell commands, but the Developer shell and supported delegated execution paths omit it. Session-isolated workflows therefore see an empty or stale value from shell steps.Summary
This PR restores
AGENT_SESSION_IDacross every Developer shell execution path. The value is scoped to each tool call so concurrent sessions in a shared Goose server do not leak identifiers into one another.Changes
ToolCallContext.session_idto each in-process Developer shell invocation.AGENT_SESSION_IDon spawned commands to prevent stale inherited values.flatpak-spawn --envand clears it with--unset-envwhen no session context exists.AGENT_SESSION_IDin ACPCreateTerminalRequest.envwhen the client owns terminal execution.Reviewer-reproducible examples
The reproduction calls
DeveloperClient::call_toolwith sessionsession-789, executesprintenv AGENT_SESSION_IDthrough the real Developer shell path, and asserts that the command returnssession-789.Red:
mainreturns no session IDFrom a clean checkout of
main, copy the testdeveloper_client_passes_session_id_to_shell_toolfrom this PR intocrates/goose/src/agents/platform_extensions/developer/mod.rs, then run:env -u AGENT_SESSION_ID cargo test -p goose --lib agents::platform_extensions::developer::tests::developer_client_passes_session_id_to_shell_tool -- --exact --nocaptureOutput excerpt:
Green: this branch returns the tool-call session ID
From a clean checkout of this branch, run the same test:
env -u AGENT_SESSION_ID cargo test -p goose --lib agents::platform_extensions::developer::tests::developer_client_passes_session_id_to_shell_tool -- --exact --nocaptureOutput excerpt:
Supporting checks:
These checks passed. The Flatpak path and an external ACP client terminal were not available for live execution in this environment, so focused command and request-construction tests cover those platform-specific paths.