feat(gemini-cli): use stream-json output and re-use session#7118
Merged
alexhancock merged 1 commit intoblock:mainfrom Feb 13, 2026
Merged
feat(gemini-cli): use stream-json output and re-use session#7118alexhancock merged 1 commit intoblock:mainfrom
alexhancock merged 1 commit intoblock:mainfrom
Conversation
DOsinga
approved these changes
Feb 12, 2026
| .get("total_tokens") | ||
| .and_then(|v| v.as_i64()) | ||
| .and_then(|v| i32::try_from(v).ok()); | ||
| Usage::new(input, output, total) |
Collaborator
There was a problem hiding this comment.
consider adding a getter here to reduce repitition:
let get = |key: &str| stats.get(key).and_then(|v| v.as_i64()).and_then(|v| i32::try_from(v).ok());
alexhancock
reviewed
Feb 12, 2026
Collaborator
alexhancock
left a comment
There was a problem hiding this comment.
LGTM after @DOsinga's DRY recommendation! Nice
Switch from plain text output to --output-format stream-json for structured NDJSON events with usage stats. Capture session_id from the init event and use --resume on subsequent turns so only the latest user message is sent instead of re-sending full history. Fix: redirect child stdin to /dev/null to prevent the CLI from blocking on inherited terminal stdin (the -p flag appends to stdin input, so an open TTY caused hangs during configure). We can't persist process like claude code as there is no --input-format stream-json support in gemini cli yet. Change-Id: Idbc714ec1ac15426e486011551bcf3ad28f7f96a Signed-off-by: rabi <ramishra@redhat.com>
10 tasks
jh-block
added a commit
that referenced
this pull request
Feb 13, 2026
* origin/main: (21 commits) nit: show dir in title, and less... jank (#7138) feat(gemini-cli): use stream-json output and re-use session (#7118) chore(deps): bump qs from 6.14.1 to 6.14.2 in /documentation (#7191) Switch jsonwebtoken to use aws-lc-rs (already used by rustls) (#7189) chore(deps): bump qs from 6.14.1 to 6.14.2 in /evals/open-model-gym/mcp-harness (#7184) Add SLSA build provenance attestations to release workflows (#7097) fix save and run recipe not working (#7186) Upgraded npm packages for latest security updates (#7183) docs: reasoning effort levels for Codex provider (#6798) Fix speech local (#7181) chore: add .gooseignore to .gitignore (#6826) Improve error message logging from electron (#7130) chore(deps): bump jsonwebtoken from 9.3.1 to 10.3.0 (#6924) docs: standalone mcp apps and apps extension (#6791) workflow: auto-update cli-commands on release (#6755) feat(apps): Integrate AppRenderer from @mcp-ui/client SDK (#7013) fix(MCP): decode resource content (#7155) feat: reasoning_content in API for reasoning models (#6322) Fix/configure add provider custom headers (#7157) fix: handle keyring fallback as success (#7177) ...
katzdave
added a commit
that referenced
this pull request
Feb 13, 2026
…ntext * 'main' of github.com:block/goose: feat: add onFallbackRequest handler to McpAppRenderer (#7208) feat: add streaming support for Claude Code CLI provider (#6833) fix: The detected filetype is PLAIN_TEXT, but the provided filetype was HTML (#6885) Add prompts (#7212) Add testing instructions for speech to text (#7185) Diagnostic files copying (#7209) fix: allow concurrent tool execution within the same MCP extension (#7202) fix: handle missing arguments in MCP tool calls to prevent GUI crash (#7143) Filter Apps page to only show standalone Goose Apps (#6811) opt: use static for Regex (#7205) nit: show dir in title, and less... jank (#7138) feat(gemini-cli): use stream-json output and re-use session (#7118) chore(deps): bump qs from 6.14.1 to 6.14.2 in /documentation (#7191) Switch jsonwebtoken to use aws-lc-rs (already used by rustls) (#7189) chore(deps): bump qs from 6.14.1 to 6.14.2 in /evals/open-model-gym/mcp-harness (#7184) Add SLSA build provenance attestations to release workflows (#7097) fix save and run recipe not working (#7186) Upgraded npm packages for latest security updates (#7183) docs: reasoning effort levels for Codex provider (#6798)
michaelneale
added a commit
that referenced
this pull request
Feb 16, 2026
* origin/main: (42 commits) fix: use dynamic port for Tetrate auth callback server (#7228) docs: removing LLM Usage admonitions (#7227) feat(otel): respect standard OTel env vars for exporter selection (#7144) fix: fork session (#7219) Bump version numbers for 1.24.0 release (#7214) Move platform extensions into their own folder (#7210) fix: ignore deprecated skills extension (#7139) Add a goosed over HTTP integration test, and test the developer tool PATH (#7178) feat: add onFallbackRequest handler to McpAppRenderer (#7208) feat: add streaming support for Claude Code CLI provider (#6833) fix: The detected filetype is PLAIN_TEXT, but the provided filetype was HTML (#6885) Add prompts (#7212) Add testing instructions for speech to text (#7185) Diagnostic files copying (#7209) fix: allow concurrent tool execution within the same MCP extension (#7202) fix: handle missing arguments in MCP tool calls to prevent GUI crash (#7143) Filter Apps page to only show standalone Goose Apps (#6811) opt: use static for Regex (#7205) nit: show dir in title, and less... jank (#7138) feat(gemini-cli): use stream-json output and re-use session (#7118) ...
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.
Summary
Switch from plain text output to --output-format stream-json for structured NDJSON events with usage stats. Capture session_id from the init event and use --resume on subsequent turns so only the latest user message is sent instead of re-sending full history.
Fix: redirect child stdin to /dev/null to prevent the CLI from blocking on inherited terminal stdin (the -p flag appends to stdin input, so an open TTY caused hangs during configure).
We can't persist process like claude code as there is no --input-format stream-json support in gemini cli yet.
Type of Change
AI Assistance
Testing
Tested locally and unit tests