From 90317d02a746ea3cd25021561ef40e8cd7498963 Mon Sep 17 00:00:00 2001 From: weichen Date: Mon, 19 Oct 2026 02:20:44 +0000 Subject: [PATCH] Record the L1 charter and child task registry Why: establish the initiative's charter, scope, and registered children before any implementation unit starts. Evidence: precheck receipt /tmp/iam-perm-precheck-20261019.json receipt_sha256=8ff8d4dd5f4fe50bf0b779d5de7c989c8eab122babf7bee5ba6237de8640f2af; triage receipt /tmp/iam-perm-triage-20261019.json verdict=NEW. Impact: L1 initiative charter for plan revision 3 (R1-R17, KTD1-KTD10, C01-C31); U1/U2/U3/U4/U5/U6 registered as required children; feature/iam-role-project-design (R0=3fb8210, 52 behind) explicitly deprecated. Refs: /tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md; PR #628 --- ...iam-role-permission-linked-capabilities.md | 60 +++++++++++++++---- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/.task/feature-iam-role-permission-linked-capabilities.md b/.task/feature-iam-role-permission-linked-capabilities.md index 4ad1cf76..e96facbe 100644 --- a/.task/feature-iam-role-permission-linked-capabilities.md +++ b/.task/feature-iam-role-permission-linked-capabilities.md @@ -1,6 +1,6 @@ # feature/iam-role-permission-linked-capabilities 任务卡 -任务主记录:;状态:进行中;owner:weichen +任务主记录:PR #628 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/628;状态:进行中;owner:weichen ## 基线与授权 @@ -19,13 +19,53 @@ ## 目标与非目标 -<章程:用途与目标、接纳范围与非目标、方案/计划链接、分级测试策略、验收条件、追加领域规则、生命周期。> +### 章程(charter) + +**用途与目标**:按方案 revision 3 实现「项目协作与联动权限」:全局同名业务项目唯一且所有成员共用同一规范 `projectId`;创建者能管理本人项目并加成员;有效成员自动看到同一项目并能创建本人私有对话、收发消息;同一项目两树一网(笔记树/文档树/追溯网)由有效成员关系派生完整共享读取;编辑/编制/审核/批准/发布按角色与文档职责分别判定。修复方案"Problem Frame"列出的 403 根因(隐藏管理 cap 依赖)与 ProjectMembers/ProjectMetadata 仍以 `doc.read` 为前置的耦合。 + +**接纳范围**(与方案 R1-R17 对齐): +- R1-R9:角色/账号/绑定稳定性、系统范围创建能力、联动管理资格、单一角色权威、Backend/RDM 公开提供者复用、解释/保存同源、失效与拒绝语义、迁移稳定。 +- R10-R12, R14-R15, R17:全局同名项目、不可变创建者、成员基础协作、完整两树一网共享读取、自动发现 5s 内可见。 +- R13, R16:成员加入不打断工作、关联权限不存断链。 +- 对应单元:**U1 业务能力联动(Backend)**→ **U2 单一角色权威(Backend+RDM)** → **U7 同项目两树一网完全共享(RDM+Backend)** → **U3 能力暴露与解释(Backend+RDM)** → **U4 Frontend 自动发现与联动配置** → **U5 测试与组合(Backend+RDM+Frontend)** → **U6 交付合入(host 主导)**。 +- C01-C31:见方案 Verification Contract;本卡验收以此为准,未执行时均为 NOT_RUN。 + +**非目标**: +- 账号恢复、多职位角色、Agent 权限、新工作流、生产迁移与部署、版本发布、跨实例分布式演进、生成式 UI、DHF 模板、文档生成管线(均属既有方向,已各有独立提案/任务;不在本 L1 范围)。 +- 既有 IAM U4 单角色与 U3 账号目录已合入 main 的部分不复用做修改;只在其基础上叠加业务能力联动与共享读取。 +- `feature/iam-role-project-design`(R0=3fb8210,落后 52 提交、范围与本方案不重叠)作废,不作为本 L1 子分支。 + +**分级测试策略**: +- 单元→L2(child → L1):worker 自检 + host 最小直接检查(`make test-affected`)+ 全新会话独立 Review;轻量 CI(GATE 仅 PR base 非 main 时跳过 `test-pg`/`svc-realcombo`)。 +- L1 → main:完整 CI(`test`/`test-pg`/`svc-realcombo`)#518 窗口,三段证据(precheck/task-sync/test),合入前 `make task-close SELF=1` 闭合。 +- 浏览器/双账号闭环验证 C11-C16、C19-C21、C26-C30:U5 阶段在 U4 完成后跑真实 Playwright + RDM acceptance 脚本。 + +**验收条件**:C01-C31 全部 PASS;本机 dev 实例复现原 403 已不再发生;完整双账号证据(创建→加成员→被加者登录页自动出现→本人对话收发→移除后失效)。 + +**追加领域规则**: +- 任何新代码不得绕过 `RolePolicyProvider`/`SystemActionProvider` 直接调用 `AccountRoleOf`/`RoleActionOf`(U2 修复点)。 +- 任何读写面不得以 `doc.read=true` 为前置判断"成员是否能看到项目元数据"(U7 解耦点)。 +- 任何项目内共享节点/文档/事件不得以作者、职位、发布状态、审签职责资格过滤(U7+R14 共享语义)。 +- 关联配置缺失或显式冲突必须整笔失败,不得静默允许 create 但管理断链(U1+R3)。 +- 移除/失效后服务端立即拒绝后续写,旧流重验并停止,前台 5s 内同步(U7+U4)。 + +**生命周期**:建立即开本 PR 作 [WIP] 占位;接收子任务登记;最终一次性合入 main,闭合 `.task/`、归档、回收 worktree;不接受长期 develop 分支。 + +**关联方向与规划**: +- 主记录:方案 revision 3(路径 `/tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md`,2026-10-19;review-v2.md 两次独立只读审阅已记录)。 +- 既有同向提案:`modules/documents/docs/proposals/2026-10-13-system-project-membership.md`(项目身份与成员入口)、`2026-10-15-iam-focused-role-permission-spec.md`(聚焦范围 R1-R6;本 L1 不重做)。 ## 子任务登记 -| 子任务分支 | 必需 | 状态 | PR | -|---|---|---|---| -| 待登记 | 否 | — | — | +| 子任务分支 | 必需 | 状态 | PR | 单元 | 范围摘要 | +|---|---|---|---|---|---| +| feature/iam-role-permission-linked-capabilities-u1-capability-association | 是 | 待启动 | — | U1 | Backend `internal/authz/catalog`、`internal/store/role_policy`、公开扩展 DTO;RDM `internal/perms/role_provider.go` 与创建能力判定;KTD1/KTD3/KTD4;C06/C08/C09/C10 | +| feature/iam-role-permission-linked-capabilities-u2-single-role-authority | 是 | 待启动 | — | U2 | RDM `perms_api.go`、`system_projects.go`、`plugins/rdm/{system_projects,plugin}.go`;Backend `hostcaps.go`;KTD7;C22 | +| feature/iam-role-permission-linked-capabilities-u7-canonical-two-trees | 是 | 待启动 | — | U7 | RDM `internal/projects/{projects,provisioning,projection_rename}.go`、`internal/rdmapp/{projects_api,system_projects,project_resource_authz}.go`;Backend `internal/server/{project_lifecycle,server}.go`;KTD2/KTD5/KTD6/KTD8/KTD10;C01-C05/C11-C17/C19-C21/C26-C31 | +| feature/iam-role-permission-linked-capabilities-u3-capability-exposure | 是 | 待启动 | — | U3 | Backend/RDM 解释接口、HTTP/command 错误分类、创建/添加成员/对话失败原因;KTD1/KTD2/KTD6 | +| feature/iam-role-permission-linked-capabilities-u4-frontend-auto-discover | 是 | 待启动 | — | U4 | Frontend `RolePermissionsPanel.tsx`、`AccountUsersPanel.tsx`、`adminRdmSections.tsx`、`TaskSidebar.tsx`、`App.tsx`、`store.ts`、`api.ts`、`rolePermissions.ts`、`projectmeta.ts`;KTD9;C13-C15/C19-C21/C23 | +| feature/iam-role-permission-linked-capabilities-u5-integration-tests | 是 | 待启动 | — | U5 | 复用 Backend `project_lifecycle_test.go`/`role_authorization_test.go`、RDM `system_projects_test.go`/`project_creator_permissions_test.go`/`member_guards_test.go`/`role_provider_test.go`、Frontend 角色/成员/项目测试;新增浏览器双账号场景;不搭新测试框架;C01-C31 全集 | +| feature/iam-role-permission-linked-capabilities-u6-delivery | 否 | 待启动 | — | U6 | host 主导:同步、Review、CI、PR 合入、迁移/部署按单独授权执行;更新相关旧权限/项目规格 | ## Agent 实施收据 @@ -38,8 +78,8 @@ ## 关联方向与规划 - 适用状态:待核对(无适用规划时说明原因) -- 主记录路径/版本:待核对(路径按仓库根目录定位,归档后不变;只引用唯一正文) -- 对应里程碑:待核对 +- 主记录路径/版本:方案 revision 3 `/tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md`(2026-10-19;review-v2.md 两次独立只读审阅) +- 对应里程碑:项目身份与成员协作闭环 + 业务能力联动 + 同项目两树一网完全共享 ## 需求分析 @@ -49,9 +89,9 @@ ## 方案与计划 -- 方案引用:待填写(含对象版本) -- 实施计划引用:待填写(含增量与需求 ID) -- 测试计划引用:待填写(含需求 ID 与验收条件) +- 方案引用:方案 revision 3 `/tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md`(R1-R17, KTD1-KTD10, U1-U6, C01-C31) +- 实施计划引用:方案 §"Implementation Units" U1-U6 + 本卡 ## 子任务登记 + 子任务各自的卡片 +- 测试计划引用:方案 §"Verification Contract" C01-C31;分级门禁见仓库根 `policy/delivery.md#层级任务通道与分级门禁` ## 阶段记录