fix(tasks): 扫光改为整条完整扫过 + 折叠/展开按钮分向

用户反馈两条:

1) 扫光只有「部分」:第一版是 45% 宽的窄带 + background-position 位移,
   亮带始终只覆盖小条的一部分(峰值 22.5%→77.5%,两端扫不到),看起来像
   中间游走的一块光斑。改为与小条等宽的渐变带 + transform
   translateX(-100%) → translateX(100%):光带从左外侧进入、中途覆盖整条、
   再向右外侧离开,行程用条宽本身表达(任意条宽成立),末 1/3 周期停在
   右侧外侧留白。theme.spec 新增守护钉住该形状(宽度 100%、transform 行程、
   不再有 background-position/size 位移)。

2) 折叠按钮与展开按钮长得一样:三处控件原本共用向下箭头(控制条的折叠开关
   更是无论折叠还是展开都画同一个清单图标)。现按动作方向区分——
   卡片小条的逐节点按钮 = chevron up(收进聚合),聚合卡片 = chevron down
   (展开),控制条开关随状态在两者之间切换(并复用同一个折叠图标)。
   组件守护见 tasks-page.spec 的「draws COLLAPSE and EXPAND with different
   glyphs」。

真机证据(3080,真实运行中的后台任务):242px 小条上每 90ms 采样 ::after 的
matrix 平移量得到 [-23,32,85,131,163,-139,-94,-46,9,64,114,152,179,188]
(左侧 -139 → 右侧 +188,跨度超过一个条宽,单调推进);三处 svg 比对
expandVsCollapse / clusterMatchesExpand / clusterFlips / clusterCollapseMatchesCard
全部为 true。

验证:typecheck / lint ✅;pnpm test 1256 passed / 9 skipped(新增 2 例)。

(cherry picked from commit 0bb8228e6a7acb4302d9a8a9881d2df04a285152)
This commit is contained in:
Menghuan1918
2026-09-27 22:18:57 +08:00
parent d38fefe55d
commit 7cce50c493
6 changed files with 123 additions and 15 deletions
@@ -122,6 +122,40 @@ client 半(src/client/)
当前会话改用加粗 accent 描边;**圆角 4px → 8px**。任务输出的锚定浮窗也换成了常驻浮动窗。
以新文档为准。
## 后续修正(2026-09-27,用户反馈)
用户反馈两条,都在真机上定位并修掉:
### 1. 扫光只有「部分」→ 改成整条完整扫过
第一版用 `background-size: 45%` 的窄带 + `background-position: 0% → 100%`:亮带确实在移动,
但它始终只覆盖小条的一部分(峰值从 22.5% 走到 77.5%,两端永远扫不到),看起来像中间游走的
一小块光斑。现改为**与小条等宽的渐变带 + `transform: translateX(-100%) → translateX(100%)`**:
光带从左边外侧进入、中途覆盖整条、再从右边外侧离开,行程就是用条宽本身表达的(任意条宽都成立),
末 1/3 周期停在右侧外侧(两轮之间留白)。`tests/theme.spec.ts` 新增一条守护钉住这个形状。
真机证据(242px 宽的小条,每 90ms 采样一次 `::after` 的 `matrix` 平移量):
`[-23, 32, 85, 131, 163, -139, -94, -46, 9, 64, 114, 152, 179, 188]` —— 光带在小条左侧
(-139)到右侧(+188)之间被连续观察到,单调推进、跨度超过一个条宽;并截到一张行程中的帧。
### 2. 折叠按钮与展开按钮长得一样 → 两者分向
三处控件原来共用向下箭头(`IconChevronDownOutlineRegular`):卡片的逐节点「收进已完成聚合」按钮、
聚合卡片的「展开」、以及控制条的折叠开关(后者更糟:无论将要折叠还是展开都画同一个清单图标)。
现在按**动作方向**区分:
| 控件 | 折叠方向(chevron up) | 展开方向(chevron down) |
|---|---|---|
| 卡片小条的逐节点按钮 | ✅ `收进已完成聚合` | — |
| 聚合卡片的小条 | — | ✅ `展开已完成的节点` |
| 控制条折叠开关 | ✅(当前已展开时) | ✅(当前已折叠时) |
真机证据(比对三处 `<svg>` 内容):`expandVsCollapse: true`(两个方向确实不同)、
`clusterMatchesExpand: true`(控制条在折叠态画的就是聚合卡的展开箭头)、
`clusterFlips: true`(状态切换时图标跟着换)、`clusterCollapseMatchesCard: true`
(控制条的折叠箭头与卡片逐节点按钮一致)。组件级守护见 `tests/tasks-page.spec.tsx`
的「draws COLLAPSE and EXPAND with different glyphs」。
## 实施偏差记录(写给复审)
1. **`process-activity.ts` 是裁剪版而不是原样搬运**:本轮「阶段」= 徽标 + 颜色,逐阶段列表没有消费者,留着就是死代码。裁剪后 44 例 → 30 例(阶段相关用例随机制一起删除)。