Skip to content

fix: reading pass 2: process rows fold in place, quiet notes, wide-content fades, one notice style - #167

Merged
chenweigao merged 3 commits into
mainfrom
fix/reading-pass2-20261015
Oct 16, 2026
Merged

chenweigao merged 3 commits into
mainfrom
fix/reading-pass2-20261015

Conversation

@chenweigao

Copy link
Copy Markdown
Owner

Summary

Third batch of the 2026-10-15 polish review (reading, second pass): one commit per area.

  • Quiet notes, fold toggle, wide content, math (b5a4f74)
    • Compaction notes and runtime context now render at 12 pt on an 18 pt line in secondary ink. Before, the outer .font / .secondary never reached ReplyText, so they read as body text. \.replyTone carries the tone, and list markers follow it.
    • The settled 展开完整问题 toggle matches the streaming one: borderless, left-aligned at the text inset, secondary, 6 pt below the prompt. Row heights are unchanged (6 + 24, the old 30).
    • Code cards and tables wider than the column fade their trailing 12 pt while they overflow, in both renderers. No glyph is faded at the scrolled end. Tables no longer reserve a legacy scroller band (the fix: keep long code lines from reserving a SwiftUI scroller band #147 fix, applied to tables). The header rule is stronger than the row rules.
    • Math follows the window's appearance. Each formula is typeset once in light and once in dark ink. Inline math draws whichever matches its text view; display math follows the row's color scheme. A per-window light/dark override and live switches now recolor formulas.
    • Warning titles use a darker amber in light mode; the bar and icon keep yellow.
  • Process rows (2aa7a89)
    • A running turn no longer jumps sideways when it folds. Before, live thought and tool rows had no inset, while the folded 思考与工具 row used 8 pt.
    • ReplyStyle.Process puts every process chevron at the column edge. Nested content uses one 20 pt indent; it was 10, 14, 20 or 24. The hover wash still reaches 8 pt before the chevron.
    • The fold label is secondary at regular weight, like the live rows it replaces.
    • The plan review preview shows plain text instead of raw Markdown, and its notes are 11 pt.
    • Switching the language now updates open transcripts. Hosted rows get the locale, settled native replies are rebuilt, and views that build labels in code depend on the locale.
  • Notices and queued prompts (330ed4d)
    • Native agents showed errors, a lost connection and stale sync as 10 pt orange captions centered across the pane; Kimi had a different 12 pt banner. Both now use ConversationNotice: 12 pt, a symbol and at most one action, in the reading column. Errors past 128 pt still scroll. Texts, actions and when each notice shows are unchanged.
    • A queued prompt was full-width, left-aligned text that jumped into the right-aligned bubble once echoed. It now renders as that bubble, with its mode, status and controls on one 11 pt line below.

Verification

  • Linux portable suite on clean head 330ed4d (rebased on feat: codex 图标反色为白底墨色 knot,与 kimi 黑底月牙区分 #166): 8/8, including localization and preview source lists.
  • user-rows now asserts the settled fold toggle's geometry and fails if no fixture exercised it.
  • No WorkbenchCore change, so the Linux WorkbenchChecks build covers nothing here.
  • Not run locally: no macOS SDK here, so the macOS job is the first compile.
  • Mac visual check needed:
    • the trailing fade on wide code and tables;
    • the settled fold toggle;
    • math after a per-window appearance switch;
    • notices in native and Kimi panes;
    • a queued prompt turning into the sent one without moving;
    • process rows and their hover wash as a turn folds;
    • switching the language with a conversation open.

🤖 Generated with Claude Code

chenweigao and others added 3 commits October 15, 2026 20:47
…rue math

- Quiet tone: `ReplyTone` / `\.replyTone` lets secondary Markdown
  (compaction notes, runtime context) render at 12 pt on an 18 pt line in
  secondary ink. Before, the outer `.font` / `.secondary` never reached
  `ReplyText`. List markers follow the tone; the unused private `replyInk`
  is removed.
- The native 展开完整问题 toggle matches SwiftUI: borderless, left-aligned
  at the text inset, secondary, 6 pt below the prompt on a 24 pt row. Row
  heights are unchanged. user-rows asserts it (UserMessageStyle.toggle*
  tokens).
- Wide content: tables no longer reserve a legacy scroller band. Code
  cards (both renderers) and tables fade their trailing 12 pt while content
  overflows; the fade is visual only, and no glyph fades at the scrolled
  end. The table header rule is stronger than row rules; padding and rule
  opacities are `ReplyStyle.Table` tokens.
- Math draws in the window's appearance: each formula is typeset in both
  colors and an image picks one at draw time, so a per-window light/dark
  override and live switches recolor inline and display math. Sizes are
  unchanged.
- The warning alert title uses a darker amber in light mode; the bar and
  icon keep yellow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…language

- Live thought and tool rows had no inset while the folded 思考与工具 row
  and commentary used the disclosure's default 8 pt, so a running turn
  jumped sideways as it folded. `ReplyStyle.Process` puts every process
  chevron at the reading column's edge. Nested content uses one 20 pt
  indent (it was 10, 14, 20 or 24). The fold label is secondary and
  regular. The hover wash keeps its reach through `leadingWashOutset`.
  Disclosure stays atomic.
- Compaction notes and runtime context use the quiet reply tone.
- The plan review preview shows plain text instead of raw Markdown, and
  its notes are 11 pt.
- A language change now reaches transcript rows: the locale is part of
  `ConversationEntryAppearance`, so rows are reconciled and hosted rows
  get `.environment(\.locale, …)`. Native rows re-update, and views that
  build labels in code depend on the locale.
- Build lists (navigation, reading, tool-visibility, workflow and
  performance previews, check-scroll-following) and the performance
  export test compile the new style file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Native agents showed errors, a lost connection and stale sync as 10 pt
  orange captions centered across the pane; Kimi used a 12 pt banner. Both
  now use `ConversationNotice`: a 12 pt line with a symbol and at most one
  action, in the reading column. Text, actions and when each shows are
  unchanged.
- A queued prompt was full-width left-aligned 13 pt text, then jumped to
  the right-aligned bubble when the agent echoed it. It now renders as
  that bubble (UserMessageStyle, same Markdown, top spacing and trailing
  edge). Its mode, status and controls sit on one 11 pt line below it.
  The editing sheet is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T12:52:02.657665Z 330ed4d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant