Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions HANDOFF.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,15 @@

## 3. 未决

剩余待办已重排到 **`docs/待办与积压.md`**(2026-11-09 版),分四档:
剩余待办见 **`docs/待办与积压.md`**(2026-11-09 重排版,1.2.1 发布后):

- **P0 · 1.2.1 已完成并发布**:安装器交互(`LAMPYRIS_RESTART_HOST`/`LAMPYRIS_OPEN_SETTINGS`/`LAMPYRIS_FORCE_INSTALL`)、旧宿主检测、练习页 VoiceOver、Terminal ⌥L 文档、回归并发与超时治理;附带零引用代码/资源清理与 CI 去 `install-action`。剩余交接项见 `docs/待办与积压.md`。
- **P1 · 1.3.0 教学/数据**:三级简码专项(需引擎 + ADR)、corpus M2-1 调研、字根字形身份库、真笔顺/结构标注、拆字说明扩充、多方案码表。
- **P2 · 有证据才做**:排序观察期、位置记忆、冷首键、拼音后端评估、n-gram(都写了触发条件)。
- **P0 · 立即(验证不开发)**:练习页 VoiceOver 实机走查、安装器三条新分支的回归测试、离线回归编译共享缓存、
pro 升级与实键入、IT-22 清单按 1.2.1 复跑。除非抓出缺陷,否则并进 1.3.0 的 B0,不单出 1.2.2。
- **P1 · 1.3.0**:三级简码专项(需引擎 + ADR)、corpus M2-1 调研 → N1 字根字形库 → N2/N3/N4、拆字说明扩充、多方案码表、客户端自动回读缺口。
- **P2 · 有证据才做**:排序观察期、位置记忆、冷首键、拼音后端评估、n-gram(均写触发条件)。
- **明确不做**:云/账号/广告/统计/剪贴板/语音;平台扩展单独立项,不与 macOS 同批。

其它状态:`tag v1.2.0` 已发布(Release `42558833917`)、站点 `v1.2.0 · 构建 39`、air 与 pro 同包 1.2.0/39(执行 `ef25e92b…`)。
建议:先做 P0 套餐(1 天),再在「教学闭环 B」与「数据地基 C」之间选一条主线。

## 4. 下一步(1.2.0 发布清单)

Expand Down
2 changes: 1 addition & 1 deletion docs/tasks/T-ITER-22-1.1.0-affected.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# T-ITER-22 受影响行复跑 — 1.1.0 简码 + 位次上移

> 2026-11-06 整理。**只跑受"候选顺序"影响的行**,其余沿用报告 216/217 基线(`docs/tasks/T-ITER-22.md` 整册仍是最终依据)。
> 2026-11-06 整理(历史专项:1.1.0 简码改动;当前换包复跑以 `T-ITER-22-coverage.md` 为准)。**只跑受"候选顺序"影响的行**,其余沿用报告 216/217 基线(`docs/tasks/T-ITER-22.md` 整册仍是最终依据)。
> 触发原因:ADR-304 D17 一级简码 25 条入表 + `personalize` 改「有界位次上移」(报告 228)。

## 0. 开始前(2 分钟)
Expand Down
2 changes: 1 addition & 1 deletion docs/tasks/T-ITER-22.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# T-ITER-22:最终候选产品走查(IT-22 执行清单)

- **状态**:待开始(需先有锁定候选;当前可用 0.1.16 / build 26 先演练)
- **状态**:清单已固化并多次执行(1.0.0 / 1.1.0 / 1.2.0 各走一轮,结果见报告 234、254、263);每次换包按 `T-ITER-22-coverage.md` 的 A 档 10 项复跑
- **前置**:IT-16/17/18/20 的工程部分已完成(任务卡在案),机器可判部分已由报告 197(26 张离屏快照对比度)覆盖;本卡只做**人工观感与完整任务链**
- **依据**:`docs/MVP产品验收标准.md`(交互/视觉/可访问性/日常可用),报告 197 §4,报告 215(VoiceOver 复测条件),报告 195 §4
- **产出**:本文件填好的结果表 + 证据目录 + 之后的 schema2/IT-22 报告
Expand Down
99 changes: 57 additions & 42 deletions docs/待办与积压.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 待办与积压(下一版迭代的范围来源)

> 2026-11-09 重排。**1.2.0 已发布并上线**(tag `v1.2.0`,站点与 air/pro 同包 1.2.0/39)。
> 这份文件回答"还剩什么、下一版装什么、哪些明确不做"。排序口径见 [MVP后执行计划](MVP后执行计划.md),非目标见 [AGENTS.md](../AGENTS.md) §3。
> 成本口径:**S** ≤2 人日;**M** 3–5 人日;**L** 1–2 周;**XL** >2 周。"授权"=是否需用户单独授权(换包/发布/删数据/联网下载)。
> 2026-11-09 重排(1.2.1 发布后)。**线上版本 = 1.2.1 / build 40**(tag `v1.2.1` → `168115e`,站点 `v1.2.1 · 构建 40`)。
> 这份文件回答"还剩什么、下一版装什么、哪些明确不做"。非目标见 [AGENTS.md](../AGENTS.md) §3。
> 成本口径:**S** ≤2 人日;**M** 3–5 人日;**L** 1–2 周;**XL** >2 周。"授权"= 是否需你单独批(换包/发布/删数据/联网下载)。

## 0. 版本语义

Expand All @@ -13,68 +13,83 @@
| 纯缺陷 / 安全 / 安装体验 | 补丁(1.2.x) | 可回滚到"只修 bug"的状态 |
| 新平台 | 独立项目/里程碑 | 不跟 macOS 质量同批,否则回归无法归因 |

## 1. 剩余待办(按建议优先级)
## 1. 现在的位置

### P0 · 1.2.1(补丁档,都是"安装/可用性"缺陷)
- 1.2.1 的**代码改动全部落地**:安装器(旧宿主重启询问 / 输入源缺失时开设置页 / 强制覆盖)、练习页 VoiceOver 标签与播报、回归并发默认 4、死代码与死资源清理、CI 去 `install-action`(504 假红)。
- 剩下的**不是新缺陷**,而是"新能力还没被真实使用验证过":无障碍只加了语义标签,没做一次真实 VoiceOver 朗读走查;安装器三条新分支没有自动化回归。
- pro 仍是 1.2.0/39,等你自己升级(命令见 `docs/releases/1.2.1.md` §3)。

| 编号 | 事项 | 现状与证据 | 成本 | 授权 |
|---|---|---|---|---|
| P0-1 | **覆盖安装后输入源丢失**:安装器交互化(`lsregister -f` + 直接打开设置页 + 明确提示"如菜单里没有请重新添加") | 本轮反复实测 ≥6 次:装包成功后输入源被移出启用列表;`scripts/ensure-input-source.sh` 已能判断并给步骤,但安装流程本身还没串起来 | S–M | 换包 |
| P0-2 | **旧宿主跑在备份 inode 上**(界面"装了还是旧的"):安装器已 `lsregister -f` + 警告,但**没有主动重启宿主**的交互确认 | `docs/故障恢复.md` §4.2;本轮又踩到一次(进程执行路径落在 `install-backup-…`) | S | 换包 |
| P0-3 | **练习页深色/无障碍走查**:VoiceOver 标签、对比度、`NSSwitch` 键盘可达性 | 练习页是本轮新增面;目前只有版式自检与人工截图复核 | S | 换包 |
| P0-4 | **Terminal 里 ⌥L 冲突**写进用户文档(可改 `alt+shift+l`) | 报告 255 §7:终端自身把 ⌥L 映射成 `¬`,不是缺陷 | S | 文档 |
| P0-5 | 回归并行超时治理:6 并发下 Swift 编译曾超时(已把上限提到 180s) | 本轮实测;建议改成"编译共享缓存 + 按文件超时" | S | — |
## 2. 待办

### P0 · 立即(验证 1.2.1 已交付的东西;不产生新行为)

| 编号 | 事项 | 现状与证据 | 成本 | 授权 | 验收 |
|---|---|---|---|---|---|
| P0-1 | **练习页 VoiceOver 实机走查** | 代码已加 `textField` 角色/实时值/进度条数值/`announcementRequested` 播报,但**没有人耳确认**;对比度与 `NSSwitch` 键盘可达性也未走查 | S | 换包(已装 1.2.1 可免) | 题面、作答格值、判分结果三项都被朗读;⌥K 窗口可全程键盘操作 |
| P0-2 | **安装器新分支的回归测试** | `install.sh` 新增 `LAMPYRIS_RESTART_HOST` / `LAMPYRIS_OPEN_SETTINGS` / `LAMPYRIS_FORCE_INSTALL` 三条路径,目前只有 `bash -n` + 手跑证据(报告 263) | S | — | 新增 `test-install-script.py`:三条分支的脚手架断言 + 危险动作被 dry-run 拦住 |
| P0-3 | **离线回归的编译共享缓存** | 6 并发时 Swift 编译互相拖慢导致假超时,现用"4 并发 + 180s 上限"兜底 | S | — | 并发回到 6 仍全绿,且单文件超时降回 90s |
| P0-4 | **pro 升级 + 实键入确认** | pro 仍 1.2.0/39;SSH 驱动不了 GUI | S | 换包 | pro 执行 `upgrade.py --apply` 后 config 与 962 行词库不变,手打几个字正常 |
| P0-5 | **IT-22 清单按 1.2.1 复跑一次** | 1.2.0 走过一轮;1.2.1 动了安装与无障碍,A 档 10 项里 A8/A9(安装/切源)受影响 | S | 换包 | `docs/tasks/T-ITER-22-coverage.md` 的 A/B 档结果表更新 |

> 这五项都是"确认"而非"开发"。**除非 P0-1/P0-5 抓出缺陷,否则不必单独出 1.2.2**,并进 1.3.0 的 B0 验证批即可。

### P1 · 1.3.0(教学与数据,需要先写 ADR)
### P1 · 1.3.0(教学与数据;动到候选行为或新增数据的都要先写 ADR)

| 编号 | 事项 | 现状与证据 | 成本 | 依赖 | 授权 |
|---|---|---|---|---|---|
| P1-1 | **三级简码专项练习** | 练习已有一级/二级/完整码/识别码(ADR-316);三级简码缺"哪些字真有三级简码"的码表,ADR-314 已关闭三级简码,用"前 3 码"冒充会教错 | M | 引擎支持三级简码(ADR + 词库取舍) | 换包 |
| P1-2 | **corpus M2-1:来源与许可调研**(只出报告) | `docs/结构库第二阶段需求.md` 已定 N1–N4 与门槛;这是把 B0 从 76% 推向 ~100% 的前置 | S | — | 联网调研 |
| P1-1 | **三级简码专项** | 练习已有一级/二级/完整码/识别码(ADR-316);缺"哪些字真有三级简码"的码表,用"前 3 码"冒充会教错。模拟数据:首选 75%→97.5%,但按键 4.25→4.03、表 +53 KB、582 处撞码(报告 239) | M | 引擎支持三级简码 + ADR(是否入表) | 换包 |
| P1-2 | **corpus M2-1:来源与许可调研**(只出报告,不动仓库数据) | `docs/结构库第二阶段需求.md` 已定 N1–N4 与四道门槛;B0 现在 `full` 735/1000 | S | — | 联网调研 |
| P1-3 | **字根字形身份库(N1)**:解掉 249 条占位 | 两款候选字体均无许可(ADR-310),需新来源 | L | P1-2 | 数据入库 |
| P1-4 | **真笔顺(N2)/ 结构标注(N3)/ 完整拆字(N4)** | 现 `strokes` 只是取码笔顺,不是真笔顺 | M–L 各 | P1-3 | 数据入库 |
| P1-5 | **拆字说明扩充**(D14 现 104 条完整解释) | 根因同上(字根字形身份) | L | P1-3 | 数据入库 |
| P1-6 | **多方案支持**(五笔 98 / 郑码 / 仓颉) | `modules/keymap` 已按方案数据化(ADR-315),缺的是**码表数据源与许可**(TBD-2) | M(含数据) | 合格来源 | 数据入库 |
| P1-4 | **真笔顺(N2)/ 结构标注(N3)/ 完整拆字(N4)** | 现 `strokes` 只是取码笔顺 | M–L 各 | P1-3 | 数据入库 |
| P1-5 | **拆字说明扩充** | D14 现只有 104 条完整解释(全码 27,823 条),根因同 P1-3 | L | P1-3 | 数据入库 |
| P1-6 | **多方案支持**(五笔 98 / 郑码 / 仓颉) | `modules/keymap` 已按方案数据化(ADR-315),缺码表来源与许可(TBD-2) | M(含数据) | 合格来源 | 数据入库 |
| P1-7 | **客户端自动回读缺口** | 自动矩阵里 Safari/Chrome/Xcode 三项 BLOCKED(报告 229),一直靠人工补 | M | — | AX 回读或截图比对可用 |

### P2 · 有证据才做(输入质量 / 性能,均按 ADR 关门)
### P2 · 有证据才做(都写了触发条件,没有触发条件就不开工)

| 编号 | 事项 | 现状与证据 | 成本 | 触发条件 |
| 编号 | 事项 | 现状 | 成本 | 触发条件 |
|---|---|---|---|---|
| P2-1 | 排序观察期 P2(误选不学习、时间衰减、MRU) | ADR-304 明确"暂不实施" | M | 1.2.0 实测评测显示明显非首选率 |
| P2-2 | P3 位置记忆 / 固定顺序开关 | ADR-304 未做 | M | 用户明确反馈"顺序被打乱" |
| P2-3 | 冷首键 ~28 ms 优化 | ADR-307 已分开披露、不进门禁 | M | 用户能感知到首键迟滞 |
| P2-1 | 排序观察期 P2(误选不学习、时间衰减、MRU) | ADR-304 明确"暂不实施" | M | 评测显示明显非首选率 |
| P2-2 | 位置记忆 / 固定顺序开关 | ADR-304 未做 | M | 你明确反馈"顺序被打乱" |
| P2-3 | 冷首键 ~28 ms | ADR-307 已与稳态分开披露、不进门禁;1.1.0 时代是 16–26 ms | M | 你能感知首键迟滞 |
| P2-4 | 拼音后端质量评估 → 是否自研 FSA | inputx spike 已否决 | M | 拼音兜底命中率被投诉 |
| P2-5 | 整句/长词(n-gram) | 大概率不做 | XL | 有强需求 |

### P3 · 长期/研究性

- **corpus 全量**(3,000 字 ≥98% 可解释):依赖 P1-3/P1-4。
- **D3 oracle 替代**(TBD-5):D3 已降级为"未声明许可、仅构建期",需要新的可许可来源。
- **客户端自动回读缺口**(Safari/Chrome/Xcode 在自动矩阵 BLOCKED):仍需人工补,成本 M。
- **D3 oracle 替代**(TBD-5):D3 已降级为"未声明许可、仅构建期"。
- 平台扩展(Windows TSF / Linux Fcitx5 / Android / iOS):单独立项,不与 macOS 质量批次同期,见 `ROADMAP.md`。

### 明确不做(非目标,不再列入排期)

云输入 / 云同步 / 账号 / 广告 / 皮肤商店 / AI 写作 / 打字统计与画像 / 剪贴板历史 / 跨设备同步 / 本地语音(P6 之前)。
平台扩展(Windows TSF、Linux Fcitx5、Android、iOS)**单独立项**,不与 macOS 质量批次同期。

## 2. 1.2.0 已完成(存档,便于对账)
## 3. 下一版怎么装(建议)

| 范围 | 结果 |
|---|---|
| 判码行为 | 二级简码 598 条入表(唯一影响候选顺序的改动) |
| 教学只读 | 学习区(⌥L)改版 + `B0-runtime.tsv`(3,000 字 / 121 KB,ADR-311) |
| 练习 | 四题型(一级/二级/完整码/识别码)、四位输入格、进度 `practice.tsv`、工具栏(ADR-313/316–323) |
| 键位图 | `modules/keymap`:25 键字根图、标准字根表 + 逐键审计、位次、自包含面板(ADR-315/319–323) |
| 工程 | SSH 签名 tag、站点版本盖章、内存双阈值(ADR-312)、footprint 硬顶、延迟三段 |
| 发布 | tag `v1.2.0`(验签通过)→ Release `42558833917`;站点 `v1.2.0 · 构建 39`;air/pro 同包 |
| 套餐 | 内容 | 时长 | 适合 |
|---|---|---|---|
| **A · 验证收口(推荐先做)** | P0-1…P0-5 | 1 天 | 把 1.2.1 的新能力真正验过,避免"加了没人用" |
| **B · 教学闭环** | A + P1-1(三级简码,需 ADR)+ 练习题库扩 | 1 周 | 用户侧感受最明显;但要动候选行为,得小版本 |
| **C · 数据地基** | A + P1-2 → P1-3 起步 | 2–3 周 | 为 P1-4/P1-5 解锁;短期用户不可见 |

**建议 A 先做(1 天),再在 B / C 里二选一**:B 是产品可感,C 是长期正确。两者都动不到对方的前提,可以交替排。

## 4. 需要你现在决定的事

## 3. 需要你现在决定的事
1. **A 套餐要不要现在做**(1 天,只验证不开发;P0-4 你自己在 pro 上跑)。
2. **1.3.0 主线选 B(三级简码/教学)还是 C(corpus 数据)**;选 B 需要先批准 ADR 立项。
3. **P1-2 调研是否允许联网**(只读公开仓库与许可声明,不下载入库)。

1. **1.2.1 现在做还是攒着**:P0-1/P0-2 是安装体验缺陷(每次换包都可能踩),建议尽快出一个补丁包;
2. **三级简码要不要立项**(P1-1):需要引擎先支持,属于"改候选行为",得小版本 + ADR;
3. **corpus 第二阶段是否启动**(P1-2 只出调研报告,不动仓库数据)。
## 5. 已完成(存档,便于对账)

| 版本 | 范围 |
|---|---|
| **1.2.1 / 40** | 安装器交互(`LAMPYRIS_RESTART_HOST` / `LAMPYRIS_OPEN_SETTINGS` / `LAMPYRIS_FORCE_INSTALL`)、旧宿主检测、练习页 VoiceOver 语义、回归并发 4、Terminal ⌥L 文档 §4.4、零引用代码/资源清理、文档状态标注、CI 自建 cargo-deny 安装 |
| **1.2.0 / 39** | 二级简码 598 条(唯一影响排序)、学习区改版 + `B0-runtime.tsv`、练习四题型与进度、`modules/keymap` 键位图、SSH 签名 tag、站点盖章、内存双阈值、延迟三段 |
| **1.1.0 / 38** | 一级简码 25 条 + 有界位次上移(评测 ALL 命中 92.0%→97.5%) |

## 4. 关联
## 6. 关联

[ROADMAP](../ROADMAP.md)、[MVP后执行计划](MVP后执行计划.md)、[结构库第二阶段需求](结构库第二阶段需求.md)、
[故障恢复](故障恢复.md) §4.2/§4.3、ADR-304/307/309/310/311/312/313/314/315/316–323、报告 238/239/246/248/249/250/251–262。
[ROADMAP](../ROADMAP.md)、[HANDOFF](../HANDOFF.md)、[结构库第二阶段需求](结构库第二阶段需求.md)、
[故障恢复](故障恢复.md) §4.2–§4.4、[releases/](releases/)、ADR-304/307/309/310/311/312/313/314/315–323、报告 229/238/239/246/263。
Loading