Skip to content

[Grok/dsh 09] 管理策略与工作区信任 #141

Description

@Blackman99

Parent

#132

Ticket: 09

Status: ready-for-agent

User Stories: 24, 35, 36, 37(见父规格)

What to build

管理员设置默认值和不可覆盖限制,用户打开未信任工作区时先看到信任决策而非自动执行项目资产。

Acceptance criteria

  • 已验证的管理层、用户层、工作区层、环境和命令行优先级一致;被锁定值不能被后置参数绕过。
  • 工作区信任保存、撤回、只读目录及失败状态可验证;未信任的 Hooks/插件/项目能力不执行。
  • 不认识的安全字段或无效策略不会被静默忽略;诊断说明有效值、来源与限制。
  • 在真实 dsh 启动和配置界面验证允许/拒绝两路,文档与发布元数据同票交付。

Blocked by

Delivery contract

用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。

Activity

  1. self-assigned this
    on Sep 20, 2026
  2. Blackman99 commented on Sep 20, 2026

    @Blackman99
    OwnerAuthor

    按用户2026-09-20的实施授权领取 Ticket09 / #141;本次只记录领取,未启动实施工作者,也不表示已实现。已重新读取 #132 及全部80票正文/评论和实际 blocked-by(native 177 边);#139 已集成关闭后,当前独立就绪票为 #140、#141(均仅被已关闭且有集成证据的 #139 阻塞)。#149 与 #160 虽 native 无开放前置,但保留既有领取且 cherry-pick 到 3bd2cb4dd19b68eb8600e1d5af8c8be5dcaef70e 冲突,本轮按失败记录推迟,不重试、不重领。本波并行领取 #140 与 #141,未领取任何被阻塞后继(含 #142/#154/#157/#158/#161/#165/#171/#185/#189/#192/#193/#197/#203/#212)。

    实施必须从独立集成树精确基线 3bd2cb4dd19b68eb8600e1d5af8c8be5dcaef70e 开始。前置 #139 已关闭,其同一提交已保留在 rewrite/grok-dsh-20260920;两位独立 grok-4.6 审查及集成证据见 #139 (comment) 。#138/#137/#136/#135/#134/#133 仍为已集成关闭基线 #138 (comment) 、#137 (comment) 、#136 (comment) 、#135 (comment) 、#134 (comment) 与 #133 (comment) 。

    范围按原验收:已验证的管理层、用户层、工作区层、环境和命令行优先级一致,被锁定值不能被后置参数绕过;工作区信任保存、撤回、只读目录及失败状态可验证,未信任的 Hooks/插件/项目能力不执行;不认识的安全字段或无效策略不会被静默忽略,诊断说明有效值、来源与限制;在真实 dsh 启动和配置界面验证允许/拒绝两路,文档与发布元数据同票交付。后续实施/审查子代理使用 grok-4.6。仅在实施、独立审查和集成验收通过后关闭。main、现有未跟踪文件及其他工作树不改动;不授权付费资源,#212仍须新的明确最终发布/默认切换批准。

  3. Blackman99 commented on Sep 20, 2026

    @Blackman99
    OwnerAuthor

    Ticket 09 / #141 不能在已集成的 #140 之上直接落盘。独立审查已批准 worker HEAD 83aa1497d6247312c0560bb4e95f6e133c3cb5eb(基线 3bd2cb4dd19b68eb8600e1d5af8c8be5dcaef70e,tree 与审查一致),但隔离集成树当前 HEAD 已是 #140 的 253b7376f14c2ad2c8955440fbe21e98b24021f0(253b737 )。

    git fetch <worker-worktree> HEAD --no-tags 后 FETCH_HEAD 匹配 83aa149;git cherry-pick 3bd2cb4..83aa149 在第一枚 e57f259 上于下列 8 个文件冲突后已 git cherry-pick --abort,未做手工合并、未改 worker 工作树、未推送、未关闭本票:

    • rust/src/config.rs
    • rust/src/main.rs
    • CONTEXT.md
    • CONTRIBUTING.md
    • README.md
    • README.zh.md
    • package.json(test:rust:pty 脚本)
    • packages/cli/README.md

    未冲突已暂存但随 abort 丢弃的同范围文件:.changeset/rust-dsh-managed-policy-trust.md、packages/cli/bin/rust.mjs、rust/src/trust.rs、scripts/rust-trust-pty-test.py。

    修复要求:在同一 worker 工作树 /Users/zhaodongsheng/.grok/worktrees/my-projects-codsh/subagent-01a0bf85-154f-7150-af55-9a6a9d5ce501 上把 managed policy / workspace trust 切片重放到 253b737,保留原验收与 packed scripts/rust-trust-pty-test.py(含 deny-then-turn 无 AGENTS.md),并再经独立审查。不要在集成分支上手合。main 仍为 43b5da1。#132 与 #212 不关闭。

  4. Blackman99 commented on Sep 20, 2026

    @Blackman99
    OwnerAuthor

    已完成并集成到独立分支 rewrite/grok-dsh-20260920,HEAD 提交:da22464 。feat 提交:6481b47 。修复提交:da22464 。该范围是对已审查 worker HEAD 518cb3f084cf6f390a449fc01c897c72d1a81a79 的 dc84ab94..518cb3f cherry-pick(两个提交),tree 相同 6b2649fff9a22e771e135871704f7782003d3c0c。git fetch <worker-worktree> HEAD --no-tags 后 FETCH_HEAD 匹配 518cb3f;无冲突、未手工合并、非 force 推送 dc84ab9..da22464。Worker 记录:两位独立 grok-4.6 审查员对该精确 HEAD 518cb3f(基线 dc84ab9)批准且 findings 为空;此前 83aa149 落到 253b737 冲突后已在同一 worker 工作树重放到当前集成 HEAD。

    集成控制器在隔离集成树独立复跑(TMPDIR=/tmp):typecheck、80 文件 / 2242 测试通过(含 rust-acp-protocol.spec 23/23)、cargo fmt、严格 Clippy(--offline -D warnings)、Rust workspace 77+61+2+379 项测试(含 locked_requirements_beat_cli_env_overlay_and_workspace、unknown_security_fields_are_diagnosed、requirement_locks_folder_trust_off)、pnpm run build:rust(native SHA-256 1104ee0d80f887d900004848811dfef67872faafd6d237ffa3b7498bc551a704,packages/cli/native/ 仍 gitignore)、packed 安装产物 PTY scripts/rust-trust-pty-test.py PASS(证据 /tmp/codsh-rust-trust-svwb84ag;跑前清理泄露的 model/config/review-141 home 进程)、scripts/rust-config-pty-test.py PASS /tmp/codsh-rust-config-mwnsepj0、scripts/rust-model-pty-test.py PASS /tmp/codsh-rust-model-hphhj9rj、scripts/rust-compact-pty-test.py PASS /tmp/codsh-rust-compact-e1zyd08q session 4f586945-672b-401d-9d29-59146104b60b、隔离套件 scripts/rust-pty-test.py PASS(.scratch/rust-pty-1789943381505017000)。

    实际 UI(packed codsh --rust + 已发布 @deepseek-ai/dsh@0.1.5-rc.2,提供商边界 mock,隔离 HOME/workspace):deny 在 connect 前等待 Trust this workspace/hooks,n 后 TOKEN_DENY_PROMPT → RUST_ACP_ANSWER,MARKER_UNTRUSTED_INSTRUCTIONS/Instructions from: AGENTS.md 缺席,hook canary 未写入,inspect workspaceTrusted=false models.default=user-model;--trust 无 prompt,workspace models.default=project-model;--revoke-trust workspaceTrusted=false;requirements.toml 锁定 models.default=locked-model/features.remote_fetch=false source=requirements,CLI/overlay 不能绕过;unknown_security_gate inspect exit 1,PTY 不声称 ACP 会话成功;read-only Home Couldn't save folder trust,durable: false。所有 trust .ansi 含 CSI ?1049l。

    变更仅为 opt-in codsh --rust 的管理层/requirements 锁、工作区信任提示与 grant/revoke、未信任项目资产不进 dsh、未知安全字段 fail-closed。未改 main(仍 43b5da1),未链入官方 agent 核心,未发布 npm,未做默认切换。Linux/Windows PTY 仍未在本主机验证。#132 spec 与后继票仍不关闭。#212 仍须新的明确最终发布/默认切换批准。worker worktree 保留在 /Users/zhaodongsheng/.grok/worktrees/my-projects-codsh/subagent-01a0bf85-154f-7150-af55-9a6a9d5ce501。

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

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions