Skip to content

chore(release): prepare 0.8.19 release - #19

Merged
fireman-droid merged 32 commits into
mainfrom
codex/ui-style-fixes
Nov 2, 2026
Merged

fireman-droid merged 32 commits into
mainfrom
codex/ui-style-fixes

Conversation

@fireman-droid

Copy link
Copy Markdown
Owner

Summary

  • 混合增量流式 Markdown 渲染与 Shiki GrammarState 按行增量高亮:未闭合代码围栏直接走 $O(1)$ HAST 增量投影,已完成顶层块走 LRU 缓存复用,尾部块自动补齐未闭合行内语法,代码块按行增量染色与按行 memo 渲染。
  • AI 回复排版与流式渐显打磨:对齐 Kilo 的段落行高、列表与弱化引用样式、带微描边的行内代码与文件链接虚线下划线;修正宿主 body.vscode-dark code 样式渗透;保持流式文字渐显跨度直至动画完成。
  • 新提问吸顶与动态留白跑道:发送新提问后自动置顶阅读位并生成底部动态留白跑道,恢复流式回复期间向上滚动的「回到底部」向下箭头,修复向上滚离或滚回底部时置顶提问卡回弹/错锁旧提问卡。
  • BTW 侧边问答重构:思考与工具按真实到达顺序归入「已探索」折叠组并穿插正文,用户提问改为右对齐聊天气泡,回答标题带 Droid 图标,运行状态收进底部输入框占位。
  • 会话恢复与子代理详情页提速、子任务三档复杂度模型/推理强度独立直选、智能补全即时保存、深色模式呼吸繁星背景,以及精简引用胶囊(QuoteChip)前缀图标。

Verification

  • pnpm run release:check
  • pnpm run typecheck
  • pnpm run lint:budgets
  • pnpm --filter @droidvisx/chat-ui build
  • pnpm exec vitest run(覆盖 Transcript.scrollMotion、Transcript.anchoring、Markdown、Markdown.worker、Transcript.navigation、Composer、SideChatSheet 等受影响测试)
  • pnpm run package:vsix & pnpm run verify:vsix

林泽楷 and others added 30 commits October 26, 2026 10:00
- Pin newly entered user questions directly to the top of the transcript viewport (`PINNED_QUESTION_GAP = 12`)
- Maintain a dynamic bottom runway (`data-pin-runway`) so first-screen replies grow downward without moving `scrollTop`, auto-following once the turn exceeds one screen and keeping the runway without bounce when short replies finish
- Add AGENTS.md rule to follow production code when documentation conflicts and list discovered conflicts in final responses

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Display `Stopping…` with loading activity indicator inside the Composer placeholder slot instead of above the composer in `TranscriptView.statusContent`
- Align `docs/PLAN.md`, `docs/CAPABILITIES.md`, `docs/DESIGN.md`, and `docs/STATUS.md` with current production implementation

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Wire useProcessDisclosure buttonRef and contentRef into CommandCard and
standalone ToolRow disclosures so keepVisible pushes the transcript
upward when expanding near the bottom, and cap .v2-chat-surface
.v2-command-well at 228px to match the thinking detail height budget.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…om away state

- Round pinned turn start and runway height up so subpixel offsets never select the previous question in the pinned overlay
- Keep scrollTop anchored at pinTop when process disclosures expand or collapse within the pinned turn runway
- Subtract the pin-runway spacer height when computing scroll-to-bottom button visibility so blank runway does not trigger the away button

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…icate stopped status

- Enforce pinned turn runway floor via column CSS min-height so collapse transitions never clamp scrollTop mid-frame before ResizeObserver runs
- Keep running latest step mounted in ActivityGroupView until collapsible content becomes visible to avoid a 2-frame 24px height drop on expand
- Omit redundant trailing Stopped status notice when the interrupted turn already displays stopped on its transcript activity items

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Render SideToolRecords header as an Explored category summary aligned with ThinkingView's left chevron instead of overwriting the disclosure label with Waiting for reply…
- Truncate tool targets to a single line with hover titles and omit redundant check icons on completed rows
- Show active tool execution and waiting status on a dedicated progress line below the tool group
- Sync docs/DESIGN.md and docs/STATUS.md

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
- Add StarfieldBackdrop canvas overlay with pre-rendered pinpoint glow sprites, 4-layer depth breathing (122% size, 100% brightness), frame throttling, and hidden-tab suspension without altering the surface background color
- Mount starfield only when the resolved theme is dark and droidvisx.chat.starfield is enabled
- Wire droidvisx.chat.starfield setting through Management general settings, UiThemeMessage, and Webview boot attributes

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
… pool discovery polls

- Guard pinned-turn minHeight/spacer style writes in TranscriptView and skip observing data-pin-runway in useTranscriptScroll
- Ignore benign Chromium ResizeObserver loop notifications in the webview boot beacon and frontend analytics projection
- Route session working-state probes through listOpenedForSession on the owning daemon instead of scanning all daemons via pool.all()
- Exclude routine daemon.discovery.finished events from GA4 daemon_health reporting

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…bital rotation

- Increase starfield SIZE_SCALE from 1.22 to 1.42 and slightly lift layer base sizes
- Model the main chat viewport as the top-left quadrant of a circle centered at (width, height) with radius max(width, height), rotating clockwise around the bottom-right pole
- Wrap each star along its visible quadrant arc with smooth entry/exit edge fades

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ly state

- Auto-save completion switches/selects and blur-commit text inputs with animated collapsible sections and dedicated API key buttons
- Move BTW Preparing state into the side-question input placeholder and fix LimitsPopover header button/tab hover states
- Place the inline-input caret at the end of inserted slash/skill/mention prefixes instead of keeping the old token offset
- Match active turn IDs across merged assistant group items and suppress premature timestamp/copy actions while read-only worker replies are still running

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…agent rows

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…d scroll

The pin release was gated on layout stability, but the runway height changes with
every streamed line, so the gate never opened and syncRunway kept writing
scrollTop back to pinTop. Release against the pin the reader actually left, and let
a wheel gesture that left the bottom outrank the layout heuristics in onScroll so
one grown line cannot re-arm the follow latch.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…in runway

- Wrap the running-latest row in an inversely synchronized AnimatedCollapsibleContent so expanding or collapsing Explored during streaming transitions both heights over 200ms instead of jumping 24px
- Round DOM turn start offsets and allow a 1px subpixel quantization tolerance before snapping scrollTop back to pinTop under fractional display scaling
- Wire scrolling.stopFollowing into ProcessPresentationProvider so toggling a process disclosure cancels any active follow animation loop

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
… CJK punctuation bold

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
A paused turn settled as `interrupted`, yet the summary gate treated every
cancelled reply as still live and kept the recorded change card hidden. Only
a stop still in flight now holds the ledger open.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
The side chat author line used the neutral Aperture glyph; use the Droid
pinwheel mark that the rest of the product shows.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
The transcript, question block and footer scrolled horizontally, so
resizing the panel could push content out of view. Scroll vertically only,
wrap long question text, and size the panel against its row instead of the
viewport.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…bble

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ar Model label

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…g rows

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…subtask model

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…ghlighting

- Add block-level Markdown streaming with settled block LRU caching, cross-block reference definition fallback, O(1) unclosed code fence projection, and live inline syntax completion.
- Fast-path reference-identical HAST nodes in worker tree delta calculation to skip redundant JSON serialization on settled blocks.
- Maintain incremental per-stream Shiki GrammarState sessions in syntaxWorker, coalesce pending jobs by streamKey, and render memoized per-line spans in CodeSyntax so text selection persists while code streams.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…reparse

- Re-parse in worker when streaming ends on text that had synthesized inline closures, and avoid caching synthesized streaming nodes as settled.
- Restrict O(1) fence projection to unindented top-level fences and skip inline completion inside blockquote or nested open fences.
- Cancel in-flight syntax worker jobs when CodeSyntax switches to a non-prefix source.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…olish reply typography

- Measure away-from-bottom directly against the active viewport bottom when following is paused instead of subtracting runway height, and avoid snapping scrollTop back to pinTop on streaming height updates once following stops
- Increase webview-host code/blockquote reset specificity so VS Code body.vscode-dark preformat styles do not tint inline code green
- Refine markdown-prose line height, paragraph/list spacing, muted list markers and blockquotes, subtle inline-code borders, and dotted file-link underlines after Kilo
- Keep the active FadingText span key stable until onAnimationEnd so fast token streams complete their fade smoothly

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
林泽楷 and others added 2 commits November 2, 2026 15:15
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
… mock

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
@fireman-droid
fireman-droid merged commit fa5e866 into main Nov 2, 2026
1 check passed
@fireman-droid
fireman-droid deleted the codex/ui-style-fixes branch November 2, 2026 07:33
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