Merge branch 'codex/20260831-show-progress-messages-a14f9c2d-show-progress-messages-a14f9c2d'

This commit is contained in:
inman
2026-09-01 11:46:31 +08:00
4 changed files with 150 additions and 41 deletions

View File

@@ -0,0 +1,84 @@
# Task: Show assistant progress messages
## Identity
- Task ID: 20260831-show-progress-messages-a14f9c2d
- Mode: Feature
- Branch: codex/20260831-show-progress-messages-a14f9c2d-show-progress-messages-a14f9c2d
- Worktree: /Users/inmanx/Documents/makelore-show-progress-messages-a14f9c2d
- Base commit: 38f85f6b5e4dc4e2c5e5b9f8f4506554cfd578f5
- Owner: codex
- Status: Ready for Integration
## Scope
- Identify the protocol and UI classification of assistant text emitted before
or between tool calls, using the supplied screenshot only as a visual example.
- Verify that this stage/progress narration is projected and rendered in the
current Makelore Code timeline without exposing Pi-private wire types.
- Preserve per-item expand/collapse after a stage explanation has completed,
including after the enclosing turn has settled.
- Make every collapsed thinking, stage-explanation, and tool-output preview
start from its first visible block and line, including horizontally
overflowing text.
## Intent And Constraints
- Preserve the product-neutral `ConversationMessageNode` / Snapshot / Patch
contract and the Main-owned Pi boundary.
- Keep private reasoning distinct from user-visible assistant narration and
tool execution output.
- Do not modify the occupied primary worktree or the separate running
development worktree.
## Outcome
- Confirmed the raw message is an ordinary Pi assistant message whose turn ends
with `stopReason: toolUse`; Main normalizes it to an assistant
`ConversationMessageNode` with `stopReason: tool-use`.
- Confirmed the Renderer semantically projects non-final assistant text as
`assistant-commentary` / “过程说明”, rather than treating it as hidden
thinking or as a tool node.
- Confirmed active process groups open automatically and show a compact
one-line stage explanation with an expand control; settled process groups
retain the explanation behind their collapsed process summary while the
final assistant answer remains visible.
- Added explicit regression coverage proving a completed stage explanation
remains collapsed to its first line by default, retains its own expand
control, reveals the complete Markdown body, and can be collapsed again.
- Changed collapsed process preview selection to use the first displayable
block and first non-empty line for thinking, assistant commentary, and tool
output. Long lines retain their beginning and use a trailing ellipsis.
- Kept every collapsed preview viewport at horizontal offset zero on content
and size changes. Tail-only streaming updates no longer replace or replay an
unchanged head preview, while expanded content remains complete.
## Verification
- Installed the existing lockfile with pinned pnpm `10.33.4`; 1,015 packages
were reused from the local store and no manifest or lockfile changed.
- Focused Vitest passed: 3 files / 28 tests covering live Pi event projection,
durable session hydration, and Coding timeline process/commentary rendering.
- Follow-up focused Vitest passed: 1 file / 9 tests, including completed
commentary expand/collapse and stable head-preview assertions across
streaming updates.
- `pnpm run typecheck`: passed.
- Scoped ESLint for the changed Renderer, unit, and Electron E2E files: passed.
- `pnpm run build:vite`: passed; only the repository's existing dynamic-import
and bundle-size warnings were emitted.
- Focused Electron Playwright E2E passed: 1 file / 2 tests, including first-line
thinking display, head truncation, and a measured tool-preview
`scrollLeft` of zero.
- Inspected `electron/coding-runtime/pi/event-projector.ts`,
`electron/coding-runtime/pi/session-projector.ts`,
`shared/coding-conversation-contracts.ts`, and
`src/pages/Chat/CodingConversationTimeline.tsx` across the complete
classification path.
## Follow-ups
- None.
## Promotion Candidates
- None recorded.