改了什么
- desktop/src/components/ui/SpinnerIcon.tsx(新增):把侧栏那颗转圈的图形/动效/相位抽成一份共用组件。三个非缺省数值照抄 docs/09 第 46 节(周期 2s、相位 -<Date.now()%1000>ms、尺寸 icon-xs = 16 设计 = 19.2)。类名仍留 .sidebar-spinner(scripts/probe.js 与 §46.3 的读数都按这个名字记)。相位改成挂载时取一次:对话区那两行跑着时每秒重渲,原位那版每次渲染现算会把 2s 的圈每秒拽走半圈。
- desktop/src/components/sidebar/Sidebar.tsx:删掉私有 SidebarSpinner,改用共用组件,行为不变。
- desktop/src/components/chat/ActivityTimeline.tsx:两处前导槽 —— ToolCallRow(单次调用、跑着)与 ToolRun 折叠行(跑着)在 running/live 时把类目图标换成同一颗转圈,尺寸分别 14.4(占原盒子,跑完切回来不抖)和 19.2;类目信息没丢(标签写「正在运行 <命令>」,折叠行 data-icon 照旧)。
- desktop/src/styles/app/02-sidebar.css:只加一段注释(说明这一份现在两处共用、类名不改的理由),CSS 本体未动。
- desktop/scripts/probe-chat-spinner.js(新增):这次改动的验收探针。
怎么验的
- cd desktop; npm run typecheck → 无输出,exit 0。
- cd desktop; npm run build → ✓ built in 6.11s,exit 0(chunk >500kB 警告是原有的)。
- cd desktop; $env:PCA_TEST_HOOKS='1'; node scripts/selftest.mjs scripts/probe-chat-spinner.js chat-spinner.json → 真 Electron 窗、真 DOM,21 条全过(连跑三次 21/0),报告在 desktop/artifacts/chat-spinner.json。覆盖:跑着的调用行/折叠行前面出现转圈、两段 path(底环 opacity 0.3)、sidebar-spin 2s linear infinite、负相位且每秒重渲不动、圈真的在转(不吃 prefers-reduced-motion)、尺寸 14.39 / 19.19、颜色 = 行色(currentColor)、类目图标被换掉而非并排、都落定时一颗都不画,以及左栏那颗没变。
- cd desktop; node scripts/selftest.mjs scripts/probe.js r94-probe.json → 在 browser:act 浏览器主机未注册(标签页 b1)处中断。用 git stash 把改动全部收起后重跑同一条命令,报同一个错,所以与本改动无关(这台机器残留的浏览器标签状态),但因此没拿到 324/324。
没做完 / 拿不准
- probe.js 那套 324 条在这台机器上跑不到底(上面那条预先存在的失败),我用探针里的 D1–D3 复刻了它对 .sidebar-spinner 的规则断言并实测左栏那颗未变。
- 取舍:跑着时是换掉前导类目图标,不是并排加第二颗。依据是 Codex 那一行静止时「一个图标 + 一行字」(§40.1、§70),以及命令面板里已有 spinning ? 转圈 : 图标 的同一套写法;若你要的是两颗并排,这里需要改。
- 单次调用那行用 14.4 是为了不抖,但这一格的尺寸没有取证(§70 只量了折叠行的 16 设计),是我按现有代码定的。
- 范围只到「任意正在跑的调用」(命令/编辑/搜索),不只 shell_exec;若只要命令,也是一处小改。
- CommandPalette 里还有第三份同样的图形(PaletteSpinner,相位用 %2000,注释写明「单独一份容器不同」),本次没动;docs/09 也没加新小节(新读数写在探针与代码注释里)。
- 没启动真机 Codex 对拍,「和真机一致」只在侧栏那份既有取证范围内成立。
Comments (0)
No comments