From 39a5d0d9b8a8dab14e740d7bd12b36ea8fe1a26b Mon Sep 17 00:00:00 2001 From: HIsheR Date: Mon, 26 Oct 2026 19:58:49 +0800 Subject: [PATCH] =?UTF-8?q?chore(backlog):=20=E8=AE=B0=E5=BD=95=20g217=20?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ua/backlog.json | 9 +++++++++ .ua/iterations.log | 1 + 2 files changed, 10 insertions(+) diff --git a/.ua/backlog.json b/.ua/backlog.json index 6a10bcf..0e2ea8c 100644 --- a/.ua/backlog.json +++ b/.ua/backlog.json @@ -2339,6 +2339,15 @@ "status": "done", "notes": "timePicker.ts 138 行:clear() 只在有值时派发(避免空回调噪音),clearBtn 走 tabindex -1 不进 Tab 序、hidden 由 effect 跟 value 走;root 加 has-clear 类给触发器补右内距,× 用 right: --ua-space-6 让到 ▾ 左侧不重叠;root keydown 接管收起态的 Backspace/Delete(展开时按键归列内导航);types/manifest props(6 项)与 steps(7 条)同步,demo 首个实例开 clearable 并演示清空提示;踩坑:line-height: 1 被 audit:visual 的 leading-literal 拦下(基线 0),改走 --ua-leading-none 后十一类仍为 0", "domain": "tune" + }, + { + "id": "g217", + "title": "frame 内核冒烟 + effect 注销与重追踪修复", + "motivation": "70 个组件全部跑在 @ui-arch/frame 上,但 smoke 只覆盖 table-core:信号 / effect / computed 的语义改动没有任何自动化拦网。首次补测即抓到两个真缺陷——effect 返回的注销函数是空实现(卸载后仍被信号唤醒),且重跑不清理上一轮依赖(条件分支换走后旧信号继续唤它)。", + "acceptance": "新增 packages/core/frame/scripts/smoke.mjs(14 条断言:读写与同值短路 / 注销后不再重跑 / 条件分支重追踪 / computed 派生与链式 / 多订阅者扇出),跑在 dist 上不依赖 DOM;修 signal.ts 的 effect:注销真的摘订阅、重跑前清旧订阅;npm run smoke 串起 frame + table-core 两段;AGENTS.md 说明 smoke 覆盖范围;npm run check 全绿。", + "status": "done", + "notes": "signal.ts 引入 activeDeps(当前 effect 订阅到的信号订阅集集合):信号读值在收集 active 的同时登记自己那本 subs,effect 每次重跑先遍历 deps 摘掉旧订阅再 clear(条件分支换走后不再被旧信号唤),注销函数置 stopped 标志并逐个 subs.delete(run)(原先只留空注释);computed 未改,靠 effect 自动受益;新增 packages/core/frame/scripts/smoke.mjs 14 条断言(含负向:注销后不重跑、切分支后旧依赖静默、扇出时注销一个不影响另一个),首跑即 5 红(其中 1 红是我把 3×2 写成 30 的断言错误,已改 6),修完 14/14 绿;npm run smoke 改为 frame + table-core 两段串跑,AGENTS 门禁段补两段断言数量与用途", + "domain": "tooling" } ] } diff --git a/.ua/iterations.log b/.ua/iterations.log index 0d557ed..258abf4 100644 --- a/.ua/iterations.log +++ b/.ua/iterations.log @@ -261,3 +261,4 @@ {"ts":"2026-10-26T19:54:55+08:00","id":"g214","result":"done","commit":"a607a40","summary":"七个弹层的 7 份重复入场 keyframes 收敛为 ua-pop-drop / ua-pop-rise 两个,时长与缓动全走令牌,五个 .is-flip 弹层补方向覆盖(翻转后不再朝反方向滑入)"} {"ts":"2026-10-26T19:55:45+08:00","id":"g215","result":"done","commit":"0fb9198","summary":"配方 13:日期 + 时间组合预约时点,示范两段各管一段(YYYY-MM-DD / HH:mm)、拼装交给 computed、约束优先于校验"} {"ts":"2026-10-26T19:57:26+08:00","id":"g216","result":"done","commit":"17da561","summary":"timePicker 补 clearable:有值时右侧出现 ×(不进 Tab 序),Delete/Backspace 等价清空,清空写回空串并收起弹层"} +{"ts":"2026-10-26T19:58:47+08:00","id":"g217","result":"done","commit":"34985ff","summary":"新增 frame 内核冒烟 14 条(跑 dist、无 DOM),顺带修掉 effect 的两个真缺陷:注销是空实现、重跑不清理旧依赖"}