Skip to content

Commit bbd4179

Browse files
committed
docs(ui): 收窄 jsdom 措辞并认领掉地项
批 8 T16(欠账 #7 掉地项 + jsdom 措辞的代码面)。 - app/src/test/motionHarness.ts(147 → 147,净增 0):边界段 :50-53 就地改写 —— 理由句 收窄为「jsdom 做级联(类规则 / ID / 子选择器 / 继承 / !important 实测全生效);不可得的是 var() 不解析 · 简写→长写不展开 · 几何全 0 · 伪元素不命中」。 - app/src/ui/primitives/surfaceResidual.ts(229 → 230):① SHADOW_RESIDUAL 的 AiConversationDock 条目 reason 就地更正(原写「登记给批 5」而批 5 已收口 = 掉地项 ⇒ 批 8 已认领、本批不迁、具名归属 = 控制方);② 增一行登记:非棘轮圆角档不在任何守卫内。 file / kind / count 一字未改(导出数据深比对:tmp/t16/p10-behaviour.json 15/15)。
1 parent b7c3435 commit bbd4179

2 files changed

Lines changed: 6 additions & 5 deletions

File tree

‎app/src/test/motionHarness.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@
4747
* 副作用:`installMatchMediaStub` **临时改写** `window.matchMedia`(`restore()` 复原,含「原本就没有」
4848
* 的情形 ⇒ `delete` 回 `undefined`);其余导出全是纯函数 / 只读。**遗漏 `restore()` 会污染同文件
4949
* 后续用例** —— 本模块**不做**自动清理(vitest 的 `afterEach` 注册会侵入调用方生命周期)。
50-
* 边界:① 本模块只解决**时序确定性**,**不解决** jsdom 不做样式级联(`getComputedStyle` 拿不到
51-
* transition / animation 的生效值)⇒ 观感类判据本批一律不做;② `animatedProps` 读的是 `el.style` 的
52-
* **内联**属性集合,**看不见**类规则里的属性;③ `freezeAt` 只对 **paused** timeline 是确定性的 ——
53-
* 非 paused 的 timeline 会被 ticker 用墙钟推进(调用方负责传 paused 的那一个)。
50+
* 边界:① 本模块只解决**时序确定性**,**不解决** jsdom 渲染差异 ⇒ 观感类判据本批一律不做。🔴 **批 8 T16 收窄**(原句
51+
* 「jsdom 不做样式级联」**不准确**):jsdom **做**级联 —— 类规则 / ID / 子选择器 / 继承 / `!important` 实测全生效;**不可得**:
52+
* `var()` 不解析(回字面量)· 简写→长写不展开(`transition-duration`=`0s`)· **几何全 0** · 伪元素不命中;② `animatedProps` 读的是
53+
* `el.style` 的**内联**属性集合,**看不见**类规则里的属性;③ `freezeAt` 只对 **paused** timeline 确定(非 paused 的由墙钟推进)。
5454
*/
5555
import { gsap } from "../motion/engine";
5656
import type { GsapTimeline } from "../motion/engine";

‎app/src/ui/primitives/surfaceResidual.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export const BORDER_RESIDUAL: readonly { file: string; kind: SurfaceResidualKind
6969
{ file: "components/note-selection/SelectionActionMenu.tsx", kind: "b1-non-migrated", count: 1 },
7070
];
7171

72+
// 🔴 **批 8 T16 登记(欠账 #10;只登记、不入棘轮)**:**非棘轮圆角档不在任何守卫内** —— 棘轮只覆盖 `6|12|14|999|2`(`surfaceBaseline.ts:16/:142`),映射表档 `0/3/4/5/8/10` 与两者都没列的 `1` 都不在任何棘轮内、无守卫(口径 = `borderRadius` 后的数值字面量处数 · 域 = `app/src` 入库域 · 时点 = 批 8 T16,读数进 `task-16-report.md`)。⚠️ 批 8 计划 `### 表 4` #10 把本写成「圆角 `26/5/4` 三档」,**该三元组在本仓不可复现** ⇒ 本条按实测口径登记,差异见 `task-16-report.md` 未决条第 1 条。
7273
/** 圆角族同上;**控件形态**按类别整体裁定,不逐文件登记(理由见文件头「★ 语义」) */
7374
export const RADIUS_RESIDUAL: readonly { file: string; kind: SurfaceResidualKind; count: number }[] = [
7475
{ file: "components/CaptureOverlayPanel.tsx", kind: "b1-non-migrated", count: 2 },
@@ -98,7 +99,7 @@ export type ShadowResidualKind = "exception" | "anchored-menu" | "backlog";
9899
* 判据(`surfaceRatchet.test.ts` ⑧)逐条未改,只换导入来源。
99100
*/
100101
export const SHADOW_RESIDUAL: readonly { file: string; kind: ShadowResidualKind; reason: string }[] = [
101-
{ file: "components/AiConversationDock.tsx", kind: "exception", reason: "`-8px 0 24px` 是**方向性**边缘投影(dock 向左升起);`--ed-shadow-1/2` 是双向环境投影(`0 1px 2px …, 0 4px 12px …`)⇒ 换成 token 会丢掉「从右边滑出来」的暗示,属观感变化,登记给批 5" },
102+
{ file: "components/AiConversationDock.tsx", kind: "exception", reason: "`-8px 0 24px` 是**方向性**边缘投影(dock 向左升起);`--ed-shadow-1/2` 是双向环境投影(`0 1px 2px …, 0 4px 12px …`)⇒ 换成 token 会丢掉「从右边滑出来」的暗示,属观感变化。🔴 **批 8 T16 就地更正**:原写「登记给批 5」,而批 5 已收口 ⇒ 该登记**掉地**(控制方 §A.7);**批 8 已认领**,本批**不迁**(换 token 会丢方向性暗示 = 观感变化 ⇒ 需人的裁决),**具名归属 = 控制方(§A.7)**" },
102103
{ file: "components/BrowserChrome.tsx", kind: "anchored-menu", reason: "B1 锚定菜单族(计划 §表 4 的 TABLE4_ALIAS,`data-app-menu` 右键菜单,`zIndex(\"popover\")`)⇒ 不迁原语;T17-B 第 1 批已把字面量换成 `boxShadow: \"var(--ed-shadow-1)\"`(token 引用不是字面量)" },
103104
{ file: "components/CanvasNodeConcept.tsx", kind: "backlog", reason: "不在 B11 切片内(画布节点族)⇒ 余量登记给批 5/7" },
104105
{ file: "components/CanvasNodeModel.tsx", kind: "backlog", reason: "不在 B11 切片内(画布节点族)⇒ 余量登记给批 5/7" },

0 commit comments

Comments
 (0)