Skip to content

Latest commit

 

History

History
432 lines (319 loc) · 74 KB

ROADMAP.md

File metadata and controls

432 lines (319 loc) · 74 KB

ROADMAP — 萤火虫输入法

当前状态以 HANDOFF.md 为准;历史包的 PASS 不能继承到新候选。

  • 2026-10-24 审计后可靠性工程修复(PR #142,main 56c2457):Swift 更新下载临时目录所有权清理、首次安装失败回滚、预检失败 staging 清理;更新程序 28+7 项 XCTest、本地 verify/离线/双架构构建与四项 CI PASS;D4 v0.19.0 固定到原始提交,数据 SHA 不变。未出新签名包/未实机复验,最终包动态零外联及同 RC 发布门禁继续开放。

  • 2026-10-24 合并后宿主签名候选静态核验(报告178):main 56c2457 的 run 40092840370 成功,ZIP/源码/执行双 SHA、universal/签名公证/Gatekeeper PASS;未安装,版本仍为 0.1.12/build20、与已装执行 SHA 不同,且附件不含独立更新程序,不能关闭更新 UI 原生验收。

  • 2026-10-24 不发版的独立更新程序签名诊断附件(ADR-286,报告180):PR #144 四 CI PASS merge main 73d468b;诊断 run 40098104120 签名更新程序 ZIP/执行双 SHA 与源码提交绑定、公钥/验签 PASS;自动宿主 run 40098075131 同 SHA 源码的 ZIP/执行/源码三摘要、无网络导入/签名公证 PASS。两个附件均仅静态核验、仍 build20、未安装/未请求真实 feed;原生 UI/回滚/动态门禁继续开放。

  • 2026-10-24 隔离更新目标第一阶段(ADR-287):安装器/校验环境共用显式生产或 LampyrisIMKTest.<UUID> 包名、执行路径及身份契约;生产 UI 显式保持生产目标。私有目录旧包/生产哨兵、候选不符、失败回滚回归 PASS(更新程序 33+7 项、build、离线顺序重跑、verify);未安装任何包,未测网络/UI。

  • 2026-10-24 隔离更新绑定第二阶段(ADR-287,报告181):测试构建须带 LampyrisTestOnly+UUID 身份+已拥有私有根才改安装域;符号链接/权限/owner 标记/根外路径一律拒绝且不回退生产;build.py 拒写隔离键。updater 38+7 项、生产构建 Info.plist 无隔离键、新增 3 项结构回归、离线/verify PASS;未出新构建号/未签名/未安装。

  • 2026-10-24 drill 测试 feed 定为项目 Pages 子路径(ADR-288):https://input.jokerhub.cn/drill/(HTTPS/LE 证书实测 200,easyindie.github.io 301 到 http 禁用);artifact 合并部署、临时 Ed25519 密钥、测试构建号,用后普通 Pages 部署下线。

  • 2026-10-24 隔离更新程序构建入口(ADR-288,报告182):build.py 新增 --isolated-root/--isolated-identity/--test-build,三项齐全才产出 ...WebsiteUpdateCheckTest.<UUID>;本地实测隔离 Info.plist/构建号 901/私有根绑定正确,生产构建仍 build20 且无隔离键;4 项结构回归 PASS。未签名/未安装。

  • 2026-10-24 drill 工作流与签名链演练(ADR-288,报告182):main-only Isolated Update Drill 生成临时密钥隔离更新程序 + 公证隔离载荷 + appcast,artifact 7 天;本地临时密钥演练 --verify-payload 通过;4 项结构回归 PASS。(报告213 更正:该工作流当前只有 build 作业,site/drill/ 的 publish 作业已不在仓库里)

  • 2026-10-24 drill 实跑(报告182→183/184):run 40110592061 通过并发布到 https://input.jokerhub.cn/drill/,载荷/更新程序双 SHA、公证与身份绑定核对完成;当时 SSH 会话无窗口服务器的 UI 点击缺口已在报告183/184 由图形会话补齐。

  • 2026-10-24 隔离更新真实网络复验(报告183):代理规则修正后,run 40139366666(载荷 905/更新程序 904)实测 cancel→清理、tamper→拒绝且清理、install→备份+替换+receipt(0600)+落地验签与公证复核全 PASS;生产执行 SHA/config 前后不变,本轮未留临时下载目录。

  • 2026-10-25 隔离更新 UI 安装(报告183):用户在图形会话点击更新窗口,显示「已安装构建 905」;新增 receipt/备份与落地 SHA 复核一致,无残留进程与临时目录。UI「取消」按钮未单独取证。

  • 2026-10-25 drill 下线与清理(报告183):普通 Pages 部署后 /drill/ 404、首页与 DMG 正常;私有根整体删除;生产执行 SHA/config 未变。

  • 2026-10-25 清理旧会话遗留隔离输入法(报告183):父源 disable 生效后 tissrc list 无 IMKTest 条目,专用 PID 1311 停止、bundle 删除;生产宿主/执行 SHA/config 未变。

  • 2026-10-25 目标目录缺失语义(ADR-289):安装器在停宿主前以 domainMissing 显式失败、不建目录;新增 XCTest;drill 以既有安装为前置。

  • 2026-10-25 原生回滚演练(报告184):run 40141817920(载荷 906/更新程序 905)在落地后注入校验失败,旧包执行 SHA c9f05b97… 恢复、work 目录 0→0、无 receipt、临时目录清理,result=rolled-back。

  • 2026-10-25 UI 取消按钮取证(报告184):用户在图形会话点击「取消」,窗口显示「已取消」;安装槽 SHA c9f05b97… 未变、0 份 receipt、无 upgrade 目录与临时目录残留。

  • 2026-10-25 drill 收尾(报告184):Pages run 40143742966 后 /drill/ 404、首页 200;私有根删除、无 lampyris-imk-* 残留;生产宿主/执行 SHA/config 与输入源未变。

  • 2026-10-25 新候选包静态核验(报告185):main 167a644 的 acceptance run 40141807115 产物 ZIP 430da00b…/源码 a7603962…/执行 9c4d40f9…,签名公证/staple/双架构零网络导入/控制器类保留/无隔离键/可复现全 PASS;与已装包同 0.1.12-build20,只能以执行 SHA 区分。

  • 2026-10-25 版本/构建号递增(0.1.13 / build 21):Cargo.toml 与 packaging/build-number 同步,Cargo.lock 刷新;make verify(422 产物)、macos-offline-tests、updater 40+7 PASS;发布流程补「2.5 版本号与构建号递增」。

  • 2026-10-25 正式发布 0.1.13 时更新站点与发布材料——已随 0.1.13/0.1.14 两次发布完成(报告194;站点现为 v0.1.14 · 构建 23,由 test-site-version.py 钉住自洽性)。

  • 2026-10-25 正式候选 0.1.13/build21(报告186):PR #155 四 CI PASS → main 2d9c509,acceptance run 40145382687 产物 ZIP f86959d6…/源码 c743feb4…/执行 a3faf05c…;签名公证/staple/双架构零网络导入/控制器类/无隔离键/可复现 PASS;启动 30 秒抽样 0 外联,config 未变。未安装。

  • 2026-10-25 安装候选 0.1.13/build21(报告187):原地替换生产位,执行 SHA a3faf05c…、spctl Notarized Developer ID、codesign --strict PASS;用户人工键入会话报告正常、词库 519→520 学习写入、宿主存活 RSS 7.8 MiB;空闲与会话后网络抽样均 0 连接。回滚点 /tmp/lampyris-rollback-0112/。

  • 2026-10-25 键入路径自动化(报告188):新增 imetype/keytopid 探针(进程内切源 + 受信进程按 PID 投递),实测五笔整码、拼音兜底、四码自动上屏、中文标点、全角切换上屏正确;键入期 28 次网络采样全 0、RSS 17–35 MiB、宿主同一 PID 无崩溃;config 已还原。单按 Shift 与 ⌥M 连发待真实按键复核。

  • 2026-10-25 目标客户端矩阵(报告189):TextEdit / Safari / Chrome / Ghostty 用同一按键串 wq nihao . 上屏均为「你你好。」(AX、页面标题、落盘文件三种回读),脚本化 client-matrix.sh;宿主同 PID、RSS 13.9 MiB、config 未变。Xcode 首次启动未取到焦点 → BLOCKED。

  • 2026-10-25 热键矩阵自动化(报告190):shiftc 发真正 flagsChanged 后单按 Shift 中英切换 PASS;⌥P 标点 .。、⌥F 全角 1212、⌥T 简繁 学习/學習、⌥M 模式循环逐次落盘均 PASS;结束后 config 回到 809e2cae…。更正报告188 的两条「异常」为探针/投递通道问题。

  • 2026-10-25 一键自动化验收(报告191):make macos-auto-acceptance = 热键/上屏 8 项 + 五客户端 + 160 键延迟(p50 2.23 ms / p95 6.43 ms)+ 稳定态 11.8 MiB + 全程 0 外联,全 PASS;延迟改用文本变更通知(轮询会虚高 4 倍)。

  • 2026-10-25 久用与持久化自动化(报告192):make macos-soak 5 分钟 111 轮约 1.7k 键,0 外联、词库 568 行重启前后一致、RSS 稳态 20.0 MiB 且尾部低于热身段(无泄漏);acceptance-auto.sh 支持 SOAK_MINUTES 叠加。

  • 2026-10-25 卸载脚本离线回归(报告192):test-uninstall-script.py 6 项(dry-run/保留数据/purge/标识不符/符号链接/未安装)已进 make macos-offline-tests,假 HOME 隔离,不触碰真实安装。

  • 2026-10-25 夜间 CI 回归(ADR-290,报告193):macos-nightly.yml 每日跑 verify/离线回归/更新程序 XCTest/探针构建/shell 语法,真实键入验收用 acceptance-preflight.sh 判定,退出码 78 = SKIP(runner 无图形会话/未装输入法),具备条件时自动实跑并上传证据。 首次运行抓出 test-ci-sign.py 两处隐式依赖(#163/#164 修复),run 40164726091 全绿。

  • 2026-10-25 0.1.13 发布材料(报告193):docs/releases/0.1.13.md 记录身份表(ZIP f86959d6…/源码 c743feb4…/执行 a3faf05c…)、相对 0.1.12 的改动、已验证/未验证、升级回滚与 8 步发布 checklist。

  • 2026-10-25 0.1.13 正式发布(报告194):tag v0.1.13(9296fb5)→ Release run 40166565905 成功;资产 ZIP 130f3098…(与验收产物同 SHA)、源码 f5df1166…、更新程序 cd34358f…、appcast version=21 签名可验;DMG 签名/staple 通过;站点已改 0.1.13(Pages 为手动 dispatch,run 40167364328);releases/latest/download/appcast.xml 已指向本版。

  • 2026-10-27 已安装版本自带卸载(ADR-296,main e10e6ed6 → 修复候选 6d89821,报告213):更新窗口「卸载萤火虫…」+ --uninstall [--purge-data];卸载逻辑收敛进 InstallCore(plan/run/selfRemovalScript),DMG 卸载器改为调它;自删除用 detached /bin/sh(无额外依赖);隔离构建拒绝卸载生产。验证:install-core.swift 8 组卸载断言 + test-dmg-updater.py 18 例 + make verify;待候选包实机验自删除。 实机 7 项:6 PASS(含用户图形会话补的菜单点击/窗口卸载/注销无残留)、第 4 项 BLOCKED(无 publish 作业)。

  • 2026-10-27 --uninstall --purge-data 不清用户数据(报告213 P1)——已修(PR #202,main 6d89821,候选 90ed224d…/宿主 0669f249… 实机复验:purge 后数据根整个消失):根因是更新程序把 InstallLocation.support(…/Lampyris/updates)当 UninstallPaths.support 传,而 UninstallerCore 视其为数据根(DMG 卸载器传 …/Lampyris 才对)。修法:InstallLocation 增加 dataRoot + uninstallPaths(),窗口与 --uninstall 统一用它;InstallLocationTests 固化「removeAll 必含数据根 / keepData 不含」。

  • 2026-10-27 更新程序定位优先安装目录(报告213 P2)——已修(PR #202)**:UpdateEntry.updaterURL() 改为 ~/Applications→/Applications 优先、LaunchServices 只兜底(用户从 DMG/下载目录打开过的旧副本曾抢占);input-menu.swift 补「安装位优先/注册兜底/已删注册被忽略」三条断言,实机 LS_resolved=~/Applications/LampyrisUpdateCheck.app build 23。P3 已结案(ADR-297:keepData 只保留 config.toml 与个人词库,uninstalled/ 与 updates/ 一并清理,断言在 install-core.swift)。

  • 2026-10-27 产品页版本描述精确到构建号(PR #203,main dce7ae5,Pages run 40489884599):site/index.html 的版本行改为 v0.1.14 · 构建 23 · 约 8.2 MB;新增离线回归 packaging/macos/tests/test-site-version.py(真源 = Cargo.toml + packaging/build-number,钉住「版本行必须带构建号 / 不得残留旧版本号 / 下载链接必须指向当前版本」)。上线后回读 input.jokerhub.cn 为 v0.1.14 · 构建 23。

  • 2026-10-27 0.1.15 / 0.1.16 发布(报告214):0.1.15 交付此前从未发布的更新链路(装包自带更新程序、更新窗口卸载 + --purge-data、P1/P2 修复);0.1.16 修「更新窗口标题读更新程序自身版本、装完不刷新」。两次都把 tag 打在验收候选提交上,发布 ZIP 与候选逐字节相同(0.1.15 00b7b20d…、0.1.16 4c79be40…)。真实跨版本升级 0.1.14→0.1.15 与 0.1.14→0.1.16 均 PASS(receipt/payloadSHA256/签名对账)。更新器自更新仍未在真机演示,等下一次发版。

  • 2026-10-27 卸载语义澄清(ADR-297,报告213 §5-P3 结案):keepData 只保留 config.toml 与 user-dictionary.tsv,同目录的 uninstalled/(旧版本备份)与 updates/(更新状态/回执)一并删除——这是 P1 数据根修复的连带结果,现由 install-core.swift 断言钉住。另:报告201 的 install.sh「已自动注册」假成功已修,0.1.16 包内脚本含回读逻辑且今天在 air 上实际打印了正确措辞。

  • 2026-10-27 air VoiceOver 复测:不可复现(报告215):0.1.16/build26 上按报告210 的现场条件(VO 先开 21:54 → 宿主被停 → IMK 重新拉起 PID 31627)实测打出「你」且有候选窗,12 分钟内 1806 次 IMK 调用、current 未回退 ABC;报告210 §3.1 降级为单次不可复现观察。另查明日志里的 Refusing connection name 来自 /Library/Input Methods/SogouInput.app 的连接名不合规,与本产品无关。

  • 2026-10-27 ADR-294/295 已合并 main(PR #200,merge commit e0a27ca):候选包 Lampyris-0.1.14-universal.zip = 452ce9ba…(含签名公证的 LampyrisUpdateCheck.app,执行 dbf9a8ea…,build 23);待实机装包复验。

  • 2026-10-26 渠道收敛与安装即带更新器(ADR-295):不上 App Store,只做网站渠道;DMG 与 ZIP 都带 LampyrisUpdateCheck.app,安装器/install.sh 装到 ~/Applications(校验→备份→替换→复验→回滚 + 旧名迁移),三入口统一校验清单(加 stapler/spctl)与覆盖升级语义,ZIP 补带注册回读 helper,uninstall.sh 按 bundle id 清理更新程序,release.yml/macos-acceptance.yml 构建+公证+传参。

  • 2026-10-26 更新器自更新 + 安装实现收敛为共享核心(ADR-295):新增 platforms/macos/InstallCore(LampyrisInstallCore:replaceBundle/install/installSelfUpdate),DMG 安装器与更新器都依赖它,安装器不再自带第二份替换/校验;升级负载自带更新程序时替换 ~/Applications 里的本体(运行中不退出、下次生效,失败不回滚输入法;隔离构建不碰真实目录)。本地验证:core/updater/installer 全部 swiftc 交叉编译通过(模块级),新增 test-install-core.py 探针(替换/备份/落地失败回滚/符号链接/缺失目录/自更新 6 组断言);test-dmg-updater.py 扩到 13 例;make verify + 离线 54 项/292 例 PASS。未出签名包,待验:DMG/ZIP 装完菜单直接开更新窗口、旧名迁移、ZIP 升级不再拒绝、升级后更新程序版本同步。

  • 2026-10-26 更新程序按 bundle id 定位(ADR-294):宿主菜单与卸载器改按 bundle id cn.jokerhub.Lampyris.WebsiteUpdateCheck 查找(LaunchServices → ~/Applications、/Applications 单层扫描),正式包名固定 LampyrisUpdateCheck.app,取消「手工改名为 Lampyris Update.app」步骤;新增 update-entry.lookup 离线断言(正式名优先/旧名仍可用/只扫两个目录),make verify 与离线 52 项/278 例 PASS;未出新签名包、未在装机版上验原生菜单点击与卸载清理。

  • 2026-10-25 两台设备安装 0.1.13(报告195):air 走 Release ZIP(130f3098…)、pro 走 Release DMG(2f22120c…),两台执行 SHA 均为 c3b533e4…,签名/spctl/版本/数据保留全部核对通过。

  • 2026-10-25 固定输入质量样本集(报告196):quality-samples.sh 扩到 16 项(含切输入源、失焦再回来),在 0.1.13(c3b533e4…)上 16/16 PASS;同日 make macos-auto-acceptance 复跑全绿(p95 6.99ms、稳态 5.5MiB)。记录两个坑:探针窗口对长拼音不可靠、TIS 切源后需新建文档。

  • 2026-10-25 UI 快照与对比度自动化(报告197):26 张离屏快照对比度 15.58–19.77:1 全过,make macos-ui-contrast 一条命令;IT-22 人工走查清单已列出。

  • 2026-10-25 发布说明绑定 0.1.13(报告194):docs/发布说明.md 从 0.1.0 底稿改为本版,含执行/ZIP SHA、双机验收状态、UX-1 披露、DMG/更新程序资产说明。

  • 2026-10-25 air 侧自动化验收补齐(报告196/197):质量样本 16/16 PASS(含切源/失焦)、acceptance-auto 复跑全绿(p95 6.99ms、稳态 5.5MiB)、UI 对比度 26 张全过、发布说明绑定 0.1.13。

  • 2026-10-25 pro 侧验收:自动化与人工项已在报告198–206 完成(内存门禁、久用、卸载重装、多屏、VoiceOver 人耳、睡眠唤醒、热插拔/Spaces)。

  • 2026-10-25 pro / air 人工验收(报告195 §4)——辅助功能(pro VoiceOver 人耳 PASS,报告203/207)、多屏(202/205)、睡眠唤醒(204)、热插拔/Spaces(205)、卸载重装(201)均已结案;air 的 VoiceOver 例外另记。

  • 2026-10-25 0.1.13 正式发布:更新站点链接 → 打签名 tag v0.1.13 → 触发 Release 工作流 → 核对资产 SHA/appcast → 发布后真实更新检查(报告194)。

  • 2026-10-25 Xcode 纳入客户端矩阵(报告190):以「前台变为 Xcode」为等待条件后 wq nihao . → 你你好。;五客户端全绿,client-matrix.sh 一键复现。

  • 2026-10-25 最终 RC 动态矩阵·可自动化部分(报告191/192):一键验收 + 久用覆盖上屏/热键/五客户端/延迟/内存/零外联;剩余人工项见下条。

  • [~] 2026-10-25 最终 RC 动态矩阵·人工项:上屏/热键/五客户端/延迟/内存/零外联已由报告191/192/199/207 覆盖;仍未做:IT-22 最终包产品走查、IT-15 第三方独立重建、IT-23 五工作日试用(三项都要求先在 0.1.15 定稿包上做)。

  • 2026-10-24 更新链路受影响原生复验(报告183/184):合并 main 的隔离签名更新程序 + 临时 Ed25519 密钥 + 受控 HTTPS feed,在非生产身份、0700 私有根下实测下载/验签/取消/篡改拒绝/安装两次/备份/receipt 0600/落地验签公证/注入回滚/UI 取消;生产执行 SHA、config、宿主与输入源全程未变。

  • 2026-10-24 宿主网络导入工程归因(ADR-285/报告178):隔离链接实验定位为 Rust staticlib 带入未引用代码;build.sh 加 -dead_strip 与逐架构产物导入门禁,本地 strict universal 两片不再导入 socket/connect,控制器类保留,离线回归通过。尚未由新公证包/原生路径验证,不继承给 main 56c2457 旧包。

  • 2026-10-24 ADR-285 的签名产物静态复验(报告179):PR #143 四 CI 绿合入 main 612020d,run 40096030727 签名/公证与源码重建成功;universal ZIP/源码/执行三 SHA 绑定,双架构 nm -u 无已知网络导入且控制器类保留。未安装、仍 build20、不含独立更新程序,不关闭动态门禁。

  • 2026-10-24 同一新签名候选的宿主运行与动态零外联:0.1.14/build23 装机包实测键入期 0 外联、p95 2.52ms、内存门禁 PASS(报告207 air 侧另见209/210)。

  • 2026-10-22 build6 稳态内存判定(ADR-263,报告 144):定义 30MB 口径为「稳态 physical + 私有已提交(resident+swapped)同时 ≤30MiB」,高水位 peak 单列不计入;三轮新宿主回测 physical 28.0–28.8M、私有 24.6–25.3M(3/3 满足),p95 10.81–12.00ms;最终 RC 仍需同协议复测

  • 2026-10-22 候选内容分段计时 schema3(ADR-258,报告 138):CandidateWindow 增加默认关闭的 state/measure/set/layout 钩子,phaseSchema 升 3,controller-menu/候选展示回归更新;pod 已通过 verify/41 项离线/strict 双架构,build6 实机已归因:冷首键 content 18.35ms = layout 9.04(首次尺寸同步)+ measure 6.30(首次测量)+ 0.17;稳态 content 2.87ms,p95 10.56ms;配套 30MB 固定时点复测 30.0–34.5M 仍未关闭

  • 2026-10-22 签名 tag 校验延后(ADR-268):Release 工作流保留 git tag -v,但仅在 packaging/git-allowed-signers 存在时强制,缺失时只警告;README/发布文档标记待启用。更新包 Ed25519 验签不受影响

  • 2026-10-24 App Store 搜索框首次输入偶发卡顿调研:随 ADR-295 决定不上 App Store,此项不再适用,关闭。

  • 2026-10-24 发布渠道定为仅网站/DMG(ADR-284,报告 176):不排期/不提交/不宣传 Mac App Store;沙盒原型仅作研究;竞品调研确认主流 macOS 中文输入法均走官网 DMG/GitHub

  • 2026-10-24 产品页视觉规范入库(ADR-283):后续平台页沿用 tokens/结构,保持极简与 DMG 主路径

  • 2026-10-24 Pages 产品页改版(报告 175):仅保留 DMG 安装,展示 6 项特点,亮暗双色、极简结构

  • 2026-10-24 v0.1.12 发布(报告 174):DMG 含安装器+卸载器+完整说明;保留数据/彻底清理两模式;两台设备升级 build20

  • 2026-10-24 DMG 卸载器(ADR-282,报告 173):保留配置/词库或彻底清理两种模式;DMG 增加卸载器与安装卸载说明;0.1.12/build20 待发

  • 2026-10-23 v0.1.10 发布(报告 172):DMG 图形安装(签名/公证/双架构)上线;更新窗口标题「更新」、版本显示统一;两台设备升级 build18;0.1.9 摘要问题修复

  • 2026-10-23 DMG 图形安装器(ADR-281,报告 171):安装器 + DMG 打包/签名/公证流程;更新页标题「更新」、版本显示统一;0.1.10/build18 待发

  • 2026-10-23 v0.1.7 发布(报告 170):更新程序含官方 Icon、Dock 正常;窗口重做;两台设备均升级 build15,旧包备份,配置保留 :0.1.7/build15 待发并装到两台设备

  • 2026-10-23 v0.1.6 发布(报告 168):通用更新程序(x86_64+arm64)修复 Intel 无法打开;pro 与本机升级到 build14,旧包备份,配置/词库保留

  • 2026-10-23 更新程序 universal 修复(ADR-279,报告 167):0.1.5 仅 arm64 导致 Intel 报“不支持此应用程序”;0.1.6/build14 重建并含双架构

  • 2026-10-23 通过 ssh pro 将第二台设备(macOS 13.7.8 / x86_64)升级到 0.1.5/build13,配置与词库保留(报告 166)

  • 2026-10-23 v0.1.5 发布(报告 165):关于页显示 0.1.5 · 构建 13;生产升级 build13(0.1.4 备份),更新程序 0.1.5,Pages 指向 0.1.5

  • 2026-10-23 v0.1.4 发布(报告 163):build12 含 Shift HUD 与进度条修复;本机生产升级到 0.1.4/build12(build11 备份),更新程序 0.1.4 已装;Pages 指向 0.1.4。Shift HUD/进度条待用户复验

  • 2026-10-23 验收修复:Shift 切换 HUD + 更新进度条(ADR-277,报告 162):键盘 Shift 路径补 showStateFeedback;更新窗口进度条仅在下载阶段显示;0.1.4/build12 待发并实机复验

  • 2026-10-23 v0.1.3 发布(报告 161):主包 build11 内含签名 helper(先签 helper 再签 app),安装自动注册/启用、卸载自动切 ABC/禁用;本机用 ZIP 内 install.sh 覆盖生产成功(0.1.3/build11,配置/词库不变、未抢源);Pages 已更新为 0.1.3 命令

  • 2026-10-23 简化安装/卸载(ADR-276,报告 160):随 app 签名 LampyrisTIS helper;安装后自动注册+启用(选中仍需用户一次),卸载自动切 ABC+禁用后再移除;脚本回退与两条卸载回归通过;0.1.3/build11 待发

  • 2026-10-23 GitHub Pages 更新(PR #118):首页新增 macOS 一键安装/卸载命令(0.1.2 universal,用户域免 sudo;卸载含切 ABC/移除源/重登前置),新增「支持的平台与架构」表(macOS 13+ universal 可用,Windows/Linux/Android/iOS 计划中)与 ⌥G 更新说明;Pages run 39944750053 部署成功

  • 2026-10-23 v0.1.2 发布(报告 159):主包 build10 + 静态链接的更新程序(修复 v0.1.1 启动崩溃)+ appcast version 10;v0.1.1 坏更新程序资产已移除;本机生产升级到 0.1.2/build10(build8 备份),更新程序装到 ~/Applications;配置/词库因新 Schema 与学习变化,已记录新基线。⌥G/菜单实测待用户

  • 2026-10-22 检查更新快捷键与更新程序静态链接(ADR-275,报告 158):hotkey.open_update(默认 alt+g,菜单同源);更新程序改为静态链接 libime_ffi.a(修复 v0.1.1 启动崩溃);查找优先 LaunchServices。配置/设置/菜单/预览回归通过;v0.1.2 待发

  • 2026-10-22 v0.1.1 发布(报告 157):Release 含主包(build9)、源码、sha256、appcast(version 9)与已签名/公证的更新程序 LampyrisUpdateCheck-0.1.1.zip;更新程序已装到 ~/Applications,公钥与仓库一致。菜单点击与跨版本升级交互待用户实测

  • 2026-10-22 RC build8 候选(报告 156):main 45db5a2 → 0.1.0/build8(3c9c199f…,universal、公证);已安装到生产身份并保留 build6 备份;配置/词库不变;含 checkForUpdates 入口。带更新程序的 v0.1.1 Release 与完整 RC 矩阵仍未做

  • 2026-10-22 更新程序随 Release 分发(ADR-274,报告 155):ci-sign.sh --app 支持单独签名/公证;Release 增加 LampyrisUpdateCheck-<version>.zip + sha256;菜单优先启动已安装更新程序。签名脚本回归与 YAML 通过;首个带更新程序的 Release 待打 tag

  • 2026-10-22 输入法菜单「检查更新…」入口(ADR-273,报告 154):已装独立更新程序则 --ui 启动,否则打开 Releases 页面;宿主零网络(仅 LaunchServices);控制器/预览菜单 9 项回归与冒烟通过。更新程序随包分发待后续

  • 2026-10-22 固定开发版名称与图标(ADR-272,报告 153):开发版固定为「萤火虫 开发版」/「Lampyris Dev」,菜单图标加右上角点角标;换包允许显示名/图标键演进(身份/连接名/开发根仍严格一致)。隔离包 6 项、开发安装器 10 项、CI 打包 4 项回归通过;build7 固定开发包(run 39914200961,执行 4d1ee6e8…)已安装实机确认:萤火虫 开发版/Lampyris Dev + 角标图标,生产包未变

  • 2026-10-22 更新 UI 真实全流程(报告 152):真实 GitHub feed 下检查→下载→验签→确认→安装→结果全部通过(同版本重装);修复候选标识未 trim 导致误判、InstallError 增加可读描述;配置/词库未变、输入源还原 ABC、receipt 0600。跨版本升级与镜像回退 UI 未验

  • 2026-10-22 更新界面与 Swift 安装器(ADR-271,报告 151):--ui 窗口支持检查(主源→镜像)→下载进度→验签→确认→安装/失败提示;Swift 安装器与 upgrade.py 语义一致(精确停宿主/备份/替换/回滚/0600 receipt),下载器 https-only + 白名单 + 256MB 上限。22 项更新程序测试 + UI 冒烟通过;未在真实网络点完整流程

  • 2026-10-22 独立源码重建(报告 150):从 tag v0.1.0(26e3c07)干净克隆构建 universal 成功并启动;4 份数据表与 Release 逐字节一致、版本/构建号一致;可执行因 ad-hoc vs Developer ID 签名与工具链差异未逐字节复现,如实记录不作 bit-reproducible 声明

  • 2026-10-22 更新源多镜像回退(ADR-270,报告 149):新增 update.feed_mirrors(UrlList ≤8、https、去重保序),更新程序「主源→镜像」顺序回退、成功即停;安装器 --feed-urls 同步并放行同主机直链。18 项配置 + 14 项更新程序 + 24 项安装器回归通过;未在真实大陆网络验证

  • 2026-10-22 生产安装升级演练(ADR-269,报告 148):v0.1.0(build 6,universal,5709716c…)经真实 GitHub feed 下载→验签→--apply 安装成功;回滚到旧包→再升级演练通过;配置/词库 SHA 未变,新宿主可启动。修复「只终止精确二进制持有者」(lsd 持有不再阻断)

  • 2026-10-22 更新公钥入库(ADR-266,报告 147):packaging/macos/update-public-key.txt 作为公开信任锚入库,构建/工作流默认读取(不再依赖变量/Secret);私钥仍只在 Secret 且回归会扫描追踪文件;本地用该公钥构建的更新程序已复验 v0.1.0 真实签名(篡改被拒)。真实 upgrade.py --apply 待用户确认

  • 2026-10-22 发版自动化(ADR-265,报告 146):release-appcast.py 离线签名并自检、生成 Sparkle 兼容 appcast(拒绝非 https/空包/缺钥);release.yml 在 tag v* 校验版本一致性→验证/离线回归/通用构建/签名公证→用仓库变量公钥构建更新程序→生成 appcast 并自检→gh release create;5 项离线回归通过。真实 tag 发版与密钥仍未配置

  • 2026-10-22 更新来源可配置(ADR-264,报告 145):新增 update.feed_url(空或 https,拒绝凭据/fragment),设置自动出现「更新」分区;默认 GitHub Releases feed,公钥固定签名包;更新程序经 ime-config 读取来源;GitHub 资产主机重定向允许列表(Swift/Python 同步);密钥生成与 Actions 发版步骤见 docs/更新发布流程.md。仍无真实密钥/feed/HTTPS 演练

  • 2026-10-22 appcast 解析与版本选择(ADR-262,报告 142):feed.py 与 Swift 更新程序同一套规则(https-only、1MiB/1000 项/深度 16、拒绝 DTD/ENTITY、64 字节签名、build 点分比较);upgrade.py 支持 --feed-file/--feed-url,无更新直接 up-to-date 退出 0 不下载。11 项 feed + 16 项升级离线回归全 PASS;真实 feed/公钥与 HTTPS 演练仍未做

  • 2026-10-22 更新负载 HTTPS 下载器(ADR-261,报告 141):--payload-url 只接受 https、0700/0600 私有临时文件、256MB 上限、重定向协议复查、结束即清理;顺序仍是下载→验签→替换,验签前不进入安装。7 项离线回归(含 http/ftp/file 拒绝、超限、重定向降级、空负载)全 PASS;真实 feed/公钥与 HTTPS 演练仍未做

  • 2026-10-22 App Store 沙盒原型(ADR-260,报告 140):build.sh --sandbox 产出不安装的 LampyrisSandbox.app(app-sandbox + mach-register 例外,无网络权限);沙盒探针证明配置/学习数据只落容器、真实 Application Support 未写入;2 项离线回归纳入自动发现。结论条件性 go,MAS 签名/安装注册/审核仍待真实商店构建验证

  • 2026-10-22 已验签的原地升级与回滚(ADR-259,报告 139):packaging/macos/upgrade.py 固定「验签→解包→候选校验→停精确宿主→备份→原子替换→落地复验→回滚」,默认 dry-run、--apply 必须带已签名验签器,成功写 0600 receipt(前后执行 SHA/备份路径);8 项离线回归全 PASS 并进自动发现。仍无下载器/真实 feed/公钥与实机升级演练

  • 2026-10-22 更新负载 Ed25519 验签与商店口径(ADR-256/257,报告 137):PayloadVerifier 用 CryptoKit 校验 32 字节公钥 + 64 字节签名,新增 --verify-payload 显式入口(缺公钥退出 2、不联网);7 项 XCTest 与严格 release 构建通过,仍不下载/不安装;App Store 口径确定为「沙盒 + 去自更新 + 渠道 PASS 不互继承」,待不发布沙盒构建实测

  • 2026-10-22 冷首键定位与宿主内存复测(报告 136):离屏插桩显示渲染代码稳态 1.10ms/首次 5.73ms,原生 content 4.15/15.5ms 差额在可见窗口 AppKit 布局;试做微优化无收益已回退;build5 宿主在 swap 4.14GB 下 29.9→34.8M,30MB 仍未关闭

  • 2026-10-22 build5 原生复验 ADR-255(报告 135):main 299d8f8/0.1.0/build5 固定开发签名包(run 39775362738,执行 aef8b7cc…),六词+八项附加含 xi'an 全通过;首轮 50 键 p95 11.569ms、暖态 10.726ms、附加 0 次 ≥16ms;宿主 physical 29.5M/峰 29.9M、malloc 碎片 12.0M→5.7M、换出 14.6M,首次落到 30MB 线下但系统 swap 高压力,只记候选证据,未宣布门禁关闭

  • 2026-10-22 build4 原生验证与词典加载内存收敛(报告 134,ADR-255):main 0f91349/0.1.0/build4 固定开发签名包(run 39770165333,执行 49a49a2a…)实机;schema2 首轮 50 键 p95 10.770ms/max 37.299ms、暖态 p95 10.620ms、hideUs p95 1.222ms,六词+八项附加(含 xi'an/mixed Enter/Esc/五笔)通过;宿主 physical 37.8M/峰 40.3M,malloc 活跃 17.4M/碎片 12.0M,ADR-255 单遍紧凑加载后离线四表峰值 24.4–25.4M→15.8M;16ms 仅单候选样本记录、30MB 未关闭,原生复验待下一签名包

  • 2026-10-19 IT-03 机器可校验报告(docs/reviews/101-acceptance-a-07bbb2f.json):schema 2、候选身份绑定执行 SHA/commit/双架构/Developer ID;check = pass 6 / blocked 17(exit 3),每项 PASS 附证据、BLOCKED 附原因

  • 2026-10-19 独有包安装后添加 — BLOCKED(本机缺 Developer ID):ad-hoc 签名 + spctl rejected + 本机 0 个签名身份 → 系统设置「+」列表看不到;非重启问题;已清理临时包与私有根(报告 100 追加)

  • 2026-10-19 独有身份包注册(报告 100):软链 lsregister -10811 BLOCKED(副作用已清理),实体包 PASS(2 个自有身份,清理后用户源集合不变);顺带修 source-state.swift Swift 5.8 兼容与 LAMPYRIS_IMK_TEST_OPT

  • 2026-10-19 真实 IMK 验收(隔离数据根,报告 099):wq→你/nihao→你好/Esc 取消/候选头(输入码·页码·五笔·拼来源·状态芯片)/配置热更新(count 7→5 页数 39→54)全 PASS;真实 config/词库 SHA 未变;新增 guard-focus.sh 与“发键前必过闸门”铁律(处理 QQ 抢焦点事故)

  • 2026-10-19 ADR-215 验收专用数据根真机通过(报告 098):宿主带 LAMPYRIS_SUPPORT_DIR 时配置/词库全写入私有根,真实目录零新增;还原后真实 config/词库 SHA 与装前一致

  • 2026-10-19 ADR-215 验收专用数据根(LAMPYRIS_SUPPORT_DIR):把已装宿主的数据根重定向到私有目录,配置与词库一并隔离,为真实 IMK 验收(IT-01)解耦用户数据;待真机验证

  • 2026-10-19 IT-01 原生所有权协议 A 机通过(报告 097):probe-owned-textedit.applescript 修 macOS 13「关文档后窗口对象销毁」误判(先判 exists window id 再判 visible),normal/failure 与四路径全 PASS;IMK 学习数据隔离/独有源注册/Safari·Terminal 协议仍 BLOCKED

  • 2026-10-19 Finder 搜索框获焦无 HUD 修复(报告 096,a278d70):判据改为「光标中心须落在前台应用普通窗口(层号≥0)内」+ 主屏取原点屏 + fail-open;真机确认 Finder 桌面不显示、搜索框显示、TextEdit 8pt、Terminal 显示

  • 2026-10-19 HUD 光标解析两趟(attributes→firstRect)+ 前台应用校验 + Finder 门禁(ADR-214 / 报告 095):A 真机确认 Finder 无 HUD、Terminal 有 HUD、TextEdit 文末与空文档 8pt、候选内联芯片正常;输入源增删仍手动(TIS API 返回 0 但不生效)

  • 2026-10-19 HUD 光标来源改 firstRect 优先(ADR-214,报告 094 后修正):用户澄清「空文档有光标应显示、终端应显示、Finder 无文本焦点不应显示」;StateHUDCaretResolver + candidate.hud-source 断言;待新包真机复验。

  • 2026-10-19 A 机全新安装 17053e1 + 新 UI 验收(报告094):重启后 --purge-data 安装、旧包/旧数据进 uninstalled/;菜单 7 行 ⌥M/⇧/⌥F/⌥T/⌥P/⌥,/⌥A、首次配置 3bc1117c…(全模板 alt+f、零 ctrl+shift)、wq/nihao/kwwl、⌘Z、四状态+模式循环、设置 8 项、关于页按钮同行/文字居中、候选头部 531×70/行高 26/翻页上提 2pt/悬停留白、D2/D3 未复现、⌃Space+Shift 不变全角均通过;HUD 两项 FAIL:Finder 前台(D7)与空文档(D8)仍显示,待 ADR。

  • 2026-10-18 统一输入法状态反馈(ADR-211/报告080):候选框可见时在头部右侧(翻页左侧)显示两字状态芯片(混输/五笔/拼音、中文/英文、全角/半角、简体/繁体 + 标点;学习区不占芯片),否则光标旁 HUD 1.15s;修好 HUD 暗色;不抢焦点/不写配置,遵循减弱动态效果与 VoiceOver;candidate.status/candidate.hud 断言与 64 场景本地验收通过。

  • 2026-10-18 B 机安装 5726556 验收(报告081):两字芯片/组合态标点就地更新/非组合态 HUD/⌥F 均通过;发现组合态切宽度无反馈与 HUD 定位用文档开头,源码已修,待新版包复验。

  • 2026-10-18 状态提示光标跟随真机通过(ADR-213/报告085/087):仅在聚焦输入框且有有效光标时显示;修好后台宿主 HUD 透明与旧客户端坐标;空行回退最近可见字符;真机验证第1/3/空行随行下移、无焦点不显示,配置还原。

  • 2026-10-18 候选头部对齐 + 翻页光学微调真机通过(报告088/089/091):翻页组上提 1.5pt、页码 12、雪佛龙 12.5;真机 AX 芯片 134 / 页码 132.5 / 按钮 132,按钮到候选 5pt;CI 与出包双绿。

  • 2026-10-18 头部字号统一 + 芯片/悬停留白真机通过(报告092/093):三者 12pt;芯片高 20、横向留白 12;候选悬停 6/2pt;真机 538×70、行高 26、按钮到候选 5pt;CI 与出包双绿。

  • 2026-10-18 用户 UI 验收通过(17053e1,报告093):候选头部字号/留白、翻页光学对齐、状态 HUD、两字芯片均确认;B 已装最终包,CI/出包双绿。

  • 2026-10-18 固定 pinyin-data 到 commit(报告090):D5 下载 URL 从 master 改为 923b108d(Unicode 17.0.0),SHA 不变;CI 重跑生成物无 diff,verify 全绿。

  • 2026-10-18 全/半角默认改 ⌥F(ADR-210/报告079):避开 ChatGPT 的 ⌥Space 冲突;单测/设置/学习/预览用例与文档同步,macos-local-acceptance 62 场景全 PASS;B 机已通过设置面板改为 alt+f,⌥Space 释放。

  • 2026-10-18 B 机全新安装 + 重启后验收(报告078):--purge-data 后旧包/旧 config/510 行词库进 uninstalled/;菜单 ⌥M/⇧/⌥空格/⌥T/⌥P/⌥,/⌥A、wq/nihao/kwwl、⌘Z、四状态+模式、设置快捷键 8 项、候选 64pt(hint 92)、⌃Space 不误切、A 的 D2/D3 在 macOS 27 未复现,输入源还原 ABC;新差异:首份配置为全量模板、macOS 27 撤销分组不同。

  • 2026-10-18 A 机同包实机验收(报告071):7 行菜单 + 快捷键 AX 实读、五笔/拼音/混输 auto_commit、⌘Z 撤销、四状态往返、模式三循环、设置/关于窗口、状态与输入源还原全部通过;不关闭产品门禁(VoiceOver/多屏/客户端/性能/独立五日仍 BLOCKED)。

  • 2026-10-18 关于页 macOS 13 布局修正(报告072):下拉按钮改按固有尺寸收窄、两控件按行中心对齐,新增宽度/行中心断言;已装 0.1.0 仍为旧布局,待新签名包实机复验。

  • 2026-10-18 候选窗多余底部留白修正(报告073):宿主从不传 hint 却恒留 22pt 底部区,改为按需保留(74→64pt,上下留白 12/13pt),新增 candidate.padding 不变式断言;翻页组视觉空隙需改 ADR-183 才能收紧,待定。

  • 2026-10-18 无注销验收三档 + 一条命令全新安装(报告077):快照(设置四分区/快捷键文本)、make macos-dev 隔离实窗、make macos-clean-install;只有签名包+真实 IMK 需要一次注销。

  • 2026-10-18 全新安装入口(报告076):uninstall.sh --purge-data 把旧包与旧 config/词库移入 uninstalled/,预检无需退出宿主;3 项临时 HOME 回归通过;A/B 实机卸载安装待用户在场执行。

  • 2026-10-18 默认快捷键改 Option 语义前缀(ADR-209/报告075):⌥M/⌥Space/⌥P/⌥T/⌥L/⌥,/⌥A,中英仍单 ⇧;实测系统无「仅 ⌥+字母」快捷键、⌥E/N/U/I 死键排除;已装包与 B/A 显式旧值不变,实机待新包复验。

  • 2026-10-18 make macos-ui-snapshots 离屏 UI 截图入口(报告074):候选4形态/关于/设置/诊断 × 亮暗,带帧与留白报告,缓存命中 5s;同轮修正 ⌃Space 切换输入法后旧空格事件被当成 ⌃⇧Space 而误切全/半角(组合键要求事件晚于最近修饰键变化)。默认值调整(ctrl+shift+space → 其它)待 ADR。

  • REPO-01:独有文档/设计证据归并main,主目录同步,清理已合并分支与多余工作树(报告047)。

  • RC-UI-01:正式IMK模式行右对齐及模式切换、关于标题/按钮与复制诊断提示修正,正式路径留痕验证(报告048/PR #48:关于与重激活mode修复已合入5cebfeb,四项CI全绿;报告050撤回系统不支持推断,保留原交互查因;B已完成可见五笔子项CGEvent对照仍mixed,根因未定;临时诊断确认无会话模式项主动禁用,ADR-201修复/生产优化冷IMK回归通过,PR #52四项CI全绿合入a5d456b,签名公证39005948646及本机包级核验通过,B已升级a5d456b并核验新宿主,重启后经系统菜单选源取得真实菜单,子项AX/受控鼠标仍未切换,已恢复正式包及原数据/源,用户真实鼠标亦失败,ADR-202统一入口实现,报告055新增服务回归先失败后通过,组件/预览/生产优化及双架构、verify通过,报告056经授权临时实测五笔仍mixed,已恢复正式包/原数据与源,PR #53草稿不合入,报告059/060在完整菜单下取得有效v2/v3日志,真人五笔仍解码混输,关于阳性,v3不采纳;已恢复正式包/原数据/mixed及实际萤火虫源,用户要求换方案,报告061/ADR-205改用标准二级选择,取消一级循环/自绘右对齐,本地60项/离线109项/verify通过,新方案系统实机仍待:报告064证明热替换污染菜单,063候选结论撤回;下一步重登后只测已安装正式包(原方案)的五笔子项,再定是否回退ADR-202/205;v4搁置;A未操作,完整实机仍待)。

任务清单。AI 代理从这里取任务(见 AGENTS.md §6)。 完成一项就勾选 [x],并在 PR 中引用对应编号。 详细说明见 docs/技术方案.md §12。 macOS首版历史差距与闭环记录见 报告006,MVP-01…13 已闭环(MVP-05 含已披露限制),MVP-14 扩展兼容待推进;P1-M5 独立第三方验收未关闭。

设备 B 最新产品/UX/工程审计与建议见 报告009;MAC-01…24 的状态见任务卡;IT-04…09已修复对应可靠性问题,其余待推进,不能由历史 DoD 已关闭推断无新问题。

用户已允许恢复,当前推进IT-03结果分类、IT-13发布门禁与IT-18/20体验收尾。当前执行顺序以 迭代计划 为准:I0安全验收 → I1输入可靠性 → I2产品体验 → I3日常可用 → I4正式分发。计划已完成,T-ITER-01进行中(清理所有权、状态恢复与焦点保护子步已实现,TextEdit探针原生双路径通过;共享对象协议迁移及完整数据保护待验);T-ITER-02已完成(独立进程隔离四路径及原生面板交互/清理通过);IT-04…09已完成,IT-10/11/16/17/18/20推进中,IT-12/13已拆卡并完成隔离/离线子步;IT-19、21已完成;其余任务待推进,历史完成项不重开。

最新进展(ADR-115…140):独有IMK数据隔离四路径与主题窗口广播通过;正确inputmethod身份的实体注册/服务启动/注销清理通过。私有根绑定与错误声明拒绝通过;登录后父源/模式已启用,四路径选择恢复通过,TextEdit基础实际提交通过;单文档驱动13项相关回归通过,用户已批准发键;重复启用父源触发设置前台已修复、四路径恢复再次通过;前台检查通过,TCC责任宿主定位为/Applications/ChatGPT.app(com.openai.codex),用户允许后UI脚本true、AX保护通过;先选源再建立客户端后wq+空格提交“你”通过,正常及发键前failure/INT/TERM恢复通过;wq预编辑范围/提交后清除及范围已确认时failure/INT/TERM恢复通过,相关回归15项,权限门禁3项通过,源/真实数据恢复,IT-01未完成。覆盖报告升级schema 2,10项回归通过;单人五工作日验收按用户安排计划2026-10-13开始,清单及IT-23卡已准备。设备A SSH连通且工作区干净;用户负责独立核验。独立CI公证提交已验证,用户批准后已推送并创建PR #38(补DCO后f5d1bbf),check/DCO/fuzz/macos全部通过,合并状态CLEAN;用户补充批准后PR已合入a292534,隔离公证运行38258905282成功,本机信任核验通过,登录后选择恢复通过;旧64663035已归档,公证7bb55aa3已通过TextEdit基础提交,保留待完整客户端验收。产品MVP仍未完成。

2026-10-13:Safari离线正文正常输入和前缀后failure/INT/TERM原生通过(ADR-143);Terminal非执行接收器及四项PTY测试完成(ADR-144),原生窗口/TTY/进程绑定与实际输入待验。IT-01未关闭。

ADR-145/146:Terminal授权后调用恢复,解释器实际路径精确核验修正;原生窗口/TTY/接收器进程绑定及stop/TTY恢复/精确关闭通过,5项回归通过。逐键AX保护及实际输入待验,IT-01保持进行中。

ADR-147:Terminal正常实际提交“你”及wq前缀确认后的failure/INT/TERM恢复通过,源/启用集合/真实数据/TTY保持,自有窗口关闭。TextEdit/Safari/Terminal固定场景已有证据,其他目标应用、完整协议和最终候选门禁仍待验。

图例:[ ] 未开始 · [~] 进行中 · [x] 完成


  • T-LOCAL-ACCEPTANCE 本地六组逐场景自动化与证据复核(ADR-192,报告041);正式MVP仍待验。

  • T-IMK-ACCEPTANCE-PREP 离线生成真实IMK逐项验收材料(报告042);实机执行与保护适配仍待。

  • T-IMK-ACCOUNT-GATE 正式包独立账号数据边界前置(ADR-194/报告043);实机隔离与动作保护仍待。

  • T-IMK-AX-PRESS 候选/学习按钮逐动作保护本地实现(ADR-195/报告044);实机动作与恢复仍待。

前置:方案审核

  • REV-1 交叉审核 docs/技术方案.md(方向、架构、技术可行性)→ 见 docs/reviews/001.md
  • REV-2 审核 docs/配置架构.md + docs/隐私与安全.md
  • REV-3 确认 docs/决策记录.md 全部冻结项无异议(新增 ADR-013/014)
  • REV-4 定 TBD-4:英文/包名定为 Lampyris(ADR-056)

⚠️ 以上完成前,不进入编码。 ✅ 审核已有条件通过(2026-10-08);P1-1/P1-2 行动项已确认并写入文档。


P1 — macOS 上"默认可混输"的完整五笔输入法

P1-M0 引擎骨架(纯逻辑,跨平台)✅

  • 创建 Cargo workspace、rust-toolchain.toml、deny.toml
  • ime-core:Engine trait、InputMode、Candidate/ConvertResult、会话状态机(forbid(unsafe_code))
  • ime-table:码表加载 + 精确/前缀查询(排序数组 + 文本 TSV;cedarwood/mmap 为带触发条件的可选优化,ADR-060)
  • ime-core:模式切换(mixed/wubi/pinyin)与多引擎合并骨架
  • ime-cli:REPL,能输入码→候选→选字上屏→切模式
  • 单测(11 个)+ cargo clippy -D warnings + cargo deny 通过
  • 验收:ime-cli 里 wq→「你」、「kwwl」→「中华人民共和国」,切换模式生效

P1-M1 自建码表流水线

  • crates/wubi-encoder:五笔86 编码器(键名字/成字字根/合体字/末笔字型识别码)—— 细卡见 docs/tasks/T-M1-01..03(T-M1-01 字根表、T-M1-02 键名字+成字字根、T-M1-03 合体字+识别码 已完成;oracle 对照 99.98%)
  • data/sources.toml + 拆字数据交叉校验(wubi-lex MIT / WindInput MIT)—— 另接入 oracle #2 rime/rime-wubi(LGPL-3,T-M1-04b,仅验证不发布)
  • 单字码表生成(T-M1-05:wubi86-single.tsv 已生成 + 双 oracle 回归 GB1 100%;不引入 .imedict,文本 TSV 为交付格式,ADR-060)
  • 词组码自动生成(T-M1-06:wubi86-phrases.tsv 已生成;词表来自 phrase-pinyin-data MIT)
  • 词频/默认权重接入(P1-1 必交付,ADR-013):T-M1-06b 用 fxsjy/jieba(D10,MIT)真实词频给单字/词组赋权;词组码表改为多候选(ADR-021)
  • docs/数据来源与许可.md 登记全部数据(D1–D10,均含 SHA-256 与 fetch 脚本,T-M1-08)
  • 验收:编译产物体积达标(≤0.6MB);与公开码表对照回归通过

P1-M2 配置 + 拼音 + 混输

  • ime-config:Schema + ArcSwap 快照 + 原子写 + 广播(见 docs/配置架构.md)
  • PinyinBackend trait + 内置轻量拼音兜底(音节→高频字词表 + 简拼)
  • inputx-pinyin spike:验证 API/质量/体积,决定是否接入(ADR-008)—— 结论 不接入(体积否决;见 docs/reviews/002-inputx-pinyin-spike.md)
  • 混输合并(五笔优先 + 拼音兜底 + 去重排序)
  • 拼音反查(字→拼音,返回首选读音)
  • 验收:改 config.toml 即时生效;空码自动出拼音候选

P1-M3 macOS 宿主

  • ime-ffi:C ABI(会话 + 配置接口)
  • 独立 AppKit 调试窗口(T-M3-05,ADR-024):复用真实引擎、FFI 与候选窗,脱离系统装载流程
  • Swift + InputMethodKit 宿主(IMKInputController)—— T-M3-02 完成;ADR-023 注册修正 + Developer ID/公证/重启后,TextEdit/Safari 实体键盘验收通过
  • 安装/卸载与签名公证脚本 + 可信安装文档(ADR-032;新候选实机流程待完整 DoD)
  • CI 加 macOS runner(T-M3-04:Rust 验证、宿主构建、独立预览冒烟;本地及远端检查已通过)
  • 验收:TextEdit/Safari 里能五笔打字(2026-10-08,用户实体键盘确认;混输拼音兜底也通过)

P1-M4 交互完善

  • 候选窗(自绘 NSPanel,亮/暗主题;屏幕边界限制已接入)
  • 翻页/选择/退格/Esc(核心及两宿主冒烟;2026-10-09用户确认正式候选翻页正常)
  • 中英切换、标点(含成对引号)、全半角(ADR-028)
  • 用户词库 + 词频学习(ADR-029:有界 TSV、原子持久化、新增/导出/导入,隔离重建会话验证)
  • 验收:达到 docs/技术方案.md §12 DoD —— 2026-10-11 本机 A 实机验收 12/13 通过 + ⑩ 已记录限制(MVP-05)

P1-M5 发布工程

  • macOS 本地候选打包脚本(源码/vendor/许可/SBOM,签名与上传显式分步)
  • scripts/verify-no-network.sh 接入 CI
  • docs/隐私与安全.md 配套说明 + CycloneDX SBOM
  • 同环境离线载荷可复现说明及 run-repro.sh(源码包实际重建,去签名二进制/词表逐字节一致)
  • 验收:第三方可复现、可抓包验证零外联(= IT-15;预演通过,正式结果待用户本人执行)

MVP产品完成标准(ADR-084;历史工程完成不等于产品MVP完成)

  • I0/IT-01…03 安全验收:原生所有权协议 PASS(报告097)、schema2 机器可校验报告(报告101)、隔离数据根真实 IMK 验收(报告099)。
  • I1/IT-04…09 可靠性(ADR-093…098;源码与隔离回归通过,最终包客户端验收在I3/I4)
  • [~] I2/IT-10/11、16…22:工程部分与机器可判部分已完成(报告197 对比度 26 图、T-ITER-16…21);综合产品走查(IT-22)仍待 0.1.15 定稿包。
  • 2026-10-27 IT-22 执行清单(docs/tasks/T-ITER-22.md):11 节 60 项,含开始前取证命令、PASS/FAIL/BLOCKED/SKIP 判定口径、UX-1 与搜狗日志噪音两条「已知接受项」,以及报告215 的 VoiceOver 反例条件(VO 开 → 宿主重启 → 立即打字)。清单本身不是通过证据,需在锁定候选上人工走一遍。
  • 2026-10-27 MVP 正式发布(目标 1.0.0,ADR-298):阶段 A 在 0.1.16/26 上演练 IT-22(docs/tasks/T-ITER-22.md)→ 修复入库 → 阶段 B 递增 1.0.0(build 27)并双机装同一包(同时闭环「更新器自更新」)→ 阶段 C 只在 1.0.0 上做正式 IT-22、IT-15 独立重建、IT-23 五工作日 → 阶段 D tag v1.0.0 打在验收候选提交 → Release → Pages。
  • 2026-10-28 锁定候选 1.0.0 / build 29(报告217):提交 11abece3、ZIP aca4ed5c…、宿主执行 4ad949e6…,air 已装同包。装机定向复验:2.1 多词拼接 PASS、9.1 编码播报 PASS、11.1 候选跟随(6 张截图:下方/镜像/底部翻上,无压字)PASS。IT-22 限定范围通过(必查 11 + 抽查 8 全 PASS,其余沿用报告216 基线)。
  • 2026-10-28 IT-15 独立离线重建通过(报告218):用户在 air 上从候选自带源码包离线重建 1.0.0/build 29,身份链与逐架构网络导入 PASS、默认数据 4/4 逐字节一致、空闲 0 外联;可执行文件因本机 SDK 27.0 vs 发布 26.5 不同(ADR-033 边界)。顺带修掉 run-repro.sh 的缺陷:原来 cmp 可执行文件失败会中断,导致数据表比对根本没跑,且漏比 variant-s2t.tsv。
  • 2026-10-29 IT-23 五工作日试用(1.0.0 / build 33,air 与 pro 执行 SHA 均为 8a94ca33…):两台设备已装同一包(报告217 §8)。31→32 改核心语义,32→33 补宿主两条路径(Shift/⌥M);IT-23 尚未起算。
  • 2026-10-29 组合态切换三条路径全部通过(报告222,build 33):Shift(flagsChanged 分支原样上屏编码)、⌥M(去掉 applyInputMode 里的取消,保留缓冲并重算)、⌥F(保留组合);教训是同一动作有多个入口,离线探针覆盖不到,必须装机按键复验。
  • 2026-10-29 组合态切换不再丢字(ADR-302,报告221,build 32):toggle_width/set_mode 去掉 cancel()(保留组合、按新模式重算且不自动上屏),Shift 切英文改为原样上屏编码;core 新增 3 个单测,ime-ffi 旧用例改为先 Esc;两台设备已装 build 32。
  • 2026-10-29 「HUD 不显示」结案(报告220):三次报告分别是诊断开关未生效无法取证、候选窗跟随鼠标(真缺陷,build 30 修)、换包后旧进程仍在运行。build 31 把诊断改为文件开关并给 showStateFeedback/hudCaretRect 各分支打点;iterate-macos-ime 收尾清单新增「lsof … | grep -c deleted 必须为 0」。
  • 2026-10-29 候选窗跟着鼠标而不是插入点(报告219,build 30):caretRect 给解析器传了 allowsEmptyCaret: false,length()==0 时解析直接返回 nil → 落到鼠标兜底;改为 true,并把回退链收敛为「本轮 → 上次成功位置 → 鼠标」,新增 3 条断言。两台设备已装 build 30。
  • [~] I3/IT-12/23:IT-12 性能/内存/久用已 PASS(报告191/192/199/207);IT-23 五工作日试用尚未开始(模板报告211)。
  • [~] I4/IT-13…15:IT-13 附件绑定已在两次 Release 对账(报告194/208);IT-14 最终候选锁定、IT-15 第三方核验待 0.1.15。

验收以 MVP产品标准 为准;MVP后见 里程碑路线。

P2 — MVP后输入质量深化

  • 整句/长词(n-gram)
  • 基础模糊音/简拼质量纳入MVP IT-19;后续进一步深化按质量证据立项
  • 现有内置拼音后端质量评估后,再决定是否自研 FSA(保持 trait;inputx spike 已否决,未接入)
  • TBD-3 用户词库采用 TSV v1(ADR-029)
  • 简繁转换(OpenCC 数据 + Ctrl+Shift+F,ADR-069,T-P2-01)
  • 设置界面(Schema 驱动非模态面板,ADR-070,T-P2-02)
  • 用户反馈入口(GitHub Issues,用户主动打开浏览器;ADR-071,T-P2-03)
  • 字根提示纳入MVP IT-20(§6.2既定能力)
  • 引擎常驻内存优化(macOS 27/arm64 宿主 43.8→23.3M;MEM-1,T-P2-04,ADR-082)

P3 — Windows

  • Rust TSF spike(timebox 1–2 周):不成就退 C++ 薄壳(P2-3)
  • windows crate 实现 TSF COM(ITfTextInputProcessorEx 等)
  • 候选窗;安装/卸载;签名
  • 验收:Win10/11 主流应用可用

P4 — Linux

  • Fcitx5 addon(C++ 薄壳 + Rust C ABI)
  • 可选 IBus 引擎
  • 打包 deb/rpm/AUR/Flatpak

P5 — 移动端

  • Android:Kotlin InputMethodService + JNI
  • iOS:Swift 键盘扩展 + static lib(不申请 Full Access)

P6 — 本地语音(可选)

  • sherpa-onnx 独立模块;模型按需下载 + 哈希校验
  • 录音仅内存,不落盘
  • 模型下载器放 workspace 外(独立工具),避开 deny.toml 网络禁令(P2-6)

待调研(不阻塞 P1)

  • TBD-1 已定 jieba MIT(ADR-021)

  • TBD-2 五笔98 / 新世纪 / 郑码数据源

  • TBD-3 ADR-029:用户词库TSV v1

  • TBD-4 英文/包名最终形(ADR-056:Lampyris)

  • IT-25:ADR-159五笔主动后项学习工程已通过隔离回归、make verify/strict universal/Swift FFI;待新签名原生验收与用户例子确认。见docs/tasks/T-ITER-25.md。

2026-10-14报告011:21个隔离默认配置FFI样例与Apple/Rime/Fcitx官方对照,新增待决IT-29混输提交歧义、IT-26兜底首屏、IT-27隔音符/读音质量与IT-28编辑/隐私补验;无产品代码修改。IT-25本地提交先保存,整体UI/公开推送继续暂缓。

2026-10-14 IT-29:ADR-160混输跨引擎歧义保护工程完成,wang不再提前提交;核心回归/默认码表FFI通过,最终包原生待验。本地保存,未推送/安装。

2026-10-14 IT-26:ADR-161首屏两个精确拼音兜底工程完成;默认ni/wo/yu目标20/16/74→均第8,五笔首项保留;完整门禁通过,最终包原生待验。

2026-10-14 IT-27第一步:ADR-162隔音符工程完成;默认两模式xi'an→西安及标准码学习通过。IT-29/26本地提交658ac30/a1e86bf;本批最终141 Rust通过、17文件75离线测试、Swift/C ABI与strict universal通过。读音权重、IT-28及最终包原生尚未完成,UI/推送暂缓;见报告012。

IT-25提交f90010b已批准推送,PR #41全门禁通过合入b62b70d;CI #38548270116签名公证/离线重建成功,本机附件与Apple信任核验通过(报告013)。仅该载荷公开,报告012三项核心修复仍本地;未发布/安装,原生产品门禁仍待。

2026-10-14 IT-27读音质量ADR-163工程完成,37例首项22→27、首屏36→37;报告014。下一步IT-28编辑/安全输入边界;全部最终包原生待验,本地保存、UI/推送暂缓。

2026-10-14 IT-28离线第一步完成(ADR-164/报告015):Home/End/前向Delete保护、18文件76离线回归;待集中候选审核/公开签名,然后按矩阵B→A原生验收及单人五日试用。当前只本地保存,不安装/发布,UI重构暂缓。

2026-10-14 MVP基础UI纳入首版(ADR-165)

  • T-MVP-UI/UI01:候选主体与分页;先保护输入行为、错误和既有提示。
  • UI02:设置/菜单统一。
  • UI03:已有词库/反馈/关于统一。
  • UI04工程:亮暗/高对比配色策略与原生控件/AX/多屏几何回归。
  • UI04产品/UI05:真实键盘/VoiceOver/系统辅助外观与同一最终包双设备产品验收。

66ab513为功能回归基线,已不是含UI改版的最终MVP。完整教学仍后移;UI4e660af已获批准并进入PR #43;同类推送/PR/全门禁后合入及CI公证由用户持续授权,安装/Release另行安排。

2026-10-15 首版完整 UI 与学习区(ADR-170…179)

  • 全码与分类型拆字教学、只读FFI、唯一Schema开关/快捷键、学习摘要/逐字披露/有界滚动。
  • 候选/设置/模式菜单/关于及父窗口词条sheet按统一稿收敛;工程汇总验证及46图审阅证据(报告026)。
  • 冻结候选审核包/离线重建、PR四门禁、CI签名公证。
  • 最终签名包实机点击/VoiceOver/多屏/客户端、同包A/B与独立五工作日验收;不以离屏图代替。 (2026-10-20 A 机已在隔离身份包 f74aae7 上通过:VoiceOver AX 面、双屏 HUD/候选跟随、六客户端中的 TextEdit/Safari/Terminal/VS Code;Chrome 因 Chrome 侧问题 BLOCKED;「最终签名包实机」与 A/B、五日仍未做)
  • 持续扩充核验拆字说明;现27,823全码、3,592分类型记录/104完整解释,不宣传全量拆字。

2026-10-16菜单/快捷键反馈(ADR-181,报告030):四状态文案/无勾选、模式父子动作/右侧状态、快捷键按钮无省略号、学习Ctrl+Shift+L及宽度Ctrl+Shift+Space新默认已实现,工程验证通过;新签名包及系统菜单实机复验待完成,已装1621a6d不替换。

  • 2026-10-16 ADR-182:make macos-dev同组件隔离菜单/设置/输入验收入口;真实会话、私有数据保护、26文件85项/预览冒烟及实窗启动清理通过(报告031),不替代系统IMK实机门禁。

2026-10-16截图反馈(ADR-183/184,报告032):原生尾部模式标签与候选页眉/完整页码修正通过;八字核验解释补齐,3,597教学记录/112完整说明,26文件85项及verify/strict universal/预览冒烟通过。IMK代理、macOS13视觉和剩余教学覆盖仍待,不关闭产品门禁。

2026-10-16:ADR-183…185完成模式普通尾部文字(无标签背景/悬停提示)、候选页眉中心对齐及我等八字教学;完整说明104→112,仍如实提示缺失。报告032;verify零诊断、117产物隐私检查、菜单/预览同步及strict universal通过。草稿PR #45;未安装,MVP未关闭。

2026-10-16续:ADR-186修正普通模式文字仍未靠右,实际展开截图/父项循环/子项选择和AX动作通过,报告033;verify/双架构/相关回归及冒烟通过。IMK代理/键盘/VoiceOver仍待,不关闭MVP。

2026-10-16:ADR-187/188,拼音a第二页缺字显示明确标识并保持原Unicode提交;FFI/亮暗/verify/双架构/预览通过。教学覆盖专项T-MVP-LEARNING-COVERAGEC0审计完成,高频100仅24字完整,C1…C5待推进;报告034,MVP未关闭。

2026-10-16最新指示:教学专项改为先研究字体保障、结构化事实/多方案规则及统一轨迹生成,报告035;R0…R4验证/确认先于C1…C4补字,不预设长期手工补表。当前无新产品/数据改动。

  • 2026-10-16 教学生成方案研究(报告036):固定来源核查、D2/D3/98/新世纪统计、112条四模板投影与确定性复现;优先建议自建结构事实库+版本规则+统一轨迹,支持未来教程复用。方案未采纳,B0/B1试点/成本与全量E3/G验证未完成,旧逐字补充暂停;无产品/数据改动。

  • 2026-10-16 ADR-189:结构库同仓库独立目录modules/hanzi-structure、可迁出/单向消费与资源分层约束;报告037完成当前体积实测与情景推算。仅目录文档落地,全量新包体积、格式、独立构建和装载迁移未实现/验证。

  • 2026-10-16 MVP剩余工作盘点(报告038/ADR-190):自建结构库明确后移;保留学习区,回到最新候选/IMK与键盘VoiceOver/安全客户端/性能/外观兼容/独立五日及发布闭环。只完成盘点与范围同步,未关闭产品门禁。

  • MVP后:按ADR-189独立目录推进自建结构库B0/B1及全量生成,具体实施再决策;当前不开始。

  • 2026-10-16 ADR-191/报告039:设置/关于菜单和动作按钮去省略号、模式系统SF箭头、说明行高度/间距统一;旧布局同一基线回归失败,新版亮暗四项均24pt,相关回归/verify/strict universal/预览冒烟通过。未安装,正式IMK/键盘VoiceOver仍待。

2026-10-20 B复验(报告104):8eb872f正式universal与arm64隔离包均公证;arm64-macos27按真实运行证据转PASS。TextEdit/Terminal各四路径、长组合/撤销、VoiceOver AX面/焦点及44按键内嵌基线已采;total p95=21.2ms仍超16ms,engine p95=1.8ms。用户报告唤醒后的输入PASS,但系统仅息屏/亮屏记录,完整睡眠仍BLOCKED;B矩阵、Safari/VSCode/模式/视觉/双屏等缺口单列。源与真实数据恢复,隔离模式TIS停用未完全生效,待用户手动移除收尾;不关闭IT-12、UI04或MVP门禁。

2026-10-20 IT-25/ADR-226:固定五笔单字基础排序、词组有界调频及精确码边界工程推进;最小旧版回归两项失败已修,隔离FFI覆盖重复/退格/翻页/词库重载。正式包、用户根因与混输页尾稳定仍待,不关闭产品门禁。

2026-10-20 T-M1-09/IT-19/IT-27:ADR-227/228扩充20k基础词及场景训练词,并修复已有整词被最长切分遗漏的全拼回查。433项中五笔211→329、拼音227→331可达;冻结后72项保留集五笔15→29、拼音19→28;报告105绑定词表/评测摘要。make verify及包级检查见报告,实机/同RC五日未开始,不关闭MVP。

2026-10-20 IT-26/ADR-229:固定一/两个拼音的首页插入起点,保护前页长-2个五笔位置和首个拼音入口;旧版最小回归失败、修复后通过;无拼音及页尾集合变化仍如实保留,原生待验。

2026-10-21 PR #54四门禁通过合入3728dfc;同源正式universal/隔离arm64签名公证、源码重建及本机静态核验通过。B隔离四条进程退出路径通过;新隔离实体已安装注册但实际启用列表无该项,当前ABC,等待用户添加“萤火虫隔离验收 dce4ae25”。未向客户端发键、不关闭原生/性能/安装升级/五日门禁(报告105)。

2026-10-21 IT-01/ADR-230:固定身份IMK开发路径工程完成(报告106),公证构建显式development选项、私有长期根、精确进程停止/校验换包/旧包回退;本机直接进程与离线回归通过。首次启用及同身份免注销真实输入/A/B尚待,不关闭IT-01或替代正式RC安装验收。

2026-10-21 IT-01固定开发入口PR #56合入b652cd6,公证39527358251成功;B签名包已安装、直接启动及同载荷替换/回退通过。首次添加“萤火虫开发 d4fcecfb”及不同包免注销真实输入/A仍待;106绑定源码/包/设备证据,不继承为正式RC通过。

2026-10-21 IT-01/106登录后:固定开发源实际启用、TextEdit wq提交/marked/恢复通过;failure因自有窗口创建前置守卫停止,其余未验。旧dce4ae25按用户要求可恢复归档,源/真实数据保持。不同包免注销及A/RC仍待,不关闭门禁。

2026-10-21 IT-01/106新载荷补验:PR #58四门禁通过并合入288c750;固定根arm64公证成功。新执行SHA在源启用期间原位替换;PID26819确认加载新SHA。TextEdit wq→你/marked/恢复通过;模式探针未取得唯一自有窗口,发键前BLOCKED。实际源集合/ABC、生产config/词库保持;previous.app保留。拼音/Esc和数字候选一致性仍待。

2026-10-21 IT-01/报告106:共享TextEdit夹具按ADR-091/092改为直接打开唯一临时文件,osacompile与make verify通过。当前模式探针在创建资源前被System Events自动化权限-10827阻断,未发键;ABC/开发源启用状态及生产数据保持。原生复验待权限可用,不将夹具修复计作输入验收通过。

2026-10-21 T-M1-09/T-M2-02:ADR-237合规自编132项常用组合词,两表各增125行;旧样本排名/成本未变,工程门禁及严格universal构建通过,报告107。原生/同RC发布门禁保持待验。

2026-10-21 ADR-240/报告111:版本当前0.1.0多处硬编码,SemVer显示版本与独立构建号归并待做。输入功能/体验收口→版本和升级→锁同RC发布验收与五日;#64默认关闭原型保留,不继续扩张更新。产品MVP未完成,不以历史工程或版本名关闭门禁。

2026-10-21 IT-12/ADR-241:相同候选状态不重复布局,三对真实表离屏约0.75–0.83ms稳态重复开销被避免;报告112。新包原生16ms仍待,不以此关闭性能或MVP。#63/#65已获授权合并,性能改动独立审阅。

2026-10-22 IT-12/报告115:#66已按授权合并eb151c5,新包公证/静态核验/固定身份安装完成,四份数据SHA保持;用户切源后首次CG样例提交异常且无trace,立即停止。等待物理键区分,不计性能样本、不继承旧候选PASS,不关闭MVP。

2026-10-22 报告115补采:用户物理wq空格通过,独立夹具18词提交断言/150暖态按键有效。total P95=11.606ms、最大18.464ms,2次≥16ms;此前非受控手工最大74.170ms另存。未关闭全场景16ms/30MB,计时marker已删、待ABC后停精确宿主收尾。

2026-10-22 IT-12/ADR-242:原生按键固定分段接线与真实控制器回归完成,保留旧engine/total口径、默认关闭。报告116离线满词库物理足迹34.17MiB,尚未完成完整宿主内存核验。新签名分段采样及具体优化仍待,不推进升级或关闭MVP。

2026-10-22 IT-12/117:原生分段首轮50键/6词提交通过,total P95=13.779ms/max28.408ms;第二轮失焦守卫停止,未重试。源码重复布局进入ADR-244最小优化;实际新优化尚未安装,性能与内存门禁仍开。

2026-10-22 ADR-244/119:依据117归因消除候选内容更新后同尺寸的重复定位布局,保留学习披露/屏幕宽高失效重排;真实组件回归与离屏三对验证通过。尚未签名安装优化,不声称16ms达标,版本升级仍后置。 2026-10-22 IT-18/ADR-243:用户词库flush失败保留重试义务,旧版第二次错误成功的回归已复现并最小修复,完整验证通过(报告118)。未改当前已装分段包,不将其当作性能改善或关闭MVP。

2026-10-22 报告120:统一01fb016新包原生首轮50键/6词正确,P95=10.478ms/max67.125ms(首键状态区28.518ms,引擎0.735ms);10项选择纠错通过,最后mixed复查trace守卫停止,未判通过。输入态physical31.2M/peak41.1M,非排除mmap指标。用户ABC后精确停止PID51595、marker不存在,生产数据与开发配置SHA保持;16ms/30MB及发布门禁保持。

2026-10-22 ADR-245/121:连续状态/内容刷新合并一次全窗布局,默认单独状态仍即时;候选/学习/正常权限控制器和strict universal通过。离屏三对P95:基线1.759/1.744/1.742ms,新版3.012/1.203/1.201ms;保留首对波动,不宣称原生长尾解决。120 malloc swapped13.4M不能忽略,内存门禁保持。

2026-10-22 ADR-247/124:from_tsv在已分组行内按原规则排序后只紧凑构建一次,避免整表展开/重打包;三对离线真实表P95约降21–35%,峰值RSS降4.4–6.8MiB。仅加载路径,不代替宿主16ms/30MB门禁,尚未安装。

2026-10-22 ADR-248/126:用户要求固定dev,不按任务开分支;20远端/21本地历史分支已按精确授权清理,升级原型在dev恢复并通过严格并发Sendable修复/8项离线回归/默认关闭构建及完整verify,待单个dev→main PR收尾。原型不进入输入宿主/默认包,不代表下载验签安装完成;125签名包已静态核验未安装。

2026-10-22 ADR-249/127:版本单一派生链本地通过,Cargo SemVer+受审阅全局构建号,宿主/独立更新程序及打包/源码/SBOM/发布核验同步;41文件193项离线回归、verify和strict universal通过。待本批dev→main CI收尾及真实归档打包,原生性能/升级/同RC发布门禁仍开。

2026-10-22 #77版本治理四CI绿合入b317590,main/dev同步。用户指定GitHub流程选择:ADR-250固定dev→main小批次PR、merge commit及分阶段反馈闭环,规范在dev随下一批必要实现承接,不因规范变化另出包/要求复验。

2026-10-22 ADR-251/128:b317590固定开发签名包缺版本字段,拒绝安装;隔离包单一版本派生及安装器SemVer元数据兼容修复,build2,定向19项通过;待完整验证及同批PR/重建,未关闭原生或发布门禁。

2026-10-22 128收尾:#78四CI绿合入18fcbbf,固定dev同步;0.1.0/build2公证39728402241核验及ABC原位换包通过,配置/词库四SHA保持。满库五会话22000键长程未见持续增长,非原生指标。等待用户切开发源补原生,不重开历史UI验收。

2026-10-22 报告129:build2新宿主实际接管,四词提交通过;后续焦点守卫停止,未补完最终mixed/模式矩阵,无有效计时样本。数据/配置保持、当前开发源;16ms/30MB及正式RC未关闭。

2026-10-22 130:build2原生P95 22.124ms仍超16ms,六词/八项附加通过后失焦停止,最终mixed待验;采样marker已删、mode恢复,待ABC精确宿主退出收尾。不以通过条数关闭发布门禁。

2026-10-22 ADR-252/131:候选hide同步清空动作、延后隐藏空布局,定向回归/三对离屏及strict双架构通过;schema2新增hideUs补原生归因,0.1.0/build3本地,未安装。完整门禁/本批PR待收尾,不关闭性能门禁。

2026-10-22 131收尾:#79最终head四CI绿合入b618972,main/dev快进同步,开放PR0;本轮不换已装build2、不追加用户验收,性能门禁仍开,下一步冷首键/可见隐藏定向归因。

2026-10-22 ADR-253/132:可见窗口调用栈归因后,增加同尺寸跳过setContentSize保护,三对内容P95约降15–24%,隐藏最大值回退全部保留;不采纳不稳定的动画策略。冷首键及16ms/30MB仍待,完整门禁与同批PR进行中,不换已装包。

2026-10-22 ADR-254/133:修复候选文字cell零/小bounds生成无效矩形;旧回归失败后通过,三次可见复查运行时提示消失,完整门禁/与132同批PR待收尾;已装build2保持,性能及RC门禁仍开。

2026-10-22 132/133收尾:#80最终四CI绿合入0f91349,同尺寸原生设置保护与cell小bounds运行时修复均入main;dev代码同步、PR0。已装build2保持,build4待统一签名/原生验证;不采纳不稳定动画策略,不关闭性能及RC门禁。

2026-10-22 跨代理交接:HANDOFF及专用提示词已保存,main0f91349/build4未装、已装build2/ABC,下一步统一签名候选及原生验证;不新增PR或把交接当功能/发布门禁完成。