验收与进度记录
1. 当前状态与证据规则
2026-09-09:P0/P1 待验收;P2 JSON 本地 Vault/历史/草稿已接通;P3 已开始 F13 编码解码。 证据:docs/evidence/2026-09-09-p0/ … p3/。Git 与 1440/1080 截图仍未完成。
状态:未开始、开发中、待验收、通过、受阻。每项附平台范围;无法访问某平台可写受阻/未测,不能让本机通过自动代表三平台。通过要求链接到实际代码、fixture/命令、结果及必要截图。
| 阶段 | 状态 | 证据/待完成 |
|---|---|---|
| P0 工程与高风险验证 | 待验收 | app-image 与算法见 P0 证据。./mvnw -Pui-tests test 完成同一 Node 50 次分离/收回。JS/Java regex 差异样本见 P3。剩余:桌面 IME 候选窗、视觉截图、protoc/Crypto 样本、Windows/Linux 包 |
| P1 应用壳与设计系统 | 待验收 | 26 入口、6 分组、搜索、最近、248/84 导航、11 类设置框架、modern 浅/深与强调色。1440×920/1080×720 成对截图未拍 |
| P2 JSON完整纵向流程 | 待验收 | 本地 Vault、历史恢复、草稿重启见 docs/evidence/2026-09-09-p2/。Git/冲突/自定义 Vault 路径待 P6 |
| P3 本地文本/数值工具 | 开发中 | F13 编码解码、F15 正则核心已接通,见 docs/evidence/2026-09-09-p3/。其余 F02/F03/F06/F12/F16/F18/F21/F22 仍未开始 |
| P4 二进制/媒体 | 未开始 | Protobuf/Crypto/QR/图片/PDF实产物 |
| P5 网络/系统 | 未开始 | 网络服务、权限、多屏、托盘/防休眠 |
| P6 复杂工作区 | 未开始 | 随手记/Git/附件/运行/全设置与风格 |
| P7 分发与共存 | 未开始 | 三平台包、恢复/更新/共存、性能、许可 |
2. 逐项汇总
F04/F22/F23等跨阶段条目,完成核心也只填“开发中”或“核心待验收”,全部子能力有结论才更新整体状态。
| ID | Tool ID / 能力 | 阶段 | 状态 |
|---|---|---|---|
| F00 | mootool / 首页 | P1 | 开发中 |
| F01 | quickNote / 随手记 | P6 | 未开始 |
| F02 | textDiff / 文本对比 | P3 | 未开始 |
| F03 | reformat / 格式化 | P3 | 未开始 |
| F04 | json / JSON与Vault | P2、P6 | 开发中 |
| F05 | java / 四种代码环境 | P6 | 未开始 |
| F06 | ymlProperties / 配置转换 | P3 | 未开始 |
| F07 | protobuf | P4 | 未开始 |
| F08 | variables / 环境变量 | P5 | 未开始 |
| F09 | http / 请求与集合 | P5 | 未开始 |
| F10 | host / hosts方案 | P5 | 未开始 |
| F11 | net / 网络IP | P5 | 未开始 |
| F12 | uaParse / UA分析 | P3 | 未开始 |
| F13 | encode / 编码解码 | P3 | 开发中 |
| F14 | crypto / 加解密与随机 | P4 | 未开始 |
| F15 | regex / 正则 | P3 | 开发中 |
| F16 | cron | P3 | 未开始 |
| F17 | qrCode / 二维码 | P4 | 未开始 |
| F18 | timeConvert / 时间与时钟 | P3 | 未开始 |
| F19 | messageBoard / 本地展示牌 | P5 | 未开始 |
| F20 | translation / 翻译与单词本 | P5 | 未开始 |
| F21 | calculator / 计算器 | P3 | 未开始 |
| F22 | colorBoard / 颜色与屏幕取色 | P3、P5 | 未开始 |
| F23 | image / 图片与截图 | P4、P5 | 未开始 |
| F24 | P4 | 未开始 | |
| F25 | hardware / 系统信息 | P5 | 未开始 |
| A01 | 11类设置/三语言/六风格 | P1–P6 | 开发中 |
| A02 | 搜索/历史/收藏 | P1–P3 | 开发中 |
| A03 | 窗口/数据/平台/Git/备份/更新 | P0–P7 | 开发中 |
3. 检查命令契约
下面命令已在 P0 建立。macOS x64 app-image 与 verify-package.sh 本机 exit 0。Windows 打包入口存在但本机未跑。./mvnw -Pui-tests test 本机已跑过窗口转移;尚无 TestFX 页面用例。
| 命令(在next-fx执行) | 期望含义 | 首次建立阶段 |
|---|---|---|
./mvnw -version |
校验Wrapper/JDK/架构 | P0 |
./mvnw clean verify |
编译、单元、服务集成及质量检查,不触碰真实用户数据 | P0起 |
./mvnw javafx:run |
启动dev身份应用、独立dev数据 | P0 |
./mvnw -Pui-tests verify |
真实显示环境的FX交互测试 | P0起 |
./scripts/package.sh --type app-image |
本机runtime+app-image;脚本先实现参数/错误处理 | P0 |
pwsh ./scripts/package.ps1 -Type app-image |
Windows等价入口 | P0 |
./scripts/package.sh --type dmg 等 |
对应本机安装包;不跨OS调用 | P7 |
./scripts/verify-package.sh <产物路径> |
身份/版本/模块/架构/hash检查与启动smoke | P0起 |
pwsh ./scripts/verify-package.ps1 -Path <产物路径> |
Windows等价验证入口 | P0起 |
profile内测试有失败必须非零退出;缺显示服务/外部依赖应明确报告,不通过skip全部UI测试制造绿色。LinuxCI可用xvfb-run -a ./mvnw -Pui-tests verify(依赖先配置),真实IME和系统权限另测。
4. 核心场景
| Case | 操作 | 应通过的结果 |
|---|---|---|
| E01 输入法 | JSON/随手记中文候选、日文、emoji、组合字符、字体切换 | 不重复/漏字、候选定位正确,composition中不被自动保存打断 |
| E02 列编辑 | 20行含短行/Tab/emoji矩形粘贴→undo→redo | 行列语义明确,一次事务一次撤销;全文不被意外重置 |
| E03 窗口转移 | 编辑/选区/滚动→分离→收回→切页→undo | 内容/选项/选区/滚动/undo保留,同工具仅一份可写会话 |
| E04 窗口状态 | 两工具独立运行→关一个→主窗隐藏/恢复→Quit | 关闭工具收回,无隐藏孤儿进程;Quit停止任务并保存 |
| E05 JSON无损 | 大整数/小数/重复key/非法行列/复杂JSONPath | 不先转double丢精度;重复key可报;路径过滤是真计算 |
| E06 异步覆盖 | 先发慢任务A,再改内容发B,A最后返回 | UI仍显示B对应结果;关闭后无事件写入已销毁视图 |
| E07 文档冲突 | 本地dirty后外部改写,再保存 | 比较/另存/明确覆盖选择,不无提示丢任一方内容 |
| E08 附件 | 连续图片粘贴、移动文档、导出、取消/磁盘满 | 顺序正确、相对引用可解析、失败无假引用/损坏原件 |
| E09 HTTP | 受控server核对重复query/body/cookie/重定向/10MiB/取消 | 请求语义匹配、4xx/5xx可查看、超限可解释、无粘贴命令执行 |
| E10 Regex | 零长匹配、命名组、Unicode、灾难性回溯 | 匹配不死循环、Java差异明确、worker超时可终止 |
| E11 Cron/时间 | 6/7字段、闰年、year、IANA时区、DST缺失/重复时间 | 结果真实、边界可解释,错误不自动变成成功 |
| E12 Crypto | Electron样本↔FX,SM2/RSA签验,对称固定字节 | 跨实现可消费,模式/编码/key限制准确;随机密文不比字面值 |
| E13 Protobuf | 新粘贴schema、nested/map/oneof/int64/bytes/import/坏wire | 无需重新编译应用,动态往返,非法schema/数据报具体错误 |
| E14 图片/QR/PDF | 透明图水印/压缩/SVG,QR往返,PDF拆并/自定义顺序 | 真实图像和path;QR可识别;PDF页数/文本/顺序正确 |
| E15 代码运行 | 四环境42、argv/中文路径、无限循环、派生子进程 | 环境实际执行,输出限额、停止整棵进程、切窗不重复运行 |
| E16 系统能力 | VM hosts应用/恢复、环境变量新进程读取、拒绝授权 | 作用域准确,失败无写坏文件,不在宿主机隐式提权 |
| E17 多屏与演示 | DPI不同双屏/负坐标、截图/取色/演示退出 | 像素与坐标正确,拒绝权限不产假成功,防休眠最终释放 |
| E18 设置/备份 | 11类有效字段→重启→备份→恢复;中途失败 | 设置实际生效;一致快照,恢复失败完整回滚 |
| E19 Git | 两副本制造冲突,pull/继续/中止,自动checkpoint | 无丢稿/无默认push/无强制reset,本地编辑不依赖联网 |
| E20 产品共存 | 多产品安装→各写数据→升级→卸载→反向测试 | 本产品以外身份/配置/DB/凭据/更新不变 |
| E21 离线与无Java | 清空PATH中系统Java/Node,在干净用户启动安装包 | 主应用/离线工具可用;可选运行环境缺失只影响相应工具 |
| E22 可访问性 | 键盘完成搜索/编辑/运行/保存,读屏/主题/字号 | 焦点可见、不跳走、标签和结果可读;记录各平台限制 |
| E23 独立构建 | 将next-fx复制到不含相邻产品的干净路径,使用自有Wrapper构建 | 依赖解析/编译/测试/资源打包成功,不回溯仓库根源码或产物 |
这些不是只检查页面是否存在的smoke:每Case需具体数据、预期、断言/截图。单元测试不能替代真实多窗口、IME、系统权限;联网服务mock不能代替一次注明日期的实际服务验证。
5. 性能预算
以下为P0/P7起始目标,非已有测量。基准机约4核/16GB/SSD、发行app-image、dev工具关闭;记录OS/CPU/内存/JavaFX渲染后端/输入大小。不能拿Electron开发模式与FX发行模式作结论。
| 场景 | 建议目标 | 测量方式 |
|---|---|---|
| 冷启动可交互 | ≤3s | 进程启动至首页/导航接受输入,10次记录median/p95 |
| 已打开工具切换 | p95≤100ms | 30次切换至首帧可操作,保持文档状态 |
| 编辑器普通输入 | p95≤50ms,不连续冻结>200ms | 1MiB文档输入/粘贴/滚动和FX pulse/JFR |
| 3MiB JSON格式化 | ≤2s或始终有可取消忙态并记录偏差 | 固定fixture,不能降低正确性换速度 |
| 5MiB随手记 | 可打开/编辑/保存,无静默截断 | 记录打开/保存时延和最大内存 |
| 空闲首页 | CPU趋近0,无持续无意义轮询 | 稳定30s后采样60s,记录环境噪声 |
| 内存 | 首页RSS建议≤300MiB;超过需剖析/说明 | 不只看Java heap;WebView/native也计入 |
| 生命周期泄漏 | 50次开关/转移后无持续增长趋势 | heap/线程/handle/订阅基线对比,不能仅强制GC一次下结论 |
| 取消 | 点击后UI≤100ms响应;任务终止通常≤2s | 单独记录协作取消与worker强杀结果 |
不达目标先定位:无界任务、重复parser、全量setText、缩略图未释放、监听器未注销等。可以基于有证据的产品决定调整阈值,但不能直接删除失败行。
6. 平台与发行矩阵
| 平台 | 构建/app-image | IME/窗口/主题 | 系统能力/权限 | 安装/升级/卸载共存 | 当前 |
|---|---|---|---|---|---|
| macOS arm64 | 待测 | 待测 | 待测 | 待测 | 未开始 |
| macOS x64 | app-image 本机构建并通过 verify;PATH 精简后进程可启动(仍有 /usr/bin/java stub) |
代码有浅/深主题与分离收回;IME/50 次转移/截图未测 | 待测 | 待测 | 构建通过,交互待验收 |
| Windows x64 | 脚本占位,未构建 | 待测 | 待测 | 待测 | 未开始 |
| Linux x64 X11 | 待测 | 待测 | 待测 | 待测 | 未开始 |
| Linux x64 Wayland/兼容运行层 | 待测并注明实际后端 | 待测 | portal/托盘重点 | 待测 | 未开始 |
平台最低版本按实际锁定依赖验证,发布页只承诺已测范围。不支持的能力需给出产品内说明/替代路径;关键功能缺失依然是差异,不得把整平台全功能标通过。
7. 证据、差异和续接模板
每轮建 docs/evidence/YYYY-MM-DD-pN/,内含environment.md(含源/FX commit和相关工作树diff)、results.md、parity.md、screenshots/和必要产物摘要。敏感用户正文/凭据不入库,fixtures用合成样本。状态行链接到具体证据,记录测试命令、exit code、日期、平台、未测项。
Case ID / Fxx子项:
源产品、版本、源码位置、基线commit:
输入、选项、前置状态:
源观察 / FX期望:
比较方法(文本、bytes、AST、跨实现消费、真实交互):
实际结果与命令/测试/截图路径:
OS/arch/DPI/语言/主题:
状态 / FX-Dxxx / 未测部分:
差异编号模板:FX-D001,类型为视觉改进/技术等价/行为修正/平台限制/延期;写源行为、本版行为、用户影响、原因、验证和后续处理。延期不是已完成,平台限制也要有能力检测及用户可理解反馈。
结束每轮时写清下一轮应从哪个具体未完成子项开始;避免重复搭壳、重选已通过技术路线或直接跳到发布。可以复制提示词,见 Cursor提示词。
2026-09-09 下一轮: 继续 P3 下一个本地工具(建议 F16 Cron 或 F18 时间),或补 1440/1080 截图。正则独立 worker 进程仍未做。不要把其余 PLACEHOLDER 做成假页面。不要重建工程。