85 lines
3.8 KiB
Markdown
85 lines
3.8 KiB
Markdown
# 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.
|