focus/crates
DaiChaoXiong 1d1f50d1b1 fix(providers): keep the API's real tool-call ids across turns
Multi-turn tool calls collided on replay: the reducer regenerated call_0,
call_1, ... every turn while ignoring the API's real call ids, so replayed
history had duplicate function_call/function_call_output ids that the API
cannot pair (visible once a conversation has two tool-using turns).

- ProviderEventReducer::tool_call_start_with_id(index, name, id) keeps the
  API's id; tool_call_start delegates with an auto-generated fallback
- Responses API: use item.call_id; Chat Completions: use tool_calls[].id
- regressions: real-log test asserts the captured ids, agent replay test
  asserts ids stay unique across three turns; reducer id-override test
2026-08-09 22:07:18 +08:00
..
focus-core fix(providers): keep the API's real tool-call ids across turns 2026-08-09 22:07:18 +08:00
focus-harness refactor(test): move all unit tests from src/ into tests/<module>_tests.rs 2026-08-09 21:09:01 +08:00
focus-json chore(workspace): sync manifests, docs and lockfile 2026-08-09 21:00:04 +08:00
focus-providers fix(providers): keep the API's real tool-call ids across turns 2026-08-09 22:07:18 +08:00
focus-tools refactor(test): move all unit tests from src/ into tests/<module>_tests.rs 2026-08-09 21:09:01 +08:00
focus-transport refactor(test): move all unit tests from src/ into tests/<module>_tests.rs 2026-08-09 21:09:01 +08:00
focus-tui fix(tui): surface concrete run errors instead of a bare error header 2026-08-09 21:48:29 +08:00