简化 Direct 操作控制并移除全局租约门禁
Project CI / AI game creator shell Rust crates (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 / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (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 / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
移除全局排空、执行返修批次与合同存在性的操作准入限制 保留时间预算、并发控制、原回合权限和执行器清理边界 迁移执行账本并隔离普通失败与资源结果不确定状态 更新提示词、回归测试、主规范和实施验收记录
This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.1 |
|
||||
| Status | proposed(评审草案,未开始实现) |
|
||||
| Version | 0.2 |
|
||||
| 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-03待实现) |
|
||||
| Parent Spec | [Direct 操作控制](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
|
||||
## 交付与优先级
|
||||
|
||||
@@ -99,4 +99,40 @@ git diff --check
|
||||
- 同步修改状态消费者、报告及相关提示,不留下运行时已经允许、提示仍命令 Agent 停止的矛盾。
|
||||
- 实现按上述步骤保留可回退提交。回滚前结束自有回合并确认进程退出,核对账本版本可读性;不得通过删账本或重发远端请求完成回滚。
|
||||
|
||||
本计划尚未实施。完成后提交逐条证据,融合主规范与长期记忆,再清理临时计划;WIP PR 在验收前保持 WIP。
|
||||
本计划已实施,主规范和长期记忆已同步。以下证据来自本次实际运行;Windows 平台验收前保留本计划,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 证据不替代该验收。原有编译警告未作为本次重构范围扩展处理。
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
| 字段 | 值 |
|
||||
| --- | --- |
|
||||
| Version | 0.2 |
|
||||
| Status | proposed(本次细化租约切片,待评审,未实现) |
|
||||
| Version | 0.3 |
|
||||
| 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-03待实现) |
|
||||
| Parent Spec | [AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04) |
|
||||
| 关联问题 | #518、#529 |
|
||||
|
||||
## 本次交付与范围
|
||||
|
||||
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。本次只交付规范与计划,不修改运行时行为。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
在现有 WIP PR #608 内规划租约重构:将普通操作控制收敛为回合、时间、并发及既有权限检查,消除单次操作失败造成的全局停顿。租约切片已按用户于 2026-10-04 的实施指令落地。验收以失败操作不阻塞无关工作、关闭后不能新增副作用为核心。
|
||||
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。第一个检查点是完成主规范和单里程碑实现计划,当前不进入业务代码实现。
|
||||
优先顺序:必须项为明确操作失败与回合控制的边界;风险项为取消、并发、旧回合归属及远端结果不确定;可选项为诊断呈现,按实现需要再决定。规范与计划已完成评审并实施;当前检查点是平台验收,不推进合同切片。
|
||||
|
||||
## 问题与已确认方向
|
||||
|
||||
@@ -34,17 +34,17 @@
|
||||
|
||||
## 租约切片验收标准
|
||||
|
||||
- [ ] 图片生成失败后,Agent 收到真实错误;无关文件编辑和命令不因全局排空被拒绝。
|
||||
- [ ] 一条长命令与失败图片请求同时存在时,不复现 #529 的全局拦写;长命令仍受并发容量、取消和时间控制。
|
||||
- [ ] 并发超过上限时保持有界;成功、失败、取消及异常路径正确释放槽位。
|
||||
- [ ] 回合结束或时间耗尽后零新增调用,已拥有的本地进程正确回收;迟到操作不越过原回合写入边界。
|
||||
- [ ] 新用户消息可以在旧执行器正确退出后开启新回合;旧的不确定远端操作不被盲目重放。
|
||||
- [ ] 无合同也能通过普通操作准入;既有权限、路径和付费约束仍生效。
|
||||
- [ ] 连续操作失败超过原 maxRuns 不阻止继续工作;交付复核次数不被操作成功或失败消耗。
|
||||
- [ ] 验证失败或输入变化只影响对应结果与证据,不阻断无关操作。
|
||||
- [ ] 同回合重试、重启或旧账本读取不刷新时间预算、不恢复旧操作权限。
|
||||
- [ ] 保留原有并行调度,未引入图片后台接口或修改模型循环;合同视觉/玩法判据未变化。
|
||||
- [x] 图片生成失败后,Agent 收到真实错误;无关文件编辑和命令不因全局排空被拒绝。
|
||||
- [x] 一条长命令与失败图片请求同时存在时,不复现 #529 的全局拦写;长命令仍受并发容量、取消和时间控制。
|
||||
- [x] 并发超过上限时保持有界;成功、失败、取消及异常路径正确释放槽位。
|
||||
- [ ] 回合结束或时间耗尽后零新增调用,已拥有的本地进程正确回收;迟到操作不越过原回合写入边界。Linux 控制夹具和实际进程组清理已通过;Windows Job 完整子树证明未验证。
|
||||
- [x] 新用户消息可以在旧执行器正确退出后开启新回合;旧的不确定远端操作不被盲目重放。
|
||||
- [x] 无合同也能通过普通操作准入;既有权限、路径和付费约束仍生效。
|
||||
- [x] 连续操作失败超过原 maxRuns 不阻止继续工作;交付复核次数不被操作成功或失败消耗。
|
||||
- [x] 验证失败或输入变化只影响对应结果与证据,不阻断无关操作。
|
||||
- [x] 同回合重试、重启或旧账本读取不刷新时间预算、不恢复旧操作权限。
|
||||
- [x] 保留原有并行调度,未引入图片后台接口或修改模型循环;合同视觉/玩法判据未变化。
|
||||
|
||||
## 后续工作入口
|
||||
|
||||
租约切片对应[实施计划草案](./【实施计划】Direct操作控制与租约简化-2026-10-03.md),评审前不进入业务代码。实现完成后把稳定结论融合回主规范与共享记忆,清理临时计划;合同工作另行规划和验收。
|
||||
租约切片对应[实施与验证记录](./【实施计划】Direct操作控制与租约简化-2026-10-03.md),其中记录定向验证证据与未验证项。稳定行为已同步主规范和共享记忆;Windows 验收前保留临时计划及 WIP 状态,合同工作另行规划和验收。
|
||||
|
||||
@@ -9553,3 +9553,13 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- 验证:`npm run agc:bundled-resources:test`(18 passed,含 sidecar 归位、跳过规则、上游缺失、版本漂移、目录被占);`npm run agc:bundled-resources:check`、`check-config.mjs`、`cargo test --bin genarrative-ai-game-creator-shell package_layout::tests`、`cargo check --no-default-features`、`cargo fmt --check`、`check:encoding`、eslint/prettier 全部通过;Windows 真机准备步骤 staging 24 个文件(含 243MB `claude.exe`)后 `cargo check` 不再出现构建期写入。
|
||||
- 边界(未验证):macOS 真机的 sidecar 加载与 `check-macos-bundle.mjs` 包内容门禁未在本机验证;Linux 门禁按新配置不再要求 sidecar 资源,需 CI 实跑确认转绿。
|
||||
- 关联:issue #519、master `fb130d184`、`docs/technical/【技术方案】AGC随包资源staging归位-2026-09-26.md`、CI run 3083。
|
||||
|
||||
|
||||
## 2026-10-04:Direct 普通操作与交付复核解耦
|
||||
|
||||
- 普通工具准入只检查原回合活动状态、时间预算、并发和既有权限,不要求先登记交付合同;成功/失败/取消只结算本次操作,删除全局 Draining 与执行/返修批次计数。
|
||||
- 验证失败和源码漂移影响对应证据,不阻断无关工作。远端不确定结果沿资源自身 operation/幂等记录核对;本地执行器失控或持久状态损坏仍结束回合。
|
||||
- 保留累计执行时间、整轮墙钟、原生执行前审批、关闭时清理与原回合写入/付费提交检查。模型执行结束时先关闭准入,确认清理后才允许交付反馈继续;普通失败不进入关闭阶段。
|
||||
- `validation.maxRuns` 只保留交付回复复核用途;合同的创建时机、artifact/command 移除及视觉/玩法判据不在本次操作控制修改内。图片工具仍等待结果,Codex 调度不变。
|
||||
- v2 执行账本只对白名单 v1 字段迁移,保留预算与终态,不恢复旧活动权限;没有可信时间记录的更早项目侧账本不授予同回合新预算。
|
||||
- 权威边界与验收入口:[AI 游戏创作智能体 App 实施计划](../../technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md#direct-操作控制2026-10-04)。Windows Job 退出证明仍须由 Windows 环境验收。
|
||||
|
||||
Reference in New Issue
Block a user