In a Claude Code session hosted by T3 Code (Nightly) 0.0.31 on macOS (arm64), a Stop hook configured to block with feedback splits a reply across two turns. The client displays only the second, post-hook message; the substantive assistant message sent immediately before the hook fired never appears in the conversation view.
The session transcript JSONL contains both messages with distinct timestamps about a minute apart, confirming Claude Code recorded the first message and the renderer dropped it.
To reproduce: configure any Stop hook that exits non-zero with feedback text (for example a hook that asks the model to add evidence for a claim); ask a question whose answer arrives as a full assistant message; let the hook block the turn; the model then continues with a short follow-up message. Expected: both assistant messages visible in the conversation. Observed: only the post-hook follow-up renders as the reply.
Reading the same transcript with the plain claude CLI shows both messages, which isolates the fault to the client's display layer rather than the harness transcript.
In a Claude Code session hosted by T3 Code (Nightly) 0.0.31 on macOS (arm64), a Stop hook configured to block with feedback splits a reply across two turns. The client displays only the second, post-hook message; the substantive assistant message sent immediately before the hook fired never appears in the conversation view.
The session transcript JSONL contains both messages with distinct timestamps about a minute apart, confirming Claude Code recorded the first message and the renderer dropped it.
To reproduce: configure any Stop hook that exits non-zero with feedback text (for example a hook that asks the model to add evidence for a claim); ask a question whose answer arrives as a full assistant message; let the hook block the turn; the model then continues with a short follow-up message. Expected: both assistant messages visible in the conversation. Observed: only the post-hook follow-up renders as the reply.
Reading the same transcript with the plain claude CLI shows both messages, which isolates the fault to the client's display layer rather than the harness transcript.