zot/packages/core
patriceckhart b25b860b09 fix(core): repair dangling tool_use on every request, not just load
A turn aborted mid-flight (cancel, connection drop, dev-server
ECONNREFUSED) can leave an assistant tool_use block with no matching
tool_result in the live transcript. repairToolUseResultPairs already
fixes this, but only ran in OpenSession (load time), so an in-process
abort left the transcript broken until restart. The next request was
then rejected by Anthropic/OpenAI with 'tool_use ids were found without
tool_result blocks'.

Run the same repair on the outbound messages in oneTurn. It is pure and
a no-op on valid transcripts, so there is no hot-path cost beyond a
single linear scan and no behavior change for healthy sessions.
2026-06-09 12:56:31 +02:00
..
agent.go fix(core): repair dangling tool_use on every request, not just load 2026-06-09 12:56:31 +02:00
agent_retry_test.go Retry transient provider stream errors 2026-05-30 15:25:33 +02:00
compact.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
confirm.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
confirm_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
core_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
cost.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
events.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
intercept_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
queue_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
session.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
session_portable.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
session_portable_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
session_repair_test.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00
tool.go refactor: split source into packages/{provider,core,tui,agent} 2026-05-27 09:07:15 +02:00