Skip to content

feat(coding): 完成本地安全执行区与原生沙箱 - #129

Open
ZeroMadLife wants to merge 5 commits into
dev/sage-v7from
codex/sec-03-native-sandbox
Open

feat(coding): 完成本地安全执行区与原生沙箱#129
ZeroMadLife wants to merge 5 commits into
dev/sage-v7from
codex/sec-03-native-sandbox

Conversation

@ZeroMadLife

Copy link
Copy Markdown
Owner

背景

本 PR 一次收口 SEC-01 至 SEC-03。当前远端集成分支尚未包含前置提交,因此以端到端安全链提交,避免制造不可独立验证的 stacked PR。

交付内容

  • SEC-01:primary workspace 的递归删除与 git reset --hard 在 Policy 层 fail closed,不进入 Approval、Runtime ToolCallEvent 或 Sandbox。
  • SEC-02:Coding Session 使用 detached Git worktree 作为 disposable execution workspace;逻辑 workspace 身份保持稳定,可跨 Run/Approval/重启恢复并显式 discard。
  • SEC-03:新增 native_local Provider;macOS 使用 Seatbelt sandbox-exec,Linux 使用 bubblewrap;文件工具只操作 execution root,Shell 无 Host fallback。
  • 稳定性:组件卸载后停止异步会话恢复;Approval 等待不再遗留最长 300 秒的线程池阻塞任务。
  • 文档:增加一页式中文 PRD、Mermaid 执行链、外部实现对比、验收证据与明确非目标。

安全边界

  • native_local 仅允许 development/test;production/staging 继续使用 Container。
  • worktree 不是 OS 安全边界;文件工具依赖 WorkspaceContext containment,Shell 子进程依赖 Seatbelt/bwrap。
  • sandbox-exec 已 deprecated,不宣称生产级绝对隔离。
  • Linux 本机没有 bwrap,只完成参数契约测试,未宣称 Linux live 通过。
  • 不做自动 merge、push、reset、worktree 源码恢复,也未公开 none | ro | rw 配置 API。

验证

  • SEC-03/生命周期聚焦:135 passed, 1 warning
  • 后端完整门禁:1778 passed, 11 skipped, 1 warning
  • Ruff lint、Ruff format、mypy:通过(213 个源文件)
  • 前端 Vitest:506 passed
  • 私有与公开 Vite 生产构建:通过
  • git diff --check:通过
  • macOS Seatbelt live:execution 写入、primary/外部读取拒绝、primary 写入拒绝、loopback 禁网、只读拒写、禁止 signal 宿主进程均通过

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant