Repository navigation
Conversation
added 3 commits
October 20, 2026 11:53
Narration (assistant body segments) is display content, not process detail. It now stays visible as ordinary body prose when the process folds, and the folded reasoning/tool run between two body blocks becomes a compact process-chain summary in the gap: 1px --reader-rail rule plus the familiar 思考×N · 工具×K label with a chevron that expands the real rows in place. - projection: hasProcessContent only advertises literal reasoning; earlier body steps no longer count as foldable process content. - Reader: body segments render with normal answer typography (no annotation colour, indent or per-block left rule); only the final answer keeps copy/fork actions. A per-turn seam plan counts the rows folded between consecutive body blocks and renders the process-chain summary seam. - live-turn: body narration is a fold-chain boundary; fold boxes contain only reasoning/tool/record steps and summaries never count narration as 输出×N. - tests: projection/live-turn/fold-choreography contracts updated; a real-Reader browser fixture verifies red (both 0.3.4 and 0.3.9 baselines hide narration) and green (always-visible body, seam geometry, expand/collapse interaction, auto-fold off, failed and interrupted turns).
Live folding used to break its chain at every narration block, so any turn that alternated thinking and report text left every past reasoning card expanded while it ran (only folding again after the turn closed). presentLiveTurn now splits at user inserts and, once a later reasoning step exists, folds each earlier reasoning/tool run at its own source position. The latest reasoning and everything after it stay open; narration continues to render in place and never enters a fold box. - live-turn: replace splitChain with the per-segment run folding described above (fold keys remain live-fold:<first step key> so rows keep identity). - tests: live-turn/fold-choreography/fold-intensity contracts updated for cross-narration folding and user-insert chain resets. - fixture: open-turn check now requires exactly one 思考×1 fold, the earlier reasoning hidden, and narration visible between the folds and latest reasoning. - docs: lifecycle wording updated.
Owner
|
Thanks! The feature commits from this PR ( On top of your work we added:
Real-host acceptance with real model turns passed: 4 reasoning runs and 3 tool calls, no duplicate seam in 9 live samples, and the closed seams expand in place. This ships in the next release. |
This was referenced Oct 26, 2026
Merged
LingMoe404
pushed a commit
to LingMoe404/dsh-better-display
that referenced
this pull request
Oct 29, 2026
An open turn folds an earlier reasoning/tool run in place. The narration seam counted that same run again and, via data-reader-seam-after, dropped the previous body's bottom spacing. Skip the seam only when every folded step is already inside a live-fold cell. Closed turns still show the seam. DESIGN.md now matches per-run live folds, and the Unreleased notes credit @Adamaik (aa2246740#68) and @sugar-syl (aa2246740#73). Also clear unused bindings that already failed eslint on main, including the unused toolSummary helper, so npm run lint exits 0.
LingMoe404
pushed a commit
to LingMoe404/dsh-better-display
that referenced
this pull request
Oct 29, 2026
…ocess between body blocks (fixes aa2246740#73)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Collapsing a turn's process also folded assistant narration (the body text a step emits between reasoning and tool calls). Once a long intermediate report scrolled past, it could not be read again: after the turn closed,
isEarlierNarration()classified those body steps as process content, and the Reader rendered them insideProcessFragment/RetiringContentdisclosures. During a live turn the same text was also swallowed by the live fold (思考×N · 输出×M · 工具×K).The reader also needs an explicit boundary between two narration blocks: previously nothing showed that a folded process run sat between them, so consecutive reports read as one block (or, in an earlier local iteration, body text was styled like annotation chrome).
Change
--reader-railrule plus the familiar思考×N · 工具×K · 记录×Mlabel and chevron. It counts only the rows folded between those two body blocks and expands the real rows in place when clicked (same disclosure language as the turn's folded-process row).hasProcessContentonly advertises literal reasoning. Body-only steps no longer create an empty thinking disclosure; earlier narration is no longer foldable process content.输出×N.Verification
pnpm exec tsc -p tsconfig.json --noEmit— passes.node --import tsx/esm --test tests/*.test.ts— 188 tests, 187 pass, 0 fail, 1 skipped (the skip is pre-existing).tests/browser-commentary.tsxvianode scripts/verify-commentary-visible.mjs --mode=green— 11/11 checks pass, including:--mode=redreproduces the old behavior on both the 0.3.4 and 0.3.9 baselines (body absent from the DOM while collapsed, report text inside[data-reader-process], live fold counting it as输出×1).Stacking
This branch is stacked on #67 (
cursor/better-display-021-rc2-ce8f), the still-draft Harness 0.2.1-rc.2 adaptation. Retarget tomainonce #67 merges; the commit diff here is only the narration/seam work on top of that branch.