ulysses/static
Max Hsu 8bf8212846
fix(chat): copy only the displayed reply from the message copy buttons (#3731)
The AI-message copy buttons copied dataset.raw, which is the full
accumulated model output — still containing the <think time="...">
reasoning block and any tool-call markup that the renderer strips for
display. Pasting therefore leaked the model's thinking, and the first
heading after </think> lost its markdown formatting because it was
glued to the closing tag.

Add chatRenderer.copyMessageText(), which mirrors the display pipeline
(stripToolBlocks then extractThinkingBlocks) and falls back to the raw
text when stripping leaves nothing (thinking-only turns), and route
both copy handlers — the message footer and the slash-reply footer —
through it. The interrupted-turn Continue flow intentionally keeps
reading dataset.raw.

Fixes #3722

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 18:29:22 +02:00
..
fonts Odysseus v1.0 2026-05-31 23:58:26 +09:00
js fix(chat): copy only the displayed reply from the message copy buttons (#3731) 2026-06-10 18:29:22 +02:00
lib Odysseus v1.0 2026-05-31 23:58:26 +09:00
app.js Remove non-merge-ready workspace and terminal agent hooks 2026-06-09 09:48:59 +09:00
index.html feat(providers): add NVIDIA AI provider endpoint support (#3456) 2026-06-09 11:06:12 +02:00
login.html fix(login): keep inputs >=16px on touch so iOS doesn't zoom on focus (#1632) 2026-06-03 14:23:24 +09:00
manifest.json Odysseus v1.0 2026-05-31 23:58:26 +09:00
style.css Remove non-merge-ready workspace and terminal agent hooks 2026-06-09 09:48:59 +09:00
sw.js fix(ui): modal drag + removed startDrag func (#2430) 2026-06-04 20:34:18 +02:00