清理已合入的 Direct 重构临时文档
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m40s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m18s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m42s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m44s
Project CI / Backend tests (push) Successful in 8m43s
Project CI / Frontend tests (push) Successful in 3m33s
Project CI / AI game creator shell web tests (push) Successful in 3m6s
Project CI / Repository checks (push) Successful in 5m11s
Project CI / Native shell tests (push) Successful in 7m5s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 5m40s
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Successful in 6m18s
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (push) Successful in 6m0s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 6m42s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 7m44s
Project CI / Backend tests (push) Successful in 8m43s
Project CI / Frontend tests (push) Successful in 3m33s
Project CI / AI game creator shell web tests (push) Successful in 3m6s
Project CI / Repository checks (push) Successful in 5m11s
Project CI / Native shell tests (push) Successful in 7m5s
删除合同、租约及收尾修复的六份临时里程碑和实施计划 移除主规范中的过期计划引用并保留验证边界 更新共享记忆中的合入状态与权威文档入口
This commit was merged in pull request #627.
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
# 【实施计划】Direct 交付合同简化
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.3 |
|
||||
| Status | implemented(用户指令已授权实施;用户手动 GUI 检查已完成,专项验证边界见下文) |
|
||||
| Date | 2026-10-04 |
|
||||
| Milestone | [Direct 交付合同简化](./【里程碑】Direct交付合同简化-2026-10-04.md) |
|
||||
|
||||
## 实施前代码事实
|
||||
|
||||
- `codex_app_server/execution.rs::spawn_settlement` 和 `direct_patch.rs::apply` 在操作结算/补丁成功后调用 `try_seal`;`finish_model_attempt(successful=true)` 与 `direct_delivery.rs::review_reply` 是正常响应结束后的入口。
|
||||
- `direct_runtime/mod.rs` 在开始模型调用前通过 `requires_new_web_contract` 设置义务;`direct_execution.rs` 的 `requires_contract` 同时参与无合同结束、恢复和分析结果判定。
|
||||
- `direct_delivery.rs` 四类 Criterion 与 `direct_tools_mcp.rs` 的 schema 对应。新 Web 合同自动补入构建、入口文件、视觉、玩法;产物摘要函数也用于浏览器证据防篡改,不能整段删除。
|
||||
- 租约重构已允许无合同工具准入,但运行提示和随包技能仍有首次修改前登记、必需构建证明等冲突文案。
|
||||
|
||||
## 修改边界
|
||||
|
||||
允许修改:上述交付/执行/补丁/runtime 模块、工具 schema 与桥、运行提示、随包游戏工作流和浏览器技能中的合同说明、相关测试、主规范及共享记忆。托管验证仅在清除退役验收专属依赖确有必要时修改。
|
||||
|
||||
不修改:浏览器视觉/玩法算法、固定场景、原有双端和证据真实性判据、平台生成协议、Codex 调度、权限、预算值、普通命令返回协议和进程所有权。不新增合同类型或后台生图接口,不调用真实付费 Provider 做默认回归。
|
||||
|
||||
## 实现顺序与检查点
|
||||
|
||||
### 1. 收敛自动验收入口
|
||||
|
||||
- 删除操作结算与 AGC 补丁成功后的 `try_seal`,清理失去用途的 import。
|
||||
- 保留正常模型 `completed` 后的 `finish_model_attempt(true)` 与外层 `review_reply`,以及封口后的 `finish_sealing`;它们属于同一次正常收尾,不另造调度循环。
|
||||
- `agc_delivery_status` 保持只读评估。失败、取消、断连、预算耗尽仍走独立关闭,已有 terminal report 不重新尝试成功验收。
|
||||
- 检查点:已 ready 合同后仍执行第二次操作并输出最终响应;失败/中断模型终态不进入正常验收。
|
||||
|
||||
### 2. 解除宿主预设义务,统一 Agent 提示
|
||||
|
||||
- 从回合启动移除 `requires_new_web_contract` 的义务判定;删除运行模型中的 `requires_contract` 冗余门禁,正常结束只按实际有无合同分流;同步分析结果判定和测试夹具。
|
||||
- 保留宿主环境预检与可信脚手架准备本身的现有入口,解除它们与合同义务的耦合;不得因删掉条件顺带删除正常建项所需准备或恢复已退役 CLI。
|
||||
- 初次交付记录/可信脚手架事实仅在 Agent 主动注册时用于现有新 Web visual/gameplay 补充;重放注册复用冻结的 `newWebGame`,不重新计算或更改有效要求。
|
||||
- 系统提示使用明确条件:“当用户要求你制作、完成或交付游戏(例如‘做一个游戏’‘做一个可运行的游戏’)时,调用 agc_register_delivery_contract 登记本轮交付范围和验收项。”写明普通操作无需合同,提示不另设空项目或首次输入的免登记说明。宿主不新增词表匹配、分类器或缺合同兜底追问。
|
||||
- 同步 `prompts/runtime/texts/direct.json` 的 hostDelivery/deliveryFeedback、`direct-tools.json`、`resources/agc-skills/agc-game-production-workflow/{SKILL.md,references/workflow-contract.md}` 、`agc-web-game-development/SKILL.md` 与 `agc-browser-playtest/SKILL.md`。仅调整合同相关指导,保持原语言与浏览器使用说明。
|
||||
- 检查点:无合同可正常结束;只生图、不操作、普通修改均不被项目状态强制验收。真实模型是否遵循提示单独 smoke,不以字符串单测声称意图理解已验证。
|
||||
|
||||
### 3. 删除 artifact/command 合同要求
|
||||
|
||||
- 删除 Criterion 的两类变体、合同专属 CommandPurpose、规范化/标签/评估分支、initialArtifactHashes 和 host-entry/host-build 自动追加;同步 MCP oneOf schema、反馈、样例及相关专属测试。
|
||||
- 保留 scope/changeKind、非空要求、冻结和同参幂等;新登记仅有 visual/gameplay。旧类型新请求返回清楚的参数错误,禁止静默过滤成空合同。
|
||||
- 保留普通文件/命令/构建与 `agc_run_validation` 的结果和失败语义;删除合同对命令返回值的期待,不删除工具自身对真实退出码的报告。
|
||||
- 保留 visual/gameplay 共用的摘要读取、evidence_files_match、运行指纹、场景版本、双端证明及失败写入恢复围栏。仅清理没有其它现役消费者的产物/命令验收代码。
|
||||
- 保留主动登记后的新 Web 视觉/玩法补充规则,注册回包及工具说明列出有效要求;本次不重新设计这两类规则。
|
||||
- 检查点:schema/解析/提示一致,两类退役条件不会出现在新合同评估中,原有视觉/玩法正反证据测试不放宽。
|
||||
|
||||
### 4. 持久化版本与恢复
|
||||
|
||||
- 新合同使用 `agc-direct-delivery.v2`;执行账本移除 requiresContract 时升到 `agc-direct-execution.v3`,在已有解码入口对白名单旧版本迁移,不放宽未知字段校验。
|
||||
- 已 completed/exhausted/interrupted 的旧回合保持原终态和报告,不重新验收旧合同;含 v1 合同的非终态转为 Interrupted,保存旧要求作为历史,说明新用户回合可继续,不复活操作或自动重放。
|
||||
- 旧无合同账本只移除强制登记字段;保留时间、预算、身份和活动操作事实,按现有恢复规则决定是否可用。不能用迁移刷新本轮预算。
|
||||
- 不将 artifact-only 合同删成“空要求全部通过”,不将混合合同静默降级成剩余项通过;新用户回合按新提示重新登记。
|
||||
- 检查点:旧 schema 正反夹具与新回合继续测试通过;升级前后远端操作幂等和旧许可边界不变。
|
||||
|
||||
### 5. 定向验证与文档收口
|
||||
|
||||
- 回归覆盖里程碑全部条款,并更新仍使用退役合同的测试夹具;不要伪造浏览器证据来把普通聊天当成游戏成功验收。
|
||||
- 真实/协议驱动运行时 smoke 验证:证据 ready 后继续操作和输出、正常完成后收尾、空项目无合同请求。Linux 与 Windows 结果分开记录;无真实模型/浏览器/平台环境时明确保留未验证项。
|
||||
- 将主规范的待实现目标融合回现行条款,删除过时 artifact/command、首次强制登记及中途封口描述,更新共享记忆。验收完成后清理本里程碑及实施计划;用户已确认 PR 移除 WIP,视觉/玩法检查保持现状。
|
||||
|
||||
## 验证命令
|
||||
|
||||
Rust 定向过滤器分别执行 `direct_delivery`、`direct_execution`、`codex_app_server::execution`、`direct_patch`、`direct_validation`、`direct_tool_bridge`、`direct_tools_mcp`、`direct_analytics_tests`;新增跨正常/异常终态的用例运行其所属过滤器。命令模板:
|
||||
|
||||
```sh
|
||||
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell <filter>
|
||||
cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --test runtime_prompt_bundle_build --test prompt_source_boundaries
|
||||
cargo check --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell
|
||||
npm run check:doc-index
|
||||
npm run check:encoding
|
||||
git diff --check
|
||||
```
|
||||
|
||||
对实际修改的 Rust 文件运行 rustfmt 检查;技能/schema 相关测试按实际消费者选择,不新增逐字复制提示词的断言。不得使用已退役、仓库不存在的 direct-execution-production-fixture 脚本作为验证证据。
|
||||
|
||||
## 时间盒、风险与回滚
|
||||
|
||||
规划按一轮代码核查、一轮文档与门禁完成;实现以步骤 1–4 每步约 30–60 分钟检查点推进,验证单独记录。若发现需改变视觉/玩法判据或 Codex 调度,停在该边界记录下一轮问题,不扩大本计划。
|
||||
|
||||
主要风险是新 Web 判定与强制义务混用、随包技能残留指令、摘要函数误删、异常终态误转成功、旧要求静默丢失。分别用入口/提示检查、证据负例、状态转移与迁移测试约束。
|
||||
|
||||
回滚以整体合同改动为单位,不回滚已提交的租约重构;新格式账本保留,不删除状态来恢复旧版本执行。旧二进制不能读取新版本时拒绝恢复该回合,保留产物并由兼容版本处理。
|
||||
|
||||
## 实施结果与验收证据(2026-10-04)
|
||||
|
||||
- 已移除操作结算和补丁成功后的自动封口,只保留正常响应结束后的入口及封口最终复核;状态查询不变更阶段。
|
||||
- 已移除回合启动的强制合同判定及 requiresContract 字段。正式入队侧 `direct_runtime/user_input.rs` 的工程准备仍保留;删除的是退役 CLI 留在回合内部、与合同义务耦合的重复准备分支。
|
||||
- 已移除 artifact/command 的 schema、解析、验收、初始产物摘要和宿主追加项;保留命令工具、构建结果与浏览器证据摘要。新增合同为 v2,执行账本为 v3,v1/v2 迁移不刷新预算、不将旧要求降级为成功。
|
||||
- 已同步系统提示、工具描述、游戏生产/浏览器/Web 开发三份随包技能及工作流参考;manifest 由正式同步脚本更新。
|
||||
- 主规范及共享决策已融合当前行为,无业务代码提交或推送。
|
||||
|
||||
| 验收面 | 证据 | 结果与边界 |
|
||||
| --- | --- | --- |
|
||||
| 操作完成不提前结束 | adapter 的命令、原生文件修改、第三方 MCP 协议回归;ready 后继续准入 | 通过 |
|
||||
| 完整响应先于宿主收尾 | Linux 真子进程模拟 app-server:已 ready→命令审批/完成→延迟→完整响应→正常终态 | 通过;仅验证协议与宿主链路,不等于真实 LLM 或 Windows Job smoke |
|
||||
| 无合同操作和结束 | 工具桥夹具不再登记合同;原有写入/图片 mock 回归、空项目 no-op/image-only 宿主结束用例 | 通过;未真实付费生成,不声称已验证模型意图理解 |
|
||||
| 新 Web 规则边界 | 未注册不生成义务,主动注册后仅补视觉/玩法,注册重放一致 | 通过 |
|
||||
| 类型/证据 | 两类退役要求单独及混合拒绝;visual/gameplay 双端、固定场景、版本、指纹及文件篡改反例 | 通过;浏览器判据未修改 |
|
||||
| 异常终止 | ready 后中断仍返回中断报告;原预算、取消、旧许可、清理回归 | 通过 |
|
||||
| 恢复 | v1/v2 旧合同及终态、v2 无合同强制标记、未知字段、预算与旧活动操作;旧终态合同只查询历史 | 通过 |
|
||||
| AGC 补丁成功 | Windows bundled patch 回归增加 ready 后无变化补丁不封口断言 | 已编写,Linux 环境未运行 Windows 用例 |
|
||||
| 提示一致性 | MCP schema、prompt bundle/source boundaries、技能 manifest 与内容校验 | 通过;用户已确认手动 GUI 检查完成,未提供多语言意图专项用例明细 |
|
||||
|
||||
定向结果:`direct_` 376 passed、1 ignored(既有辅助夹具);`codex_app_server::execution` 19 passed;完整响应协议回归 1 passed;`skill_pack` 7 passed;`runtime_prompt_bundle_build` 6 passed、`prompt_source_boundaries` 18 passed;Node 技能包测试 3 passed。`cargo check --locked`、修改文件 rustfmt、文档索引、编码与 diff 检查通过;编译仍有仓库既有告警。上述过滤器部分重叠,不相加为独立用例总数。初次沙箱运行的 loopback 绑定/Node 子进程失败已在具备对应权限的本地夹具中重跑;不把环境拒绝当作行为通过。用户手动 GUI 检查已完成;Windows 专项验证明细尚未提供,暂保留里程碑与计划。
|
||||
|
||||
## 用户手动检查与范围确认(2026-10-05)
|
||||
|
||||
- 用户确认已完成手动 GUI 检查,PR #608 已移除 WIP;这是用户提供的验收结果,本轮未重新运行 GUI。
|
||||
- 用户决定视觉与玩法检查保持现状,包括既有双端、固定场景及证据校验;不再将其调整列为本次重构的下一步。
|
||||
- 用户未提供检查平台或逐项用例明细,因此不将本次确认扩写为 Windows Job 完整子树退出、Windows 捆绑补丁用例或多语言意图专项测试全部通过。
|
||||
@@ -1,142 +0,0 @@
|
||||
# 【实施计划】Direct 操作控制与租约简化
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.3 |
|
||||
| Status | implemented(2026-10-04 已实现;待 Windows 平台验收) |
|
||||
| Date | 2026-10-03 |
|
||||
| Milestone | [Direct 合同与租约机制重构:租约切片](./【里程碑】Direct合同与租约机制重构-2026-10-03.md) |
|
||||
| Parent Spec | [Direct 操作控制](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
|
||||
## 交付与优先级
|
||||
|
||||
交付结果:普通操作由回合活动状态、时间、并发和原有权限决定能否开始,成功或失败如实返回 Agent;任何单次普通失败不再要求整轮排空或开启返修批次。
|
||||
|
||||
必须项是移除全局排空和合同准入耦合,并验证结束后的控制边界。风险项是原生后台进程归属、迟到写入、重复结算与远端付费结果不确定。诊断 UI 与新增可观测性不作为本切片工作。
|
||||
|
||||
本次仅规划一个可独立验收的租约切片。实施时每个步骤完成即检查对应边界,失败先定位本步骤,不扩展为合同或调度器重写;定向验证通过后做一次整体验收,额外发现仅在影响下列验收判据时扩大范围。
|
||||
|
||||
## 修改顺序与边界
|
||||
|
||||
### 1. 收敛操作状态与准入
|
||||
|
||||
涉及 `agent/direct_execution.rs`。
|
||||
|
||||
- 将操作跟踪保留为并发占用、开始时间、回合归属及取消所需的最小记录;移除具有返修批次和全局排空语义的租约模型。
|
||||
- 准入只核对原回合是否仍活动、预算、容量和调用自身限制;删除 contract-required 操作门禁、Draining 状态与 used_passes 返修控制。
|
||||
- 操作终结只结算一次;成功、失败、取消、异常均不能泄漏容量或重复计时。取消请求发出不等于本地进程已退出,尚在运行的自有工作仍须跟踪至退出或明确报告控制失败。
|
||||
- 保留累计执行时长和墙钟上限原口径,不增加 per-operation 租约期限。普通操作错误与宿主无法保持控制的错误分开处理。
|
||||
|
||||
检查点:无合同可准入;失败不影响其它在途操作及后续操作;容量和时间限制仍有效。
|
||||
|
||||
### 2. 接通现有工具与原生执行器
|
||||
|
||||
涉及 `agent/direct_tool_bridge.rs`、`agent/direct_patch.rs`、`agent/direct_validation.rs`、`agent/codex_app_server/execution.rs`。
|
||||
|
||||
- 内置、原生及第三方调用复用同一套简化控制;保留已有执行前审批、调用身份绑定与内外层不重复计时。
|
||||
- 工具真实成功/失败返回 Agent,不新增“先修复/释放租约才能继续”的反馈。验证失败返回失败,输入漂移使该证据不可复用,不切换全局阶段。
|
||||
- 原生命令已返回但仍有 processId 的情况继续按真实进程生命周期跟踪,不能提前释放归属。
|
||||
- 保留 MCP 并行受理与图片容量限制;不改工具等待结果的协议和 Codex 下一模型步的调度。
|
||||
|
||||
检查点:通过受控执行器夹具重现“长命令在途 + 图片失败”,随后无关写入和命令仍可准入。这证明宿主不阻塞,不宣称模型能在普通图片调用等待中开始新的推理步骤。
|
||||
|
||||
### 3. 保住关闭、写入与付费边界
|
||||
|
||||
涉及 `agent/direct_paid_submission.rs`、执行器 shutdown/drain、原写入许可及项目事务提交调用点。
|
||||
|
||||
- 回合正常关闭、用户取消或时间耗尽后,拒绝新调用并取消宿主拥有的工作,复用既有进程组 / Windows Job 清理与退出证明。保留结束时清理在途操作的行为,删除普通失败触发的全局 Draining 门禁。
|
||||
- 排队后的写入、原生操作审批及每次新增付费 POST 仍核验原回合;不能从“当前回合”重新取得新权限。关闭与准入/提交之间保留必要短临界区。
|
||||
- 远端已提交任务保留其 operation ID、幂等和对账;未知结果只限制对应资源操作,不阻断整轮无关工作。不要用删除本地记录表示远端已取消。
|
||||
- 控制状态持久化失败、执行器断连或无法确认自有进程退出仍报告真实控制问题,不伪装为可继续的普通工具错误。
|
||||
|
||||
检查点:关闭后零新增 POST/执行;锁等待后的迟到写入失败;取消不盲目重发付费任务;实际进程退出有证据。
|
||||
|
||||
### 4. 清理耦合、提示与持久状态
|
||||
|
||||
涉及 `agent/direct_delivery.rs`、`agent/direct_runtime/mod.rs`、`prompts/runtime/texts/direct.json` 和按引用搜索确认的状态消费者。
|
||||
|
||||
- 移除 delivery/validation 状态、报告和提示中的执行批次计数及“普通错误必须停止整轮”等旧语义;`maxRuns` 暂保留交付复核次数用途,不扩大为配置重设计。
|
||||
- 删除“操作前必须有合同”的提示前置条件;完整合同触发提示、artifact/command 移除、视觉/玩法设计留给合同工作。现有合同的收尾评估仍可调用简化后的关闭与进程清理。
|
||||
- 保留原回合预算及必要退出/恢复状态;逐项核对旧账本读取路径。旧活动记录不能恢复成新许可,已结束记录不重放;未结束记录确认执行器退出后按中断事实处理,同回合预算不清零,资源恢复沿用原 operation。
|
||||
- 只为确有跨版本读取需求的字段保留最小兼容,删除退役状态及专属测试,不建立双套运行模型。
|
||||
|
||||
检查点:状态消费者不再依赖 used_passes/Draining;同回合不刷新预算,新回合不承接旧权限;合同未讨论部分不变。
|
||||
|
||||
## 验证计划
|
||||
|
||||
| 场景 | 必须证明 |
|
||||
| --- | --- |
|
||||
| 图片/命令连续失败超过旧 maxRuns | Agent 得到错误;剩余时间足够时仍可执行无关工作 |
|
||||
| 长命令在途且图片失败 | 无关文件写入、新命令不被全局排空拒绝 |
|
||||
| 容量满、成功、失败、取消、异常、重复完成通知 | 上限有效、结算一次、无容量泄漏 |
|
||||
| 验证失败与验证期间源码变化 | 证据如实失败/失效,无全局副作用停顿 |
|
||||
| 取消、正常结束、两类时间预算耗尽 | 新调用被拒绝,自有进程退出得到核实 |
|
||||
| 等锁/等容量后发生关闭,旧回合结果迟到 | 无新增付费提交、无借用新回合的文件写入 |
|
||||
| 远端已受理后失败或连接断开 | 保留同一 operation 对账,无盲目重复付费,无无关操作门禁 |
|
||||
| 原账本恢复、同回合重试、新用户回合 | 预算不重置,旧权限不复活,确认旧执行器退出后可开始新回合 |
|
||||
| 没有合同、已有合同、ExternalClient | 普通准入解耦,交付复核与独立客户端边界保持 |
|
||||
|
||||
定向验证按实际修改选择以下过滤器;不得用真实付费生图作为默认自动化测试:
|
||||
|
||||
```bash
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_execution
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml codex_app_server::execution
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_paid_submission
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_tool_bridge
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_validation
|
||||
cargo test --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml direct_delivery
|
||||
npm run check:doc-index
|
||||
npm run check:encoding
|
||||
git diff --check
|
||||
```
|
||||
|
||||
必要 smoke 使用可控慢操作/失败响应与真实自有子进程,验证并行、取消和退出,不改模型循环。Windows Job 退出须由 Windows 环境提供证据;不可用时明确列为未验证项,Linux 夹具不替代该证明。
|
||||
|
||||
## 风险与回滚
|
||||
|
||||
- 移除计数和状态时容易遗漏原生审批、交付封口或恢复分支,必须按引用逐一核对,不能仅修改工具桥。
|
||||
- 资源级结果不确定与执行器整体失控必须区分;前者不触发全局停止,后者仍需要结束无法控制的执行器。
|
||||
- 同步修改状态消费者、报告及相关提示,不留下运行时已经允许、提示仍命令 Agent 停止的矛盾。
|
||||
- 实现按上述步骤保留可回退提交。回滚前结束自有回合并确认进程退出,核对账本版本可读性;不得通过删账本或重发远端请求完成回滚。
|
||||
|
||||
本计划已实施,主规范和长期记忆已同步。以下证据来自本次实际运行;尚无专项证据的平台条目保留在本计划;用户于 2026-10-05 确认手动 GUI 检查已完成,PR #608 已移除 WIP。
|
||||
|
||||
|
||||
## 2026-10-04 实施与验证记录
|
||||
|
||||
### 规范对照
|
||||
|
||||
| 条款 | 实现与证据 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 普通失败不触发全局停止/返修批次 | 移除 Draining、used_passes 和合同准入;`repeated_failures_do_not_consume_delivery_reviews_or_block_other_operations` | 通过 |
|
||||
| 在途长命令不阻塞失败后的无关调用 | 原生适配器保留 processId 在途事实,同时允许实际文件写入和新的命令审批;`failed_image_does_not_block_writes_or_commands_while_native_process_is_running` | 通过 |
|
||||
| 并发与操作终结 | 成功、失败、取消 future、异常展开释放占用,重复结算不重复计时;混合 MCP 并发回归 | 通过 |
|
||||
| 关闭与原回合边界 | Closing 先关闭准入,再核对清理;等锁迟到写入、关闭后付费排队、新回合下旧许可拒绝 | 通过 |
|
||||
| 时间预算与迁移 | 保留累计执行/墙钟口径;v1 预算及终态保留,旧活动记录不恢复权限,未知字段拒绝 | 通过 |
|
||||
| 验证失败与远端不确定结果 | 不再由通用操作结算中断整轮;证据仍不通过,资源幂等及对账路径保留;本地清理未确认仍关闭回合 | 通过 |
|
||||
| 合同范围与调度边界 | 仅解除操作准入前置条件、清除矛盾提示;视觉/玩法与 artifact/command 判据保留;未改 Codex 循环和图片返回协议 | 通过 |
|
||||
| 自有进程退出 | Unix 实际后台 writer 在 shutdown 后停止写入,退出证明仅声明 process-group 范围 | Linux 通过;Windows 待验收 |
|
||||
|
||||
### 自动化验证
|
||||
|
||||
| 验证范围 | 结果 |
|
||||
| --- | --- |
|
||||
| `direct_execution` | 31 passed |
|
||||
| `codex_app_server::execution` | 18 passed |
|
||||
| `codex_app_server::process_tree` | 3 passed;1 个仅供子进程启动的 fixture 保持 ignored,实际清理测试会显式启动它 |
|
||||
| `direct_paid_submission` | 6 passed |
|
||||
| `direct_tool_bridge` | 43 passed;首次沙箱禁止 loopback 导致 5 个测试失败,授予本地监听权限后全数通过 |
|
||||
| `direct_validation` | 9 passed |
|
||||
| `direct_delivery` | 6 passed |
|
||||
| `direct_patch` | 5 passed;Windows 捆绑补丁运行用例在 Linux 不编译 |
|
||||
| 混合 MCP 并发 dispatcher | 1 passed |
|
||||
| Direct analytics | 2 passed |
|
||||
| `runtime_prompt_bundle_build` / `prompt_source_boundaries` | 6 / 18 passed |
|
||||
| 生产二进制 `cargo check` | 通过 |
|
||||
| 修改文件 rustfmt、文档索引、编码、`git diff --check` | 通过 |
|
||||
|
||||
未调用真实付费 Provider,没有修改工具调度或图片异步协议。Windows Job 子树退出及 Windows 捆绑 Codex 补丁运行需在目标平台补验;当前 Linux 证据不替代该验收。原有编译警告未作为本次重构范围扩展处理。
|
||||
|
||||
## 用户手动检查(2026-10-05)
|
||||
|
||||
- 用户确认手动 GUI 检查已完成,PR #608 已移除 WIP;未提供平台及逐项用例明细,Windows 专项进程退出证明不据此标为通过。
|
||||
@@ -1,34 +0,0 @@
|
||||
# Direct 收尾与进程证明修复实施计划
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | implemented(Linux 定向回归通过;Windows 目标平台复核未运行) |
|
||||
| Date | 2026-10-05 |
|
||||
| Milestone | [Direct 收尾与进程证明修复](./【里程碑】Direct收尾与进程证明修复-2026-10-05.md) |
|
||||
|
||||
1. 两处适配器收尾用受控归属退役结果登记 executor_stopped,保留完整子树证明范围;通过实际子进程协议夹具检查最终回复和账本状态。正常关闭的迟到通知不能在 Working/Closing/Sealing 生成终态报告或改写 Completed,补充对应反例。
|
||||
2. Linux 扫描仅处理数字 PID,累积读取/解析不确定性,真实活跃成员优先;已确认消失可跳过。增加确定性目录、状态错误与真实进程回归。
|
||||
3. 无合同回复复核捕获收尾结果后读取终态报告;用测试时钟偏移触发收尾预算耗尽,同时覆盖非终态错误。
|
||||
4. 运行 process_tree、完整响应、direct_execution、direct_delivery、execution 适配器定向测试,cargo check、格式、文档索引、编码和 diff 检查。
|
||||
|
||||
优先完成三项行为及定向验证;检查点为代码完成、Linux 回归完成。风险为误认退出和遮蔽真实错误,均须负向用例。无真实模型或 Windows 环境时不宣称对应平台通过;不新增调度或视觉/玩法规则。
|
||||
|
||||
## 实施与验证结果
|
||||
|
||||
| 验收面 | 证据 | 结果 |
|
||||
| --- | --- | --- |
|
||||
| 无合同操作回合 | 实际 Unix app-server 协议子进程完成原生命令事件与回复后,复核得到 Completed、无终态报告、保留模型正文 | 通过 |
|
||||
| ready 合同 | 同一协议夹具验证操作后完整响应、进程组退役、Completed 和宿主验收报告;完整子树证明仍为 false | 通过 |
|
||||
| 关闭通知 | Working/Closing/Sealing 不产生报告,Completed 不被迟到通知改写,Interrupted 仍可追加说明 | 通过 |
|
||||
| Linux 扫描 | 僵尸、活跃与其他组、已消失 PID、目录枚举错误、不可读及格式错误 stat;真实未 wait 的僵尸仍被 kill(0) 发现但不算活跃 | 通过 |
|
||||
| 收尾预算 | 无合同回复复核内部触发预算 Exhausted,返回已持久化预算报告;有在途操作但无终态报告仍返回关闭错误 | 通过 |
|
||||
| 既有负向边界 | 未证明退出不能完成、冻结合同证据与失败/关闭准入等原有回归 | 通过 |
|
||||
|
||||
定向测试合并运行 75 passed、1 ignored(进程辅助夹具),覆盖 direct_execution、direct_delivery、execution 适配器、process_tree 和三个完整响应夹具。完整响应夹具使用本地 loopback 与实际子进程,不调用真实 LLM 或付费 Provider。
|
||||
|
||||
`cargo check --locked`、修改文件 rustfmt、文档索引、编码与 `git diff --check` 均通过。编译仍报告仓库既有告警;初次协议夹具运行因沙箱禁止 loopback 绑定而未进入行为验证,获准重跑后通过。
|
||||
|
||||
验证命令:`cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell -- agent::direct_execution::tests agent::direct_delivery::tests agent::codex_app_server::execution::tests agent::codex_app_server::process_tree::tests no_contract_operation_completes ready_contract_allows direct_project_turn_does_not_forward`。
|
||||
|
||||
Windows 目标平台尚未运行;本次 Linux 结果不替代 Windows Job 子树及客户端专项验证,复核后清理本临时计划和里程碑。
|
||||
@@ -1,43 +0,0 @@
|
||||
# 【里程碑】Direct 交付合同简化
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.3 |
|
||||
| Status | implemented(实现与定向验证完成;用户手动 GUI 检查完成,Windows 专项证据单列) |
|
||||
| Date | 2026-10-04 |
|
||||
| Parent Spec | [Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同) |
|
||||
| 关联 | PR #608(用户确认已移除 WIP);问题 #518、#529 |
|
||||
|
||||
## 交付结果与范围
|
||||
|
||||
交付由用户游戏制作意图驱动、只在正常响应结束后自动复核的合同机制,删除 artifact/command 验收要求,并保证无合同不阻断普通操作和正常结束。
|
||||
|
||||
必须项:触发时机、提示词与宿主义务解除、退役两类要求。风险项:正常/异常终态、旧合同恢复、与视觉/玩法共享的证据代码。可选项:无;不扩展诊断 UI 或合同生命周期。
|
||||
|
||||
基于已提交租约重构代码规划。租约 Windows Job 验收仍待补,不将其视为已通过,也不借本里程碑修改进程控制。用户本轮明确要求继续合同规划;实施与平台验收分别报告。
|
||||
|
||||
## 行为与边界
|
||||
|
||||
- Agent 在用户要求制作、完成、交付游戏时登记合同;仅提到游戏、只生图、只读代码、咨询或“什么也不做”不构成强制登记。宿主不解析关键词,不根据空项目/脚手架/创建入口强制合同。
|
||||
- 无合同的正常回合在清理后结束,不触发缺合同返修;普通文件、执行、生成和验证只遵循现有操作控制。
|
||||
- 操作结算、补丁成功、合同登记及状态查询都不能自动封口。只有模型正常完成本次响应后才允许自动进入合同复核。已满足合同的 Agent 可以继续处理本轮用户要求并写完回复。
|
||||
- 正常完成时,有合同则复用通过→最终复核→完成、未通过→有界反馈的流程;无合同不生成游戏验收成功报告。取消、耗尽、断连等保留自己的终态。
|
||||
- 新登记仅支持 visual/gameplay;artifact/command 参数明确拒绝,不静默忽略。删除宿主自动补入的 artifact/command;保留普通构建/命令工具及其错误。
|
||||
- visual/gameplay 的双端、场景、指纹、文件摘要和可信来源不变;仅在主动登记的新 Web 合同上保留原有视觉/玩法补充,不增加新默认项。
|
||||
- 单回合冻结、同参幂等、数量限制、禁止自报 passed 不变。已有终态不重开;旧合同未完成不自动迁成成功;同回合预算不重置。
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [x] 证据已齐备,原生命令、文件修改、第三方 MCP 结算及 AGC 补丁完成后仍可继续操作,直到模型正常返回。
|
||||
- [x] agc_delivery_status 返回 ready 时仍不封口;正常响应结束后才进入既有复核/收尾。
|
||||
- [x] 空项目“什么也不做”“只生成一张图,不做游戏”无合同可正常完成;已有项目行为一致。
|
||||
- [x] 实际发送给模型的提示和工具 schema 条件一致;随包技能不再要求首次修改前登记。游戏制作意图由 Agent 判断。
|
||||
- [x] 无合同可写文件、运行命令、发起图片生成和验证;预算、取消、并发、权限和远端幂等回归通过。
|
||||
- [x] 新合同拒绝 artifact/command;无 host-entry/host-build、初始产物摘要或命令返回验收。
|
||||
- [x] visual/gameplay 原有通过、失败、漂移、截图/报告篡改及场景不匹配用例维持原判据。
|
||||
- [x] 正常验收失败仍有界反馈;异常中断或预算耗尽不能变成成功,下一条用户输入可新开回合。
|
||||
- [x] 旧终态、旧未完成合同、仅含退役要求、混合要求、旧无合同强制标记、活动操作及未知字段均有迁移反例;预算不刷新。
|
||||
|
||||
## 证据与剩余项
|
||||
|
||||
具体文件、顺序、命令见[实施计划](./【实施计划】Direct交付合同简化-2026-10-04.md)。实现已完成,自动化与 Linux 子进程协议夹具证据见实施计划。以上勾选表示代码/定向测试条款通过,不代表真实模型的意图理解或 Windows 完整进程子树已验收。用户于 2026-10-05 确认手动 GUI 检查已完成、PR 已移除 WIP,并决定视觉/玩法检查保持现状。未提供平台及逐项用例明细,尚无专项证据的 Windows 条目继续保留在实施计划。
|
||||
@@ -1,50 +0,0 @@
|
||||
# 【里程碑】Direct 合同与租约机制重构
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.4 |
|
||||
| Status | implemented(2026-10-04 已实现;Linux 定向验证通过,Windows 验收待补) |
|
||||
| Date | 2026-10-03 |
|
||||
| Parent Spec | [AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
| 关联问题 | #518、#529 |
|
||||
|
||||
## 本次交付与范围
|
||||
|
||||
在 PR #608 内实施租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。租约切片已按用户于 2026-10-04 的实施指令落地。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收。用户于 2026-10-04 要求继续并实施[合同简化](./【里程碑】Direct交付合同简化-2026-10-04.md),独立记录范围与验收,不将租约 Windows 待验收项视为已完成。
|
||||
|
||||
## 问题与已确认方向
|
||||
|
||||
- #518:交付合同存在性被作为写入、执行与付费操作的统一前置门禁;新 Web 项目又由宿主提前要求交付,普通探索可能被迫登记合同或进入验收反馈循环。
|
||||
- #529:付费或执行操作失败使整轮进入 Draining;任意其他在途租约都会拦住新的副作用,挂起的原生命令因此阻断无关代码编辑。
|
||||
- 操作跟踪不需要同时承担持久化租约、全局排空和交付准入。宿主应在调用开始前检查回合是否仍活动、时间是否剩余、并发槽是否可用,并继续执行既有权限与资源自身的约束。
|
||||
- 已受理操作完成、失败或取消后释放并发槽,将真实结果交给 Agent,由 Agent 决定下一步。普通工具失败不触发整轮 Draining、不消耗宿主定义的返修批次,也不要求先满足交付合同才能继续无关工作。
|
||||
- 回合结束或时间耗尽后拒绝新调用,取消宿主拥有的在途工作;不能把清除跟踪记录当成进程已停止的证明。旧回合迟到结果不能借用新回合权限继续写入。
|
||||
- 远端付费任务的 operation ID、幂等和结果核对继续由资源操作自身的生命周期负责;客户端停止不证明远端任务取消,不因新回合自动重复提交不确定请求。这些约束不构成阻断整轮无关工作的理由。
|
||||
- 不通过增加租约诊断、自动到期或“释放租约”工具来保留当前全局门禁模型。
|
||||
|
||||
## 合同工作的边界
|
||||
|
||||
已确认后续提示 Agent 在用户要求制作、完成或交付游戏时创建合同,由 Agent 理解用户意图,宿主不按关键词或未交付脚手架自动要求登记;artifact/command 验收门禁已在合同简化中移除;用户于 2026-10-05 决定视觉/玩法保持现状。这些合同调整不纳入本次租约实现,唯一交叉项是解除普通操作的合同存在性门禁及同步清除与之矛盾的准入提示。
|
||||
|
||||
本切片移除执行/返修批次,`maxRuns` 暂仅保留既有交付复核次数用途;交付复核不影响工具准入。时间预算数值和计时方式保持不变。保留回合预算防重置与必要恢复信息,旧活动租约不能迁移成新执行权限;未确认旧执行器退出时不能开启冲突执行。
|
||||
|
||||
不改 Codex 模型循环、工具调度、MCP 返回协议,不新增图片 start/status/wait 工具或后台 Agent;保留现有并行调用能力与资源事务锁。不新增超时自动释放租约、续租或手动释放租约工具。
|
||||
|
||||
## 租约切片验收标准
|
||||
|
||||
- [x] 图片生成失败后,Agent 收到真实错误;无关文件编辑和命令不因全局排空被拒绝。
|
||||
- [x] 一条长命令与失败图片请求同时存在时,不复现 #529 的全局拦写;长命令仍受并发容量、取消和时间控制。
|
||||
- [x] 并发超过上限时保持有界;成功、失败、取消及异常路径正确释放槽位。
|
||||
- [ ] 回合结束或时间耗尽后零新增调用,已拥有的本地进程正确回收;迟到操作不越过原回合写入边界。Linux 控制夹具和实际进程组清理已通过;Windows Job 完整子树证明未验证。
|
||||
- [x] 新用户消息可以在旧执行器正确退出后开启新回合;旧的不确定远端操作不被盲目重放。
|
||||
- [x] 无合同也能通过普通操作准入;既有权限、路径和付费约束仍生效。
|
||||
- [x] 连续操作失败超过原 maxRuns 不阻止继续工作;交付复核次数不被操作成功或失败消耗。
|
||||
- [x] 验证失败或输入变化只影响对应结果与证据,不阻断无关操作。
|
||||
- [x] 同回合重试、重启或旧账本读取不刷新时间预算、不恢复旧操作权限。
|
||||
- [x] 保留原有并行调度,未引入图片后台接口或修改模型循环;合同视觉/玩法判据未变化。
|
||||
|
||||
## 后续工作入口
|
||||
|
||||
租约切片对应[实施与验证记录](./【实施计划】Direct操作控制与租约简化-2026-10-03.md),其中记录定向验证证据与未验证项。稳定行为已同步主规范和共享记忆;用户于 2026-10-05 确认手动 GUI 检查已完成、PR 已移除 WIP;临时计划仍保留尚无专项证据的平台条目。合同简化的实现与验收见关联记录。
|
||||
@@ -1,16 +0,0 @@
|
||||
# Direct 收尾与进程证明修复
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | implemented(Linux 定向回归通过;Windows 目标平台复核未运行) |
|
||||
| Date | 2026-10-05 |
|
||||
| Parent Spec | [Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同) |
|
||||
|
||||
交付:正常 Unix 归属清理允许回合完成,不完整进程扫描不能证明退出,收尾预算报告不被通用错误覆盖。
|
||||
|
||||
范围仅限执行适配器、进程组观察、回复复核及对应测试;视觉/玩法、调度、预算数值及持久化格式不变。
|
||||
|
||||
验收:Linux 无合同操作回合 Completed 且无宿主报告;ready 合同 Completed 且有验收报告;扫描失败保持未知、僵尸不算活跃、活跃成员阻止退役;收尾预算耗尽返回已存报告并保持 Exhausted,其他关闭错误继续报错。Windows Job 完整证明语义不变,目标平台验证单列。
|
||||
|
||||
Linux 上述条款已通过;正常关闭的迟到通知也已覆盖,不会阻断回复复核或覆盖完成后的报告。具体结果见[实施记录](./【实施计划】Direct收尾与进程证明修复-2026-10-05.md)。剩余项为 Windows 目标平台复核,不扩大到视觉/玩法或真实付费 Provider。
|
||||
@@ -9622,11 +9622,11 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- 提示 Agent 在用户要求制作、完成或交付游戏时登记合同,由 Agent 理解用户意图;首次输入也按同一用户意图条件登记,提示与技能不另设空项目或首次输入的免登记说明。无合同既不阻断普通操作,也不阻断正常结束。
|
||||
- 删除 artifact/command 合同要求及宿主自动补入项,保留普通文件、命令与构建能力。视觉/玩法的现有判据和证据真实性校验不改,仅在主动注册后应用原有新 Web 视觉/玩法补充;用户于 2026-10-05 确认这两类检查保持现状。
|
||||
- 旧未完成合同不得因过滤退役要求变成成功;保留旧预算、终态和操作身份,版本迁移与恢复有独立验收。
|
||||
- 权威规则:[Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同)。运行时已实现;真实模型意图遵循与 Windows 验收按计划单列,不以协议夹具代替。
|
||||
- 权威规则:[Direct 合同规则](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#宿主验收与执行许可合同)。运行时已实现;验证边界保留在主规范,不以协议夹具代替真实模型或 Windows 专项证据。
|
||||
|
||||
## 2026-10-05:Direct 重构手动 GUI 检查与范围收敛
|
||||
|
||||
- 用户确认手动 GUI 检查已完成,[PR #608](https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/608) 已移除 WIP;删除要求该 PR 维持 WIP 的过期说明。
|
||||
- 用户确认手动 GUI 检查已完成,[PR #608](https://git.genarrative.world/git/GenarrativeAI/Genarrative/pulls/608) 已合入;已完成的临时里程碑和实施计划删除,持久规则及验证边界以主规范为准。
|
||||
- 视觉与玩法检查保持现状,包括既有双端、固定场景及证据真实性校验;本次不继续重构这两类要求。
|
||||
- 手动 GUI 确认与专项平台证据分别记录;未提供的 Windows 用例明细不推定为通过。
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ UI 编辑器的“分析参考图”步骤、Rust 命令 `suggest_ui_design_sema
|
||||
|
||||
### Direct 操作控制(2026-10-04)
|
||||
|
||||
本节与下节共同描述当前 Direct 操作控制,执行/返修批次与全局 Draining 已移除。实施范围与验收见[重构里程碑](../project-memory/plans/【里程碑】Direct合同与租约机制重构-2026-10-03.md)。操作控制不改变 Codex 的工具调度、模型循环或图片工具的等待返回方式。
|
||||
本节与下节共同描述当前 Direct 操作控制,执行/返修批次与全局 Draining 已移除。操作控制不改变 Codex 的工具调度、模型循环或图片工具的等待返回方式。
|
||||
|
||||
- 普通操作开始前,宿主检查原回合是否活动、时间预算是否足够、并发容量是否可用,并执行原有权限、路径及资源约束。交付合同是否存在、前一个工具是否成功不构成普通操作的准入条件。
|
||||
- 操作成功、失败或取消后结算占用与用时,返回真实结果,由 Agent 决定后续操作。没有全局 Draining、执行/返修批次计数及对应重试门禁;验证输入变化只使相关证据失效,不使无关工作停顿。不新增租约到期续租、Agent 释放租约或独立后台任务接口。
|
||||
@@ -170,7 +170,9 @@ UI 编辑器的“分析参考图”步骤、Rust 命令 `suggest_ui_design_sema
|
||||
- 交付复核与操作准入分离。合同由 Agent 按用户制作/交付游戏的意图登记,验收仅在正常响应结束后启动,当前只保留视觉/玩法要求。`validation.maxRuns` 暂保留现有交付复核次数用途,不再用于执行/返修批次;时间配置不变。
|
||||
- 同回合重试或进程重启不刷新预算;仅保留预算、回合归属、必要退出记录和资源自身恢复所需的持久状态,不恢复旧租约为可执行权限。旧版本未结束状态须先确认旧执行器退出,不能通过直接删除账本解除控制。
|
||||
|
||||
验收至少覆盖失败图片与长命令并存时无关写入成功、连续工具失败不触发返修次数限制、所有退出路径释放并发占用、关闭后零新增执行/付费提交、迟到写入被拒绝,以及远端不确定任务不重复提交。自动化证据与平台未验证项记录在关联实施计划中;Linux 进程组清理不冒充 Windows Job 的完整子树退出证明。
|
||||
验收至少覆盖失败图片与长命令并存时无关写入成功、连续工具失败不触发返修次数限制、所有退出路径释放并发占用、关闭后零新增执行/付费提交、迟到写入被拒绝,以及远端不确定任务不重复提交。Linux 进程组清理不冒充 Windows Job 的完整子树退出证明。
|
||||
|
||||
验证边界:Linux 定向回归已覆盖操作准入、合同复核与恢复、实际子进程退出、无合同及 ready 合同完整回复、进程扫描不确定性、迟到关闭通知与收尾预算报告。用户已确认手动 GUI 检查完成。未提供 Windows Job 完整子树退出及 Windows 捆绑补丁专项结果,也未以真实模型多语言意图或付费 Provider 场景替代协议夹具;这些边界不因合入或清理临时计划而视为已验证。后续目标平台验证沿用现有测试与本规范。
|
||||
|
||||
### 宿主验收与执行许可合同
|
||||
|
||||
|
||||
Reference in New Issue
Block a user