Skip to content

[Epic] Docker Sandbox 与执行隔离 / Docker sandbox and execution isolation #32

Closed
3 of 3 issues completed

Description

@Qiyuanqiii

目标 / Goal

把现有“私有、无产品授权”的真实 Docker 生命周期基础收口为 Run 所有、可恢复、默认拒绝、可审计的产品 Sandbox。

Turn the existing private, non-authorizing Docker lifecycle foundation into a Run-owned, recoverable, fail-closed, auditable product sandbox.

当前基线 / Current baseline

  • 已验证固定 Docker daemon endpoint 下的 stage/create/start/wait/natural-exit/timeout/cancel/TERM/KILL/final-inspect/delete/absence。
  • 真实 Docker Desktop 已通过 timeout exit 137 与清理证据。
  • 当前实现仍是 package-private foundation,不授予 CLI、HTTP、Desktop 或模型任何产品执行权。
  • 尚缺持久启动意图、generation lease/fencing、重启/孤儿恢复、有界日志、原子输出事务和产品准入。

子任务范围 / Child scope

子 Issue 将分别覆盖:

  • 生命周期所有权、租约与崩溃恢复;
  • 只读输入、有界日志和原子 Artifact 输出;
  • Policy/Approval/Budget/Network 与 CLI/HTTP/Desktop 产品准入。

完成定义 / Definition of done

安全边界 / Security boundaries

  • Docker 可用不等于产品授权。
  • 不允许通过环境变量、镜像内容、模型输出或前端状态自行提权。
  • 不使用 broad daemon autodiscovery;连接目标必须固定并可审计。
  • 不把容器 root 视为宿主机安全边界的充分证明。

涉及目录 / Affected directories

  • internal/sandbox/
  • internal/runner/
  • internal/application/
  • internal/domain/
  • internal/store/
  • internal/events/
  • internal/policy/
  • internal/approval/
  • internal/httpapi/
  • cmd/cyberagent/
  • web/src/
  • docs/adr/

Activity

  1. added
    roadmapProduct roadmap and cross-cutting delivery tracking
    epicParent issue grouping related deliverables
    sandboxSandbox, container, and execution isolation
    securitySecurity boundary or high-risk capability
    on Aug 13, 2026
  2. Qiyuanqiii commented on Aug 15, 2026

    @Qiyuanqiii
    MemberAuthor

    Epic 收口 / Epic closure

    三个子任务已全部完成并合并,完成定义五项均已核对通过:

    子任务 PR Schema ADR
    #38 生命周期所有权、租约与崩溃恢复 #58 v97 0096/0097
    #39 只读输入、有界日志与原子 Artifact 输出 #61 v98 0098
    #40 Policy/Approval/Budget/Network 与产品准入 #62 v99 0099

    关键边界(保持不变)

    • 真实执行默认关闭:每次 service 构造生成一次性 runtime epoch,摘要入 admission,重启/旧快照无法恢复 start authority;准入与 start final fence 全量复核 Run/Mission/Workspace、精确计划/Manifest、权限档、精确审批、Policy、剩余预算与 readiness。
    • 网络始终默认关闭:产品 Manifest 必须 environment-free、secret-free、network.mode=disabled;Create 用 network none 并在 inspect 复核。网络放宽入口目前不存在(managed_egress_unavailable),需要独立 Go-owned egress guard 时才可开放,所以“任何放宽都有显式 Scope/审批/时限”由无放宽面保证。
    • 失败关闭:Docker 不可用稳定失败,绝不回退 LocalRunner/宿主进程;timeout/cancel/non-zero/权威变化不提交输出,cleanup 仍必须完成。

    验证证据

    关闭本 epic。后续任何“放宽网络/通用 Manifest/多容器”等扩展都必须作为新的、独立评审的 issue 从当前 exact subset 边界出发。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicParent issue grouping related deliverablesroadmapProduct roadmap and cross-cutting delivery trackingsandboxSandbox, container, and execution isolationsecuritySecurity boundary or high-risk capability高难度

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions