rony-llm-agent/pkg
Victor Vargas caeb1a1be6 fix(agent): RunStream never surfaced tool calls to callers
Bug found while building rony-harness's "Edited Files" info panel: it
scanned the transcript for tool-call messages carrying write/edit
arguments, but those messages never appeared — not even for a plain,
successful top-level write with no delegation involved.

Root cause: RunStream's content-streaming gate (`if !hasToolCalls &&
(hasContent || hasUsage) { yield(chunk, nil) }`) suppresses yielding
*any* chunk once a tool call is seen in that iteration, including the
chunk carrying the tool call itself. So chunk.ToolCalls was executed
internally (hence approvals and results worked) but never yielded to
the caller. Every caller-side "which tool got called" hook depending on
the stream (not the Approver callback) was therefore dead code.

Fix: yield a dedicated chunk carrying just the executed ToolCalls right
after running them, independent of the content-streaming gate below.
Updated TestRun_Stream_WithToolCalls, which asserted the old (buggy)
1-chunk behavior.
2026-07-10 00:04:44 -07:00
..
agent fix(agent): RunStream never surfaced tool calls to callers 2026-07-10 00:04:44 -07:00
config feat(config): add YAML config loader with hierarchical precedence 2026-06-30 23:53:20 -07:00
llm feat(llm): add anthropic provider client, expand llama.cpp sampling config 2026-07-08 23:33:20 -07:00
persona feat(agent): wire AGENTS.md discovery into the agent loop's system prompt 2026-07-08 23:27:17 -07:00
rag feat(rag): add SQLite+FTS5 backend, fix content/usage plumbing bugs 2026-07-06 00:05:30 -07:00
tools Fix tool call tracking and streaming assembly for all providers 2026-07-08 16:11:57 -07:00