Chorus v0.21.0:项目访问控制与 Agent 运行诊断

多个团队在同一工作区开展协作时,不同项目往往具有不同的访问要求。内部工具可以向全公司开放,内部计划或客户项目则需要限定参与成员。

随着项目数量和参与角色增加,系统需要明确哪些成员可以查看、编辑和管理项目,并将相同规则应用于 Agent。

Chorus v0.21.0 引入私有项目和私有项目组,支持分级访问与权限继承,同时在会话中提供 Agent 启动和执行失败的诊断信息。

项目级访问控制

创建项目时可选择公开或私有。公开项目在同一公司范围内延续原有协作方式;私有项目依据成员授权提供访问。

私有项目支持三种成员角色:

角色权限范围
Viewer查看项目内容
Editor编辑内容、审批 Proposal、验收 Task
Admin拥有 Editor 权限,并管理成员和项目可见性

成员管理位于项目设置的 Access 页。Viewer 访问项目时,界面显示只读提示,并限制编辑操作。

Agent 继承所属用户的项目访问权限,同时仍受自身操作权限约束。项目授权与 Agent 的操作权限共同决定其可执行的操作。

访问控制覆盖项目页面、API 和 MCP 工具。搜索结果、通知和实时消息也依据当前项目权限筛选,使不同访问入口遵循一致的授权规则。

项目组成员管理与权限继承

客户交付或产品研发可能涉及多个相关项目,例如后端服务、客户端和上线准备。参与团队相同时,项目组可以统一管理成员,减少逐个配置的维护成本。

v0.21.0 为项目组增加公开与私有可见性,以及 Viewer、Editor、Admin 成员角色。组内项目实时继承组成员权限,组成员调整会影响其在子项目中的继承权限。

项目仍支持独立授权,有效权限取组权限和项目权限中的较高角色。例如,成员在组内拥有 Viewer 角色,在某个项目单独获得 Editor 授权后,即可编辑该项目。组成员变更不会移除独立的项目授权。

私有组仅包含私有项目。公开组转为私有时,其中的公开项目会同步转为私有;私有组转为公开时,子项目原有的可见性保持不变。

可见性变更及影响访问权限的项目移动,均提供访问影响预览,展示受影响人数和权限变化,并在确认后执行。私有项目脱离项目组,或删除项目组但保留项目时,现有访问权限会保留为项目授权。

项目组织调整由此具有明确的权限影响,管理员可以在操作前核对访问范围。

会话中的 Agent 失败诊断

后台 Agent 可能因命令无法启动、工作目录不可用或执行错误而停止。部分失败发生在生成回复之前,仅凭会话中的失败状态,难以判断具体原因。

v0.21.0 将启动和执行失败的诊断信息保存到对应会话轮次。聊天界面显示错误摘要,并支持展开详情,查看后端错误信息、退出码和终止信号。

未产生 Agent 回复的失败轮次也支持显示诊断。信息随会话持久化,重新打开后仍可查看。对于未保存诊断的历史失败记录,界面会明确提示缺少详情。

运行维护与升级改进

本版同时包含以下维护改进:

  • Linux daemon 持续运行:systemd 安装流程检查并尝试启用 lingering,使服务在用户退出登录后继续运行,并支持系统启动时自动运行。授权采用非交互方式并设有超时限制;权限不足时提供手动修复命令,支持通过 --no-linger 跳过。
  • 依赖与数据库迁移:更新 Next.js、React 等应用和构建依赖的安全补丁,并使 Docker 迁移工具与应用使用的 Prisma 版本保持一致。
  • 安装指引:移除安装页面、文档和旧安装入口中的过时版本固定,使普通安装命令获取最新发布版本。

通过项目与项目组授权,团队可以在同一工作区管理不同访问范围的工作。结合会话中的失败诊断,管理员能够同时掌握协作权限和 Agent 执行结果。

升级说明

自托管部署应先更新 Chorus 服务端并执行数据库迁移。已有项目和项目组在升级后保持公开。

更新 CLI 和已配置插件:

npm install -g @chorus-aidlc/chorus@0.21.0
chorus upgrade --plugins
chorus daemon restart

chorus upgrade 沿用 v0.20.0 引入的升级流程。--plugins 刷新默认 daemon 配置中登记的 Claude Code、Codex、Kiro 和 Pi 集成。Agent CLI 需单独升级;Kiro 模板由 Chorus 服务提供,因此使用 Kiro 时应先更新服务端。

六个插件与四个 npm 发布包统一使用 0.21.0 版本号。