Skip to content

[Feature] 权限升级路线图:Auto review、作用域授权与 Pi 兼容 #952

Description

@hui455

Problem / 问题

PI-Desktop 已有 Ask / Accept edits / Auto。还需要在逐次人工确认与全部自动允许之间提供独立的自动审核,并让会话授权范围可见、可撤销。

本 Issue 跟踪完整升级路线,衔接现有权限讨论 #397、插件边界讨论 #168 和独立的拒绝规则 PR #457。它不替代这些工作的既有范围。

Proposed change / 期望改动

保留 Rust Host 最终裁决、Pi 负责模型调用与 Agent 执行的架构。自动审核与权限模式分离;审核只能批准当前操作,不能扩大授权或覆盖硬性拒绝。

下面的 [x] 表示首个候选 PR 已实现并完成对应专项验证,[ ] 表示后续工作;勾选不代表已经发布或合入。完整测试仍存在已在原主线上复现的 Windows 失败,详见 PR 的验证说明。后续阶段不包含在首个 PR 中。

第一阶段:本 PR 的权限与 Auto review 升级

  • 统一 Host 权限入口:内置工具、MCP、插件模型工具与宿主本地执行工具共用权限裁决,纯交互工具显式豁免。
  • 保留 Ask / Accept edits / Auto;增加独立 User / Auto review 选择,支持全局默认和会话覆盖,默认人工审批。
  • MCP 在 Ask / Accept edits 下不再按名称自动低风险放行;Auto 仍明确表示免审批。
  • 人工会话授权绑定调用主体与实际操作范围:规范化文件路径及操作,完整命令/cwd/Shell,或外部工具身份/配置/参数。
  • 父代理和不同子代理不自动共享授权;审核模型只能批准一次,不能创建会话授权。
  • 查看授权、逐条撤销、全部撤销;模式或审核方式改变后清空,重启不恢复。
  • 20 秒、无自动重试、全局最多两个且每会话串行的无工具独立审核。
  • 审核模型可跟随会话或独立指定 provider/model/thinking;固定模型不可用时转人工,不静默改用其他供应商。
  • 审核使用可信宿主提供的操作和用户授权证据;将模型/工具/仓库文本作为数据,过滤可识别凭据,关键证据不完整则转人工。
  • 结构化 allow_once / deny / needs_user,内置版本化策略;不确定、高影响操作和审核故障转人工,硬性拒绝不可覆盖。
  • 设置页直接编辑完整默认审核策略,保存后替换默认而非叠加;支持恢复默认、模型切换保留策略,以及修改策略后旧批准失效。中英文真实设置路径、异常输入/保存失败与 Host→模型请求均已专项验证。
  • 审核和人工共用原始 120 秒期限;接管、取消、过期、配置变化、并发应答和重启不能复用失效批准;旧轮次的迟到事件不能重新激活界面。
  • 绑定请求/会话/轮次/调用主体/参数/策略版本,执行前再次检查,宿主本地工具核销单次执行许可。
  • 内联显示待处理审核、原因、授权范围与接管操作;Auto 显示不经审核。
  • 在权限菜单保留审核结果、原因、模型与独立用量;审计来源/策略/参数摘要/时延,不记录推理链,未知用量不当成零。
  • 协议 v12、数据库 schema v20、旧设置默认人工及本机配置同步保护;当前不支持的远端审核操作明确拒绝,不回退到本地 Host。
  • Pi SDK 适配契约覆盖消息、工具调用、停止、取消、错误和用量;继承主线固定的 0.87.1,不额外升级 SDK,不改变原生 JSONL/租约/noTools 边界。
  • 中英文界面交互、真实 Host + 本地模型审核、MCP/插件审批与许可边界、完整桌面四场景,以及规格/ADR/E2E 文档同步。
  • 真实付费模型效果评估、macOS/Linux 原生完整桌面验收;本 PR 的本地模型 fixture 与 Windows 验证不替代这些证据。
  • 为远端/Headless Host 提供自动审核执行适配;缺少能力时保持人工审批。

第二阶段:Shell 操作系统隔离(后续 PR)

  • Windows / macOS / Linux 执行隔离能力探测及实现。
  • 文件系统读写范围、网络访问策略与审批策略独立配置。
  • 沙箱权限升级与现有 Auto review/人工审批复用,不静默降级。
  • 三平台跨进程验收,以及隔离不可用时明确的产品提示和策略。

第三阶段:插件能力隔离(后续 PR)

  • 区分宿主 API 权限与插件进程能力,明确可信代码边界。
  • 文件/网络/子进程访问的可执行限制与最小能力授权。
  • 生命周期、撤销、兼容迁移及第三方插件回归测试。

第四阶段:原生 Pi 工具桥接(后续 PR)

  • 原生 Pi 内置工具通过 Desktop Host 权限入口受控执行。
  • 原生 Pi 扩展工具的身份、信任与能力注册机制。
  • 保留原生会话 JSONL 和租约语义,覆盖后续 SDK 升级兼容。

关联但独立的工作

Alternatives / 其他方案

  • 增加第四种权限模式会混淆“是否允许”和“由谁审核”,因此采用独立 reviewer。
  • 普通工具型子代理审核可能递归执行或改变被审核环境,因此采用无工具独立请求。
  • 将三平台沙箱一次性并入会显著扩大兼容和验证范围,因此分阶段交付,并明确首阶段不提供 OS 沙箱保证。

Additional context / 补充信息

验收以代表性用户路径和失败/取消路径为准,不以 UI 出现按钮或模型返回一次同意为完成标准。未完成的路线图项目持续保留,第一阶段 PR 使用 Refs 关联本 Issue,不因第一阶段合入关闭整个路线图。

Contribution / 贡献意愿

我愿意提交实现上述第一阶段的 PR,并补充相关测试和文档;后续阶段将单独实现和验证。

Activity

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions