Skip to content

feat: show tool activity on stderr in exec text mode - #293

Merged
Patel230 merged 1 commit into
mainfrom
feat/exec-tool-visibility
Sep 7, 2026
Merged

feat: show tool activity on stderr in exec text mode#293
Patel230 merged 1 commit into
mainfrom
feat/exec-tool-visibility

Conversation

@Patel230

@Patel230 Patel230 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

graycode exec text mode was silent about tool activity, unlike --print which surfaces [ToolName] on stderr. During an autonomous multi-turn run the user had no visibility into which tools the agent invoked (file writes, shell, web search).

Now exec text mode emits [ToolName] on tool_use and a truncated [ToolName] <result> on tool_result, gated on !IsQuiet() so --quiet/CI output stays clean and stdout stays machine-parseable. stream-json output is unchanged.

Verification

  • go build ./..., go vet ./cmd/, gofumpt -l clean.
  • go test ./... exit 0.
  • Tool display matches the established --print stderr convention; streaming loop is exercised via the existing event path (not unit-testable without a live session).

exec text mode was silent about tool calls, unlike --print which surfaces
[ToolName] on stderr. During an autonomous multi-turn run the user had no
visibility into which tools the agent invoked (file writes, shell, web
search). Emit [ToolName] on tool_use and a truncated [ToolName] <result>
on tool_result, gated on !IsQuiet() so --quiet/CI output stays clean and
stdout stays machine-parseable. stream-json output is unchanged.
@Patel230
Patel230 merged commit c5d1ab7 into main Sep 7, 2026
25 of 26 checks passed
@Patel230
Patel230 deleted the feat/exec-tool-visibility branch September 7, 2026 08:15
Patel230 added a commit that referenced this pull request Sep 7, 2026
--print already honored --quiet for the usage footer (PR #289) and exec now
honors it for tool activity (PR #293), but --print's [ToolName] stderr labels
were emitted unconditionally. Gate them on !IsQuiet() so --print --quiet is
fully clean (machine-parseable stdout and no decoration on stderr), matching
exec and the --quiet contract. stream-json output is unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant