A continuation SSE delta that repeats a tool call's `id` or `name` as an empty string — or as `null`, which some OpenAI-compatible gateways send — erased the identity established by the call's first delta. The assembled block reached the loop with an empty name and failed as `unknown tool ""`, and the empty `callId` persisted into `tool/result`, which the session reader refuses on reopen. `acceptIdentity` accepts only a non-empty string, so a repeated empty or null field means "no update". A tool call still missing `id` or `name` at `[DONE]` ends the response with the new retryable `MALFORMED_TOOL_CALL` code instead of closing an unusable block.
6 lines
544 B
YAML
6 lines
544 B
YAML
# Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
|
|
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
|
# after editing either side, bring the other along and re-record with:
|
|
# pnpm run verify-translation-pairing --write .agents/notes/implemented/architecture/2026-09-01-streamed-tool-call-identity.md
|
|
2026-09-01-streamed-tool-call-identity.md: a59337bc8f4d0126584822cc2e01155d377b5603
|
|
2026-09-01-streamed-tool-call-identity.zh.md: 5185377adf9e8fb366dab3934c10f87e22be7830
|