Found while implementing #326 / PR #349, reproduced on the pre-fix build, so this is pre-existing and not caused by the ws cut-over.
After a connection-generation change — handle.rebind(...) or unmount+remount — a subsequent turn's chat.send completes normally over the new transport, but the transcript still shows only ONE assistant message: getByText(ASSISTANT_TEXT) stays at count 1 instead of 2.
Evidence:
Suspects to investigate (evidence-first, no patching): the chat query/collection being rebuilt on connectionGeneration change and re-seeding from a server snapshot; the fake harness's constant runId: 'scripted' masking or causing it in tests (see the note on #326 — a real harness mints a distinct runId per turn, so confirm against a real harness before concluding); or the transcript store keying messages by a value that collides after the rebuild.
Note the second bullet matters for triage: if it only reproduces with the scripted fake harness, this is a test-fixture defect, not a product bug. That distinction should be the first thing established.
Found while implementing #326 / PR #349, reproduced on the pre-fix build, so this is pre-existing and not caused by the ws cut-over.
After a connection-generation change —
handle.rebind(...)or unmount+remount — a subsequent turn'schat.sendcompletes normally over the new transport, but the transcript still shows only ONE assistant message:getByText(ASSISTANT_TEXT)stays at count 1 instead of 2.Evidence:
packages/embed/test/rebind.it.test.tsandforced-drop.it.test.tsboth assert rpc completion only. That is why it was never caught.Suspects to investigate (evidence-first, no patching): the chat query/collection being rebuilt on
connectionGenerationchange and re-seeding from a server snapshot; the fake harness's constantrunId: 'scripted'masking or causing it in tests (see the note on #326 — a real harness mints a distinct runId per turn, so confirm against a real harness before concluding); or the transcript store keying messages by a value that collides after the rebuild.Note the second bullet matters for triage: if it only reproduces with the scripted fake harness, this is a test-fixture defect, not a product bug. That distinction should be the first thing established.