mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
Merge pull request #369 from shenlvkang-collab/pr/claude-response-viewer-per-message
fix(web): render one Claude response-viewer message per model message
This commit is contained in:
@@ -407,7 +407,17 @@ done
|
||||
printf '%s\n' "$TXT"
|
||||
```
|
||||
|
||||
`.data` is `{text, timestamp}`. ⚠️ **On a hook-less workspace this reads the PREVIOUS
|
||||
`.data` is `{text, timestamp}`. Add `?context=full` for the whole conversation in
|
||||
`.data.messages[]`. ⚠️ **The four readers do not emit the same fields — only `{role, text}`
|
||||
is guaranteed.** `kind`/`label` come from claude (`prompt`/`response`), deepseek and the pane
|
||||
parser (the last two also emit `status`/`tool`), but **not** from codex; `timestamp` comes
|
||||
from claude and codex but not from deepseek or the pane parser. A claude worker additionally
|
||||
carries `turn` (a run of same-speaker messages inside one `turn` is one utterance split into
|
||||
segments, not separate exchanges) and `queued: true` on a prompt the user typed while the
|
||||
agent was still working. Filter on `role`, not on `kind`, unless you know the mode.
|
||||
`.data.text` does not change under `context=full`: it stays the
|
||||
last **assistant** message, so never read it as `messages[-1]`, which can be a prompt.
|
||||
⚠️ **On a hook-less workspace this reads the PREVIOUS
|
||||
turn.** `last-response` returns whatever the transcript last flushed, so it is only as
|
||||
correct as your end-of-turn signal: pair it with a `stop` signal or a marker, never
|
||||
with a bare `idle` ([§5.1](#51-where-to-spawn)). ⚠️ **Poll it, do not read it once.** `text` is written
|
||||
|
||||
Reference in New Issue
Block a user