返回 DeepSeek-Reasonix
design-qa.md
根目录 / design-qa.md
1 # Chat presentation design QA
2
3 ## Harness source port, 2026-09-12
4
5 - Source provenance and host adaptations: `desktop/frontend/src/components/harness-chat/README.md`.
6 - Ported disclosure, reasoning, turn-process, context-record, tool-row, terminal,
7 diff, web-source, status and folding primitives; copied scoped Markdown styling.
8 - Preserved Reasonix's safe-link host, Markdown workers, composer, approvals,
9 fork capability checks and content API. No feedback voting controls.
10 - Removed Settings → Conversation experience → Standard/Deep and its search
11 summary. Kept the approval control and persisted compatibility field.
12 - Completed tool errors can fold with a successful final answer; a visible
13 failed-call count remains in the process summary. Interrupted/terminal
14 failure records stay visible. Permission text is disclosed on demand.
15 - In real Electron, opened the user's existing weather turn, expanded and
16 collapsed its seven tools, and verified the two failed calls remained visible
17 in the summary. Inspected the settings screen and confirmed there are only
18 the three default approval choices in that section.
19 - Production ZIP: SHA256 `3409b930ca85eebc7dae8e266821300e2358518827736394602769c4ddf303ce`.
20 Build `v0.0.0-dev`, commit label `0e5319ad145b` plus current worktree changes,
21 build time `2026-09-12T12:54:05Z`, macOS arm64 / Electron 44.2.0.
22 - Ad-hoc signature verification and packaged smoke passed: 3.1s handshake,
23 real renderer `Version` call, normal shell and service exit. The user-facing
24 launch uses the isolated `Reasonix-Test-ChatRefactor` profile.
25 - The final font-only correction uses a root-owned token for portaled usage/time
26 dialogs; the typography contract passed all 165 assertions. Long-history
27 replay numbers above were captured before that portal-only correction.
28 - Browser evidence: `docs/evidence/harness-chat-port/`. Synthetic weather
29 screenshots use fixture data, not a fresh weather query. Each tool header is
30 24px high; collapsed processes do not mount tool bodies.
31 - WebKit 26.6: 1,000 turns input P95 103ms, switch P95 40ms. Its Long Tasks
32 API is unavailable, so no maximum-long-task claim is made for WebKit.
33 - Chromium 153: 1,000 turns input P95 120.7ms, max long task 138ms,
34 switch P95 32.8ms, released heap growth 125,396 bytes over 20 switches.
35 - Electron 44.2.0 replay: 1,000 turns input P95 43.4ms, max long task 142ms,
36 switch P95 20.3ms. Stream anchor drift 0px; prepend drift 0.094px.
37 - Native WebView hosts on other platforms, native IME soak and exposed native
38 scrollbar dragging were not rerun in this pass. This is a local test build,
39 not a published or notarized release.
40
41 ## Earlier footer verification
42
43 ## Reference
44
45 - DeepSeek Harness commit: `c291e7961a`
46 - Source components:
47 - `<deepseek-harness>/packages/client/ui-chat/src/client/chat/TurnUsagePanel.tsx`
48 - `<deepseek-harness>/packages/client/ui-chat/src/client/chat/MessageIconActions.tsx`
49 - Visual references supplied by the user:
50 - Reference screenshot: assistant footer actions and turn metrics.
51 - Reference screenshot: token usage detail popover.
52 - Reference screenshot: elapsed-time detail popover.
53
54 ## Implemented target
55
56 - Assistant turn footer contains copy, branch-in-new-chat, usage, duration, and timestamp.
57 - Like and dislike actions are intentionally omitted.
58 - Usage popover shows exact total tokens, provider/model route, cache hit rate, uncached input, cache-read input, output, and reasoning output.
59 - Duration popover shows total turn time and live throughput when the active turn exposes it.
60 - Compact values use the same `K tok` treatment as Harness while popovers retain exact values.
61 - Long provider/model routes remain on one line with ellipsis and expose the full route as a native title.
62 - Branch action uses the existing checkpoint and capability checks and creates a real conversation fork.
63 - Popovers dismiss with Escape or outside interaction and return focus to their trigger.
64
65 ## Native verification
66
67 - App: `~/Applications/Reasonix-Canary/Reasonix.app`
68 - Platform: macOS arm64, Electron 44.2.0
69 - Data directory: isolated `Reasonix-Test-ChatRefactor` profile
70 - Compared the Harness reference and the running app in one visual comparison input.
71 - Verified a real newly completed turn displayed `用量 7.4K tok`, `用时 2秒`, and a timestamp.
72 - Verified its usage details displayed 7,370 total tokens, 96.7% cache hit, 238 uncached input, 7,040 cache-read input, 92 output tokens, and 25 reasoning tokens.
73 - Verified the duration dialog, usage dialog, copy action, branch action, keyboard dismissal, and normal transcript scrolling.
74 - Found and fixed a queued-turn timing bug that could reuse the preceding turn start time; the new regression test covers this event order.
75
76 ## Result
77
78 PASS. The footer hierarchy, spacing, subdued metadata treatment, popover content, and interaction match the supplied Harness target within the existing Reasonix theme. No like or dislike control is present.
79
79 lines MARKDOWN