The translator retains the rc.2 overwrite guards. Existing tests cover omitted continuation fields and never-identified calls, but not a valid first identity followed by explicit empty values.
Do not debug the wrong boundary.
name: "read"Inspect catalog, preset, registration, and policy.
name: ""Inspect ordered wire deltas before touching authorization.
The fault crosses four trust boundaries.
"" + ""UNKNOWN_TOOLcallId: ""HTTP 400corruptCapture the smallest decisive bundle.
- WireOrdered deltas for one call index, including omitted versus explicit empty fields.
- SessionAssistant block, call, result source, inner result ID, and sequence numbers.
- RestoreThe rejected sequence plus a fresh-Session and route A/B control.
first { id: "call_8f2", name: "read" }
next { id: "", name: "" }
result { source.callId: "", toolCallId: "" }
resume message must have tool source
Keep the safety boundary intact.
Preserve and hash the complete Session directory before inspection.
Use an authorized working route and independently verified workspace state.
Do not weaken policy or globally rewrite a live log.
Ship the regression, not just the guard.
- 01First non-empty identity survives empty-string and null continuation fields.
- 02All argument fragments still concatenate in order.
- 03Interleaved call indexes keep independent identities.
- 04A never-identified call fails loudly before policy.
- 05Append and restore enforce the same non-empty identity invariant.
- 06One unreadable Session cannot hide unrelated Session listings.
Primary evidence.
- Bailian report #3464
- Earlier null-continuation report #3281
- Persistent resume-corruption report #4704
- Current aggregation-gateway report #4851
- rc.2 DeepSeek stream translator
- alpha.1 DeepSeek stream translator
- rc.2 Session validation boundaries
Keep the complete incident runbook.
The canonical guide includes source-pinned writer and reader analysis, correlated event evidence, bounded recovery, regression gates, and a minimal report template.
Read the complete guide