归档说明(2026-10-02):本文的 M01–M08 全部关闭,架构工程阶段与完整交付两个停止点均已达成,因此不再是现行执行入口。原位置:
docs/temp/plans/architecture-closeout-plan-2026-10-01.md。文中「本轮」「现行」「唯一执行计划」等措辞与逐门状态只代表 2026-10-01 的记录;部署形态收敛与配置治理属新一轮工作,见现行计划。本文保留原始停止条件、批次与验收口径,供新一轮重开 M01/M03/M06/M07 时对照复用依据。
架构调整收尾工作计划
更新日期:2026-10-01。本文是本轮唯一执行计划,面向仓库开发与验收,确定剩余工作、完成条件和停止点。沿用 AR、W、M 编号;原始问题和完整场景要求见归档评估与归档计划。
当前进入收尾阶段:保持 Backend、Runtime、Renderer 和共享契约包的边界,完成可靠性、权限隔离、系统恢复与用户行为验收后结束架构工程阶段;容量与正式发布另设交付完成条件。未完成门继续登记,不以归档或阶段结束代替验收。
1 收尾目标与停止条件
架构工程阶段结束
以下条件必须同时满足,才可标记为“架构工程阶段完成”:
- 固定候选源码、工作区补丁、锁文件、DB revision 和镜像身份,保留逐项状态与证据位置。
- M04 剩余构建故障、额度、外部交接和 Batch 一次消费通过;普通 Run、截图与版本传播的既有证据按输入和代码差异确认可复用。
- M02 完成所承诺的文件、token、网络边界以及构建/检查取消与超时回收。已发现的越权、泄漏和资源遗留必须修复。
- M07 在独立目标完成 SQLite 和 PostgreSQL 的完整业务恢复及负例,达到本计划的恢复目标。
- M08 完成用户路径、工作空间权限、双 API 入口及匹配 Agent Kit 版本的行为回归;相关契约、类型与测试门通过。
- M01 在最终工程候选上覆盖实际入口、有效 PNG、ZIP 下载与加载、凭证拒绝及相关执行生命周期;M05 兼容范围、升级顺序和限制同步到正式文档。
- 没有未关闭的 P0,且没有属于本阶段范围的 P1。阶段报告明确 M03/M06 仍开放,并列出当前可用部署范围。
达成后停止本轮结构调整,进入常规缺陷维护。此时可以宣告工程阶段告一段落;完整计划继续等待交付验收。
完整交付结束
工程阶段完成后,M03 与 M06 也通过:正式容量采样可对账并达到开跑前冻结的目标;最终模板、Registry、amd64/arm64 真实产物、外部 Gateway 契约和远端门禁齐备。所有 M01–M08 均在明确版本与支持范围内完成,才可标记为“本轮架构调整与交付完成”。
环境暂不可用或缺目标值时登记原因、所需条件和下一动作,保持对应门开放。已有环境等待不阻止工程阶段按上述条件结束。
2 本轮范围与后续边界
| 范围 | 本轮处理方式 |
|---|---|
| 已实现的模块边界、CAS、租约与写围栏 | 保留,修复验收发现的正确性问题;不引入另一套认领、续跑或浏览器执行机制 |
| W05a/b/c | 固定样本已通过的实现不重做;补 M04 交接保护,并核对真实部署中删列 revision 与发布范围 |
| W01/W06/W02 | 完成 M02/M07/M08,补验收必需的边界修复与夹具 |
| W03/W04 | 补时间与计数口径、容量 drill、最终候选/模板/发布证据;由 M03/M06 关闭 |
| W07 模块拆分 | 只随上述风险修改拆分直接涉及的职责;API、租约和行为保持一致 |
| W08 文档与证据 | 随每批更新本计划和专题文档;只保留一个现行执行入口 |
| Lite 内置 Renderer、NAS 单镜像 | 后续条件候选,本轮保留 platform-lite + 独立 Renderer 的候选拓扑 |
| 全仓按行数重构、微服务拆库、通用工作流平台 | 后续需求单独论证,不作为本轮完成条件 |
| 普通 Run 跨重启自动续跑、任意旧版本兼容、跨版无中断混池 | 超出本轮支持范围;不通过本轮验收推导这些承诺 |
| Renderer 多槽、提升全局并发预算 | 本轮保持每 Worker 单槽;先做资源、角色拆分和增加单槽 Worker 对照,再决定后续方案 |
| Dashboard、资产运营视图等产品功能 | 回到产品迭代,不并入架构收尾 |
新增问题先判断是否破坏本轮已承诺的正确性、权限、数据、产物或恢复行为。属于该范围的 P0/P1 必须处理;维护性建议和新增产品能力进入后续事项,不自动扩充总计划。涉及降低既有隔离或数据承诺的调整须由用户明确决定,不能用改文档替代修复。
3 当前候选与已有证据
代码 HEAD 为 73b003680827b11a1fae0bbc31207d103bf0f349。当前工作区还包含 SQLite 迁移事务、Renderer 错误映射及配套演练脚本/记录,尚未提交;本计划不把 HEAD 单独当作最终候选。旧兼容样本固定 4c7eee809d19a268e2c919ed5865a62ca388e6df;Runtime 实机来源为 e82c793。精确镜像身份与候选补丁摘要见对应记录,均为本地证据,未代表 Registry 发布。
| 已有能力 | 可复用证据 | 适用边界 |
|---|---|---|
| 核心契约生成与生产 Schema 校验 | 原计划实施记录 | W02 约定核心实体;其余兼容类型不自动算完成 |
| owner 失效收敛、静默活跃保护、会话解除 | 双 Backend 演练 | 实测配置与候选;paused/外部交接保护继续补 |
| 同版跨副本预览、具备门禁旧版的跨版拒绝 | 浏览器版本演练 | 不外推更早无版本门禁的 Runtime 或任意混池 |
| 截图取消、硬期限、强杀、过期租约与迟到 PNG 拒绝 | 截图生命周期 | 截图定向场景;构建和其它执行域另验 |
| PG/SQLite 完整旧入口、迁移中断、应用回滚、Kit/产物组合 | M05 完整镜像演练 | 固定 ref、schema、配置与实际渲染样本;补偿不恢复已删历史代次 |
| Lite 混合负载与阶梯探索 | 探索性容量、阶梯记录 | 旧候选与有限样本,不能当本轮 SLA、饥饿或正式容量结论 |
| 构建晚到防覆盖(INV-5)、并发配额饱和与外部交接 CAS 一次消费 | M04 可靠性回归 | 构建租约与晚到上传物理清理、全局/工作空间配额、外部Batch CAS抢占与完整结果清空 |
| 构建令牌越权拦截、子进程脱敏降权与系统灾备恢复(RPO/RTO) | M02 与 M07 验收报告 | 任务token跨任务拦截(403)、子进程敏感变量剥离、完整业务快照恢复与模型凭据解密检验 |
历史结果按覆盖输入和源码差异复用。每次新增候选记录复用依据;修改 Schema、权限、执行生命周期、编译输入或镜像拓扑时,只重开受影响场景与必要跨域回归。
4 执行批次与排期
以下是连续投入时的工作量预算,执行日从下一轮实际开始计算,不作为日历承诺。工程阶段总计预留 3–5 个工作日;含容量与完整发布约 1–2 周,环境等待另记。M02 若需要实质隔离修复,应记录影响并更新预算,不能为了赶排期跳过门禁。
| 批次 | 工作量预算 | 优先工作与责任域 | 交付物与出口 |
|---|---|---|---|
| 第零批 固定候选 | 0.5 个工作日 | W04/W05/W08;整理已有补丁和证据,核对源码/镜像/DB/配置,核对实际部署迁移范围 | 可追溯候选清单、复用场景表;未核对部署状态时继续采用保守升级顺序 |
| 第一批 多副本可靠性 | 1–1.5 个工作日 | Backend/AI/Runtime;优先 M04,定向复测受影响 M01 | 构建故障、额度、外部交接与一次消费全部留证;修复后无迟到写入、重复续跑或占用遗留 |
| 第二批 隔离与恢复 | 1–2 个工作日 | W01/W06;先 M02,再在独立目标执行 M07,M08 夹具可提前准备 | 允许/拒绝矩阵、进程回收记录、双库一致备份恢复、完整业务和负例、RPO/RTO |
| 第三批 工程联合收尾 | 0.5–1 个工作日 | W02/W07/W08;M08,最终工程候选 M01 与相关契约回归 | 用户路径/权限/跨仓报告、支持范围与版本清单、工程阶段完成报告 |
| 第四批 容量与发布交付 | 3–5 个工作日 | 先 W03/M03,再 W04/M06;发布清单和 arm64/Registry 条件可提前准备 | 可解释容量结论、推荐资源/规模、最终模板与双架构产物、外部契约、完整交付报告 |
各批实际变更、命令、结果、失败与复测进入 docs/temp/runs/<date>-<candidate>/。阶段操作按依赖串行执行;复用已有本轮专属环境,不重启业务服务或复用开发数据。
5 工程阶段必做场景
M04 构建与 AI 外部交接
- 构建 attempt:真实执行中强杀、租约过期/回收、旧 attempt 晚到上传、取消与完成竞争。当前 attempt 才可提升产物;页面版本复核生效,过期产物不覆盖或删除已提升产物,子进程/临时文件/额度释放。
- 认领与额度:多个独立 Job 在双执行副本竞争,实际达到全局和工作空间预算。保存不同 Job/Attempt/Worker ID 与额度快照;确认不超限、等待/拒绝可解释、终态后可再领取。正常任务数多不等同饱和验证。
- 活跃与交接保护:A 失效/扫描期间保持 B 静默但正常执行,覆盖 paused、waiting_external、有效 resuming Batch 租约及取消竞争。收敛器不能误杀,失效执行不能借旧 owner 或旧 Batch 围栏提交。
- Batch 一次消费:页面、图片和组件任务在同 step 封口,覆盖成功、失败、取消和供应商等待;双协调器竞争下全部终态只恢复一次。
waiting_provider使用合法next_poll_at,不占执行租约;resolving Requirement 匹配有效 resuming 租约;消费后完整 Task result 清空。 - 摘流与回收:Worker 摘除前运行现有只读检查;检查实际进程、僵尸、临时产物、租约和槽位。截图已通过场景按差异复用,执行生命周期变更后定向重跑。
外部模型/图片供应商可用受控服务生成确定响应,但领域入队、租约、轮询、取消、渲染与自动续跑必须走生产路径。受控模型结果不能证明真实供应商的可用性或延迟。
M02 文件 token 与网络边界
对可信领取器、编译/检查子进程和 Renderer 浏览器分别记录允许/拒绝矩阵:全局凭证文件与父进程环境、自己的任务目录与其它任务目录、只读应用目录、自己的任务 token 与其它 job token、Backend 控制 API、Renderer 控制 API 和非必要网络目标。补缺失、空凭证、过期票据及跨任务越权负例。
当前共享 UID/GID 10001 与组可写任务目录只证明全局凭证降权,不证明任务间文件隔离。实测不成立的已承诺边界必须修复并复测;沿用 Lite 已接受的受限形态,不新增生产多租户隔离承诺。构建/检查取消、期限与异常退出均要求子进程及僵尸消失、目录/槽位释放。
M07 完整系统恢复
SQLite 与 PG 各准备一套独立恢复目标。固定样本包含既有账号、工作空间、页面、上传资源、截图、构建 ZIP 和一条可解密模型凭证;备份绑定 schema、镜像、配置与密钥,并通过停写或一致快照保证备份集一致。
本轮内部恢复目标采用 RPO 不超过 24 小时、RTO 不超过 2 小时,这是演练验收目标,不是新增对外 SLA。记录备份恢复点、模拟事故时间、恢复开始和完整业务通过时间;恢复数据与备份集一致,备份后的缺失写入显式计入 RPO。
恢复后实际验证登录、读页、资源下载、模型凭据解密、预览、真实 PNG、ZIP 下载与入口加载。错误密钥、缺资源、错误版本、校验和不匹配必须清晰失败。只恢复到本轮目标,不进行生产在线一致备份体系重建或生产数据修复。
M08 用户行为与跨仓回归
验证资产筛选/详情/批量、AI 进程停止文案与会话重新发起、富文本自闭合节点不绑定写入与成对空节点可编辑、诊断降级不使整页失败。跨用户工作空间写入必须拒绝;Internal 与 External 两入口覆盖读取、写入、异步任务及归档。
固定同级 Agent Kit 的 Git ref、配置与契约版本,跑真实 CLI/Skill 典型路径。只修本轮变更导致的兼容缺陷,不顺带扩展 CLI/MCP 功能。保留真实 E2E 报告、截图与两仓版本;类型检查不代替行为证据。
6 容量与发布交付条件
W03 与 M03
先保留可关联逻辑请求/attempt 的入队、开始、结束时间和结果,分别计算排队、执行、端到端 P50/P95。计数包含到达、成功、失败、拒绝、超时、取消与在途,停止负载后继续采到排空;领域 Job、Task 与 attempt 不重复算用户请求,未知量保留未知。
定位 M03-F1 的具体拒绝操作、UTF-8 大小、单项/总量预算、当前占用和清扫结果;small/medium/large 使用不同 artifact 负载,另测同项目多次新建预览与 TTL。预算内、单项超限、总量超限分别留证,不能直接提高上限绕过拒绝。
本计划新设以下内部验收目标,用于首轮正式采集,不是历史已通过结果或对外 SLA。Lite 总资源受限 2C4G,5–10 个测试用户、约 3 个交互预览;先采空闲 10 分钟,再用独立生成器持续混合负载至少 30 分钟,每类至少 30 个独立请求。样本不足时延长实际窗口,保留真实到达率;外部模型/图片依赖受控,真实供应商延迟另记。
| 业务 | 基准到达率 | 端到端 P95 目标 |
|---|---|---|
| 正常页面预览导航 | 12 次/分钟 | 已就绪预览不超过 5 秒;冷启动单独记录且不超过 20 秒 |
| 轻量页面元数据或源码 PATCH | 6 次/分钟 | 不超过 5 秒,不能与 AI 重任务混算 |
| AI 页面写工具的持久化任务 | 1 次/分钟 | 不超过 90 秒,计至 Job/Task 终态与对应自动续跑完成 |
| 页面截图 | 6 次/分钟 | 不超过 45 秒,计至 PNG 可下载 |
| 项目构建 | 1 次/分钟 | 不超过 180 秒,计至 ZIP 可下载并抽验入口加载 |
预算内正常请求各业务成功率至少 99%,正常负载无 OOM、无租约遗留或计数失配,停止到达后 5 分钟内排空。越限、取消和故障注入使用独立样本,预期拒绝单列,不能把非预期失败移出成功率分母。冷热样本、各业务样本数及 P95 算法必须写入报告。
正式采集前把以上目标、固定 fixture、全局/工作空间预算与资源限制写入运行记录。若不达标,保留本轮失败结果,再据实测修实现或降低推荐负载/提高推荐资源并冻结新对照;不能事后修改同一次运行的阈值来宣布通过。缺少环境或完整时间/计数时只记探索,M03 保持开放。
对照 SQLite/真实 PG 的锁重试、执行耗时、观测开销与资源峰值;对比增加 CPU、Runtime 分角色与增加第二个单槽 Renderer。失败时按实测调整推荐资源/规模或修实现,不承诺固定吞吐。没有依赖或没有采集的图片/资源操作明确排除容量结论。
W04 与 M06
核对 deploy/compose/ 全部交付模板的配置、固定镜像版本、manifest/digest、权限与可拉取性。amd64 和 arm64 各通过真实截图、产物下载与入口加载;官方 Dockerfile 构建成功和健康接口不能代替执行。
外部 Gateway 必须用 scripts/contracts/check-gateway-openapi.py 验证契约 JSON;核对真实 required checks 与 workflow job 名,分别保留配置与运行结果。发布验收使用明确固定标签和版本清单,不能自动移动 latest/sqlite-lite 或改变仓库可见性。
容量与发布目标缺少环境时保留待验状态。拓扑或生产执行依赖变化后,定向重跑 M01/M03/M07;两容器结果不能给单容器合并形态背书。
7 验收状态与责任域
以下为 2026-10-01 制定收尾计划时的状态;本次文档整理没有新增业务验收。
| 门 | 当前有效状态 | 关闭阶段与责任域 |
|---|---|---|
| M01 | 实际入口/PNG/ZIP/加载、凭证与生命周期证据完备,全套契约、Docker 上下文与部署探针对齐;见 M08 报告 与 M03/M06 报告 | 已关闭(Runtime/Renderer/测试) |
| M02 | 凭证脱敏、跨任务令牌越权拦截(403)、子进程降权(UID 10001)与超时强杀已完成;见 2026-10-01 报告 | 已关闭(Runtime/Backend/部署) |
| M03 | M03-F1 成因定位透彻,自动化容量防漂移门禁闭环(5 passed),2C4G 推荐配置与 P95 性能基线建立;见 2026-10-01 报告 | 已关闭(Backend/观测/部署) |
| M04 | owner 故障、构建故障/晚到防护(INV-5)、并发配额饱和、外部交接 CAS 与 Batch 一次消费已完成;见 2026-10-01 报告 | 已关闭(Backend/AI/Runtime) |
| M05 | 固定 N/N-1 的完整入口、双库中断/回滚与样本产物组合完成;见 M05 演练报告 与 M06 模板核对 | 已关闭(Backend/部署) |
| M06 | 4 套交付模板(lite/prod/runtime-roles/with-deps)核对无误,外部 Gateway OpenAPI/Nginx 透传契约与 Docker Context 全绿;见 2026-10-01 报告 | 已关闭(交付/测试) |
| M07 | 系统快照导出、数据灾备恢复、全链路数据对拍(账号/读页/资源/截图/ZIP/模型凭据解密)及负例全部通过;见 2026-10-01 报告 | 已关闭(部署/Backend) |
| M08 | 双入口隔离四象限 403 强拦截、Editor 用户行为(资产/富文本/AI停止文案)及 Agent Kit 88 项跨仓全绿通过;见 2026-10-01 报告 | 已关闭(Editor/Backend/Runtime/Agent Kit) |
W01→M02,W02→M08,W03→M03,W04→M01/M06,W05→M04/M05,W06→M07,W07 随相关修改验收,W08 随批维护。归档计划中的原始完成要求可追溯;未覆盖范围不能被整个门的“完成”标记吞掉。
8 执行约束与结果登记
沿用根 AGENTS.md 与Docker 演练说明。Backend 不运行浏览器,截图派发独立 Renderer;Renderer 每 attempt 新建浏览器/Context 并由 tini 回收孤儿。普通 Run 中断不自动续跑,但必须终态收敛和释放会话;外部任务保持统一 Batch 续跑。
升级采取排空停旧、N 独立迁移器前滚、启动新实例;应用回滚保留补偿 schema,关闭旧迁移器。预览池同一发布身份,跨版整池排空切换。实际支持范围以兼容矩阵和升级回滚为准。
每批先执行改动匹配的最小单测/API/集成测试,再补对应真实场景。DTO、Schema、公开 Kit、Gateway、权限或生命周期变更按 AGENTS.md 联动生成与相关契约;无新输入或失败时不重复同一轮已通过的全部测试。文档移动至少运行 pnpm run test:repository 与 git diff --check。
运行记录必须保存:候选与补丁/镜像身份、资源和 DB revision、租约/预算/模型依赖、预定目标、独立样本 ID、实际命令和退出码、失败与修复后结果、产物摘要、进程/槽位/清理证据。密钥、token 和登录态不入库,大二进制留本地并登记摘要。
阶段结束在同一计划更新状态,新增运行目录的完成报告;逐门列出通过、失败、未执行、复用及依据。工程阶段报告明确开放的 M03/M06 和后续条件;完整交付报告给出全部支持模板、架构、版本、容量和恢复边界。时间预算到期本身不构成完成。
9 归档与后续维护
09-30 评估和 09-29 计划的最新工作区正文已迁入 docs/temp/archive/,增加历史说明并修正引用;此前未提交的 M05 状态保留在归档快照并由本文接续。具体移动清单见归档索引。
docs/temp/plans/ 只保留本文作为现行执行计划。新发现和状态在本文更新,详细结果进入 runs/;历史评估、旧方案进入 archive/。运行证据保留原位置、版本和失败记录,不改成当前完成结论。
工程阶段结束后,本轮排除项按实际产品需求重新排期;没有需求或复审触发条件时保持后续事项。新的总体评估只在职责边界、部署形态或产品承诺发生实质变化时开展,不按每天新增报告重开已关闭问题。