Skip to content

Latest commit

 

History

History
90 lines (72 loc) · 5.86 KB

File metadata and controls

90 lines (72 loc) · 5.86 KB

发布与迁移验收

本文是 SunamAI 当前发布与迁移验收的权威记录:自动化命令、阈值、插件边界门禁与 P0..P6 分阶段证据。能力清单见 FEATURES.md,架构说明见 architecture.md,Agent 运行设计见 agent-v2-design.md

1. 自动化门禁

代码变更后运行:

npm run check

它依次执行:

  1. strict TypeScript(tsc -b);
  2. Oxlint;
  3. 架构边界检查(scripts/check-architecture.mjs);
  4. 插件边界检查(scripts/check-plugin-boundaries.mjs,随架构检查执行);
  5. 循环依赖检查(scripts/check-circular.mjs);
  6. 核心覆盖率(Vitest v8 coverage);
  7. 生产构建(vite build);
  8. bundle 预算检查(scripts/check-bundle.mjs)。

发布级变更(Agent 执行、上下文、持久化、资源、WebContainer 运行时、子 Agent、E2E 行为、响应式/视觉 UI、依赖、工作流)继续运行:

npm run check:all

npm run check + test:e2e + test:visual + test:runtime + check:audit。 优化冻结声明要求连续两次完整通过并人工检查新视觉基线。

2. 阈值

  • statements/functions/lines ≥ 85%;branches ≥ 79%(聚合阈值; vitest.config.ts 另设单文件下限)。
  • 初始 JS ≤ 108 KiB gzip;总应用 JS ≤ 568 KiB gzip; 外部 @succinix/engine 运行时单独记账,不进入应用 JS 预算。
  • 生产关键路径 dist ≤ 1.95 MiB;/succinix/pyodide 与 Agent 运行区懒加载 chunk 按需加载,不计入关键路径门禁。
  • Playwright 视觉像素差异 ≤ 0.2%。
  • 每个 src/**/*.{ts,tsx,css} 有且只有一个 owner; 插件之间只能导入目标插件公开 index.ts@succinix/engine 只允许 runtime 插件与 sunam.host 引用。

3. 当前基线(2026-08-15 增强中心与商店)

  • src/plugins/manifest.generated.ts 当前包含 34 个内置插件;Enhance、Store、Display、 Pi/DSH 兼容宿主、Skills 与 MCP 都运行在同一 Cordis Context,生成清单归 sunam.host
  • 对话 / 电脑 / 增强 / 商店与三组 segment 全部从 ctx.ui 注册表派生;电脑内部固定为 “电脑 / 终端 / 服务 / 文件”,没有独立“展示”主入口或旧能力库入口。
  • 原生/Pi/DSH/MCP 工具共用 canonical RegisteredTool、capability 注册表、scheduler policy 与 ctx.tools.execute 门禁;生产源码不存在 PI_TOOL_SCHEMAS
  • Store 目录、外部验证与本地兼容性分层展示,安装经 integrity、兼容性与显式风险确认后统一 进入 ctx.plugins;安装/更新/卸载状态与 Enhance 双向同步。
  • Succinix 版本由安装包元数据生成到 versions.generated.ts,架构检查拒绝陈旧输出;文档不复制 运行时版本常量。
  • Tailwind CSS 4 的 @theme 是 token 单一来源,900px 断点由生成契约同步;冻结阈值以本文件 第 2 节和 scripts/check-bundle.mjs 为准。
  • 最终冻结必须在同一 revision 连续两次通过 npm run check:all;实际测试数、覆盖率、包体与 Playwright 数量以该命令输出和 Stage 10 acceptance.md 为证据,不在本文复制易陈旧快照。

4. 阶段证据

阶段 commit 结果
P0 Cordis POC ad4ca94 docs/cordis-poc-report.md 存档;core/logger/database 可行,loader/hmr 不可行,A1 主线。
P1 Host + 平台插件 4842a81 674 测试;initial 93.47 KiB / total 496.36 KiB / dist 1.53 MiB;runtime 7/7。
P2 Runtime + Succinix 插件化 f6a3f04 698 测试;initial 99.72 KiB / total 498.00 KiB / dist 1.54 MiB;路径四函数与 HOME/env 同源落地;runtime 7/7。
P3 Agent/LLM/Tools/Capability/Resources 141b457 722 测试;initial 106.11 KiB / total 499.54 KiB / dist 1.54 MiB;runtime 7/7。
P4 UI 插件化 7b30edc 782 测试;initial 99.61 KiB / total 503.11 KiB / dist 1.56 MiB;runtime 7/7、visual 6/6。
P5 插件管理 + 扩展 API + Succinix 外部集成 81dba18 784 测试;initial 103.07 KiB / total 508.91 KiB / dist 1.68 MiB;runtime 7/7、e2e 26/26、visual 6/6。
P6 删胶水 + 收尾 + 全量验收 86911a0 2026-08-13 P6:npm run check 全绿,e2e 26/26、visual 6/6、runtime 7/7、audit 0 漏洞。
P6 终审回归修复 56bf0aa 2026-08-13:npm run check:all 单命令全绿:785 测试、e2e 26/26、visual 6/6、runtime 7/7、audit 0 漏洞。
G-38 runtime 生命周期 fiber 化 2b7a82e 2026-08-13:npm run check:all 单命令全绿:788 测试、architecture 387/26/0、circular 358/0、e2e 26/26、visual 6/6、runtime 7/7、audit 0 漏洞。
0.6/dsh 单轨复核(未提交) - 121 测试/798;architecture 388/26/0;circular 359/0;bundle initial 88.21 / total 491.42 / dist 1.66;external engine 39.23;npm run check:all 全绿(e2e 26/26、visual 6/6、runtime 7/7、audit 0)。
UI 插槽收口(未提交) - 122 测试/801;architecture 397/26/0;circular 368/0;bundle initial 88.03 / total 492.65 / dist 1.67;external engine 39.23;npm run check:all 全绿(e2e 26/26、visual 6/6、runtime 7/7、audit 0)。
终审稳定性修复(未提交) - 124 测试/821;architecture 398/26/0;circular 369/0;bundle initial 88.33 / total 493.96 / dist 1.68;external engine 39.23;npm run check:all 单命令全绿(e2e 26/26、visual 6/6、runtime 7/7、audit 0)。

5. 冻结判定

满足以下条件才可声明发布级完成:无已知 P0/P1 数据损坏、死循环、越界写入或恢复 错误;check:all 完整通过;新增视觉基线已人工检查;生产 audit 可验证;剩余问题 仅为上游限制或已登记的差异项(见本文已登记差异项)。

缺少 Chromium、网络或转换工具的检查必须记为“未执行/外部阻塞”,不能标记为通过。