Merge parent initiative feature/iam-role-permission-linked-capabilities into the task branch

Why: include the current parent initiative baseline before verification.

Evidence: resolved feature/iam-role-permission-linked-capabilities=a99dbfcd9ac48d09038c76e09dc59e074c11ab7d.

Impact: integrate parent initiative changes without rewriting task history.

Refs: task-sync
This commit is contained in:
2026-10-19 03:17:43 +00:00
3 changed files with 246 additions and 2 deletions
@@ -0,0 +1,146 @@
# feature/iam-role-permission-linked-capabilities-u1-capability-association 任务卡
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 7716b28cfff5200e7cfe9ec75aff5bcd71b234ed
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-iam-role-permission-linked-capabilities(worktree);分支:feature/iam-role-permission-linked-capabilities
- 分支类型:child;initiative_id:feature-iam-role-permission-linked-capabilities;root_target:main;immediate_target:feature/iam-role-permission-linked-capabilities;accepting_requirements:false;parent_branch:feature/iam-role-permission-linked-capabilities;parent_head_sha:90317d02a746ea3cd25021561ef40e8cd7498963;parent_pr:PR #628
- 授权与交付终点:在 `feature/iam-role-permission-linked-capabilities` 之上按方案 U1 修改 Backend 与 RDM 公开能力文件,实现业务能力联动(R3/R6/R16, KTD1/KTD3/KTD4),交付到 L1 initiative 分支;不开 PR、不入 main。
- 当前实际交付:Backend L1 子分支 `feature/iam-link-u1-capability-association` @ `afb65c5678d8e17544f045ef7143866ffdc703e3` 已推送(Agent-System-Backend 远端);RDM `role_provider.go` 迁移按方案依赖链留待 U2。
- 交付模式:goal-first(目标、范围和交付终点一次确认;范围内连续推进)
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 人工决策点:仅限目标/范围/验收变更、重大取舍、高后果操作或无法自动判定的业务验收
- 当前阶段:需求拆解;当前增量:U1 capability-association
- 流程依据:仓库根目录 policy/delivery.md(归档后仍按仓库根目录定位);父 L1 charter 见 `.task/feature-iam-role-permission-linked-capabilities.md`
## 目标与非目标
**目标**:实现"创建能力开启即联动获得本人项目管理资格"的业务能力关联规则;服务端原子展开、保存校验、HTTP/command 同一服务端关联规则;显式冲突整笔拒绝;关闭创建能力不破坏已有项目。
**范围**:
- Backend `internal/authz/catalog/catalog.go`:仅在必要时新增 `project.work` 等用于基础协作判定的描述项;不引入与方案 §"Capability Association Map" 不一致的描述。
- Backend `internal/store/role_policy.go`:扩展 `ReplaceRolePermissions`、`ReplaceSystemGrants`、`ImportRoleAuthority`、`ActivateRoleAuthorityImport` 使其在同一事务内做"业务能力关联"校验;提供导出给 RDM/Backend Host 的联动投影。
- Backend `internal/authz/service.go`:扩展 `AuthorizeSystem` 与必要新方法(`EffectiveLinkedCapabilities` 等),使 actor 在持有 `project.create` 时自动获得本人项目管理资格所需能力;不再要求 actor 通过 `RolePermissionAllowed` 逐项补齐(保留显式拒绝与平台硬禁止)。
- Backend `pkg/extension/`:在 `RolePolicySnapshot` 等公开 DTO 暴露联动结果、关联来源与差异。
- RDM `internal/perms/role_provider.go`:把 RDM 端的创建能力判定迁移到消费 Backend 的公开 `RolePolicyProvider`/`SystemActionProvider`,不再自构;保留旧动作名通过映射消费。
- 测试:复用既有 `internal/store/role_policy_test.go`、`internal/server/role_authorization_test.go`、`internal/authz/catalog/catalog_test.go`,增加新表(创建能力联动:仅 create=true ⇒ 完整管理;显式冲突/平台禁止/版本冲突 ⇒ 整笔拒绝;直接系统 grant 无职位 ⇒ 同源闭环;仅关闭未来创建不影响现存)。
**非目标**:
- 不触动 U2 单一角色权威的 `AccountRoleOf/RoleActionOf` 切换分支(U2)。
- 不触动 RDM `project_resource_authz.go` 中两树一网共享语义(U7)。
- 不引入新数据库表;只在既有 `role_permissions` / `system_grants` 上做一致性校验与联动。
- 不引入通用权限引擎;保留既有 `allowed/capAllowed` 二元语义。
- 不引入前端改动(U4)。
- 不部署、不写生产数据。
**验收条件**:方案 C06/C08/C09/C10 全部 PASS;既有 C01-C05、C22、C24-C25 在 U2/U7/U5 阶段完成,本单元独立验证上述子集与既有测试不退化。
## 关联方向与规划
- 适用状态:已核对
- 主记录路径/版本:方案 revision 3 `/tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md`(U1)
- 对应里程碑:业务能力联动 + 单一角色权威(U1→U2 顺序)
## 需求分析
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|---|---|---|---|---|---|---|
| U1-R1 | 创建能力联动管理资格(R3/KTD1) | 既有 `RolePermissionAllowed`、`AuthorizeSystem` 已能逐项判定;缺联动投影与保存校验 | P0 | `ReplaceRolePermissions` 允许 `project.create` 单独 true 且其他管理能力为 false 时联动补齐;actor 视角下管理资格可见 | U1-impl | 纳入 |
| U1-R2 | 服务端同源校验(R6/KTD4) | 既有 `RequireRoleAuthorityWritableTx` 已保证权限回写一致性;缺业务能力一致性 | P0 | 同一事务内发现冲突 ⇒ `ErrInvalidRolePolicy`;HTTP/command 写入口(`internal/server/roles_test.go`)消费同一校验 | U1-impl | 纳入 |
| U1-R3 | 系统授权来源联动(KTD3) | `SystemGrantAllowed` 已存在;缺"无职位直接 grant project.create"的联动 | P0 | 直接 `ReplaceSystemGrants` 注入 `project.create` ⇒ 同时获得管理资格;与角色路径同源 | U1-impl | 纳入 |
| U1-R4 | 关闭创建保留现有(R7/KTD4) | 既有 `RequireRoleAuthorityWritableTx` 不区分未来/历史 | P0 | 关闭 `project.create` 不删除既有 `project.settings` 等行;显式记录差异 | U1-impl | 纳入 |
| U1-R5 | 解释区分关联/禁止/失效(R9) | 现有 `Decision.Source/Reason` 已存在分类;缺联动投影字段 | P1 | `RolePolicySnapshot` 与决策返回新增 `LinkedSources/ConflictSources`;管理者可见其影响范围 | U1-impl | 纳入 |
| U1-R6 | RDM 端消费 Backend 公开能力(KTD7) | RDM 端 `perms_api.go` 仍按旧 rdm.db 角色判定 | P0 | RDM 创建能力判定不再读 rdm.db 角色表;改用 Backend 公开 provider | U1-impl → U2 | 纳入 |
## 方案与计划
- 方案引用:方案 revision 3 §"Implementation Units > U1" + §"Capability Association Map" + KTD1/KTD3/KTD4
- 实施计划引用:本卡 ## 需求分析(U1-R1..U1-R6);Agent 实施收据(每次 attempt 一行)
- 测试计划引用:方案 C06/C08/C09/C10 + 既有 `role_policy_test.go`/`role_authorization_test.go`/`catalog_test.go`/`project_creator_permissions_test.go`/`role_provider_test.go` 不退化
## 阶段记录
| 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 |
|---|---|---|---|---|---|
| 需求拆解 | 本卡 | 已完成 | host | 2026-10-19 | L1 charter U1 章程 + 方案 U1 |
| 需求评估 | 本卡 | 已完成 | host | 2026-10-19 | 既有代码 F1/F4/F6 证据 |
| 需求表确认 | 本卡 | 已完成 | host | 2026-10-19 | U1-R1..U1-R6 |
| 方案设计 | 本卡 + 单元包 JSON | 已完成 | host | 2026-10-19 | KTD1/KTD3/KTD4 |
| 实施计划 | 单元包 JSON | 已完成 | host | 2026-10-19 | allowed_paths/verification/timeout_seconds |
| 实施与自检 | Backend `afb65c5` (transport `dd2fa5d8…/4fd52114d316`) | 已完成 | cursor-agent-stable | 2026-10-19 | `scripts/agent-exec run` terminal_status=success,11 文件改动全在 allowed_paths |
| 正式测试与验收 | Backend `afb65c5` SELF | PASS | host | 2026-10-19 | `make evidence` exit=0,5 个 package all-ok;6 项能力联动测试 + 1 项 HTTP 测试 PASS |
| 代码 Review | 待独立会话 | 待执行 | — | — | fresh session, `--role review` |
| 合入 | 待 host | 待执行 | — | — | `make task-sync` + Backend→Dev gitlink bump |
| 合入核验与收口 | 待 host | 待执行 | — | — | L1 PR #628 base gate |
## 探索试验与迭代
| 增量/试验 | 假设 | 范围 | 判断和停止条件 | 授权/决策依据 | 结果 | 变更影响 | 需重审补测 |
|---|---|---|---|---|---|---|---|
| 待定义 | — | — | — | 待核对 | NOT_RUN | 待评估 | 待评估 |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | 90317d02a746ea3cd25021561ef40e8cd7498963 | 90317d02a746ea3cd25021561ef40e8cd7498963 | 2026-10-19T02:30:00Z |
## 证据(Evidence)
<!-- CMD="<命令>" make evidence 写入;手抄/转写输出视为无效证据(AGENTS.md 证据与验证门禁)。 -->
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## Agent 实施收据
路由与 fail-stop 规则见根目录 AGENT-EXECUTION.md 与 policy/delivery.md;每次尝试一行,原始日志留在源码外收据路径。
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|---|---|---|---|---|---|---|---|---|---|---|
| iam-link-u1 | Backend authz/catalog + role_policy + service + extension DTO + RDM role_provider | AGENT-EXECUTION.md digest=6c019595 (Dev), digest=76bc59db… (Backend dispatch repo pin) | implementation | [cursor, antigravity, pi] | 1 | cursor-agent-stable 2026.10.14-0f9edde | completed (success) | refs/agent-exec/dd2fa5d8f3774523c4c97a4afaa4360d/4fd52114d316 → Backend commit afb65c5678d8e17544f045ef7143866ffdc703e3 | 否 | /tmp/iam-link-u1-run.json (receipt_sha256=… see file) |
## 交付调度
- 调度状态:未入队;调度记录:无
- entry_id:无;attempt_id:无;窗口执行者:无
- 固定候选:无
- 调度依据:policy/delivery.md#合入调度
## 结果与验证(完成后填写)
- 结果:Backend 端 U1 实现成功(11 文件,767+/7-)。RDM 端 `internal/perms/role_provider.go` 与 `system_projects.go` 中的创建能力联动迁移留待 U2,按方案依赖链 U1→U2。
- 验证:PASS
- C06 创建者自动管理:实现于 `internal/store/role_policy.go` 的 `validateCapabilityAssociation` + `CapabilityAssociation` 投影;HTTP `TestProjectCreateLinksOwnProjectManagementOverHTTP` 验证。
- C08 关联配置完整:`ReplaceRolePermissions`、`ReplaceSystemGrants`、`ImportRoleAuthority`、`ActivateRoleAuthorityImport` 同一事务调用 `validateCapabilityAssociation`;冲突整笔返回 `ErrInvalidRolePolicy`(含 wrapped `ErrRolePolicyVersion`/`ErrRolePolicyRoleMissing`)。
- C09 上限与授权来源:`AuthorizeSystem`(`internal/authz/service.go`)现在既消费 system_grant 也消费角色权限;无职位直接系统 grant 闭环由 `TestLinkedCapabilitiesSystemGrantWithoutRoleClosesLoop` 验证。
- C10 关闭创建的含义:`TestCapabilityAssociationDisablingProjectCreateKeepsLinkedRows` 验证仅关闭 `project.create` 不删除既有 `project.settings` 等行;`PolicyReceipt.MigrationNote` 记录差异。
- 既有 IAM U4 测试:`internal/authz/catalog`、`internal/store`、`internal/server`、`pkg/extension` 全 ok(8.4s + 25.0s + 4ms + 4ms)。
- go vet ./... exit=0;git diff --check exit=0。
- 影响与剩余项:
- RDM 侧 `internal/perms/role_provider.go` + `plugins/rdm/{system_projects,plugin}.go` 切换到消费 Backend 公开 provider 属于 U2 范围。
- L1 端需要 host 后续 bump Dev `modules/backend` gitlink 到 `afb65c5` 并在 Dev 仓组合测试。
- 独立 Review 待 fresh session 执行 `--role review`。
## 规划进展与下一步
- 本次推进/剩余:实施单元未启动
- 首选下一任务:U2 single-role-authority
- 推荐依据:方案依赖链 U1→U2→U7→U3→U4→U5→U6
- 前置条件/待确认:U1 终态为 completed(有效 transport 收据)且独立 Review 通过
- 预期产物/验收条件:Backend 联动能力 + RDM 改消费 Backend 公开能力;既有测试不退化
- 重复任务核对:未重复
- 启动授权:已授权(用户回复"同意"对应本卡父 L1 charter)
## 合入与清理
- Review 记录:NOT_RUN
- 冲突记录:NOT_RUN
- CI 记录:NOT_RUN
- 合入记录:NOT_RUN
- 清理记录:NOT_RUN
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
@@ -0,0 +1,98 @@
# feature/iam-role-permission-linked-capabilities-u2-single-role-authority 任务卡
任务主记录:<PR 链接,交付前填写>;状态:进行中;owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 7716b28cfff5200e7cfe9ec75aff5bcd71b234ed
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-iam-role-permission-linked-capabilities(worktree);分支:feature/iam-role-permission-linked-capabilities
- 分支类型:child;initiative_id:feature-iam-role-permission-linked-capabilities;root_target:main;immediate_target:feature/iam-role-permission-linked-capabilities;accepting_requirements:false;parent_branch:feature/iam-role-permission-linked-capabilities;parent_head_sha:f23ce7bf6035d11ab4b0bb45002d4b08dac5f71f;parent_pr:PR #628
- 授权与交付终点:按方案 U2 在 `Agent-System-RDM` 仓修复单一角色权威与请求上下文,实现 R5/R7 与 KTD7;不开 PR、不入 main。
- 交付模式:goal-first
- 实施执行:agent-per-unit(配置:AGENT-EXECUTION.md)
- 合入执行:agent(已授权交付范围内,Review 通过、冲突解决且当前 HEAD 的 CI 通过后合入)
- 当前阶段:实施单元待派发
- 流程依据:仓库根目录 policy/delivery.md;父 L1 charter 见 `.task/feature-iam-role-permission-linked-capabilities.md`
## 目标与非目标
**目标**:让 RDM 把所有权限/角色权威来源统一到 Backend 的公开 provider(`extension.RolePolicyProvider`、`extension.SystemActionProvider`),不再有 rdm.db 内的角色权威;统一 `ErrRoleAuthorityMoved` 语义;ready/legacy 转换、首次直接 HTTP、无预热命令、停用绑定、schema 错、缺提供者、actor 错都有明确判定,禁止回退旧权威。
**范围**:
- `internal/perms/{role_provider,role_migration,roles,system,perms}.go`:扩展 `RoleAuthority` 覆盖所有 system/project 动作;让 `AccountRoleOf`/`RoleActionOf` 在 rdm.db 不可用时返回 `ErrRoleAuthorityMoved`。
- `internal/rdmapp/{perms_api,system_projects,member_search}.go`:把所有 `ps.AccountRoleOf`/`ps.RoleActionOf` 调用替换为基于 `RoleAuthority` 的请求上下文读取。
- `plugins/rdm/{system_projects,plugin}.go`:插件入口同样走 `RoleAuthority`。
- 测试:复用 `internal/perms/role_migration_test.go` 与 `internal/rdmapp/system_projects_test.go`/`project_creator_permissions_test.go` 等既有表,加新表覆盖 ready/legacy/首 HTTP/无 warmup/停用绑定/schema 错/缺提供者/actor 错。
**非目标**:
- 不编辑 Backend / Frontend / Documents / Dev。
- 不引入新数据库表。
- 不删除 `AccountRoleOf`/`RoleActionOf` 符号本身(保留返回 `ErrRoleAuthorityMoved` 便于审计)。
- 不削弱既有拒绝。
- 不引入通用权限引擎。
**验收条件**:方案 C22 + 既有 C01-C05/C08/C09/C24 不退化;新表覆盖上述七类场景全 PASS。
## 关联方向与规划
- 主记录:方案 revision 3 `/tmp/iam-role-permission-plan-20261019-sqfu_4g4/plan.md`(U2)
- 前置:U1 capability-association(Backend L1 afb65c5;尚未合入 main)
## 需求分析
| ID | 描述 | 项目符合度及依据 | 优先级 | 验收条件 | 依赖 | 结论 |
|---|---|---|---|---|---|---|
| U2-R1 | RDM 不再有本地角色权威 | 既有 `internal/perms/roles.go:207/239` 的 `AccountRoleOf`/`RoleActionOf` 仍读 rdm.db | P0 | 这两个函数都返回 `ErrRoleAuthorityMoved`;所有调用方改用 `RoleAuthority` | U1 | 纳入 |
| U2-R2 | ready 后只用 Backend 公开 provider | `internal/perms/role_provider.go` 已能用 `RoleAuthority.PolicyForUser`;调用方不统一 | P0 | 全部 HTTP/command/plugin 入口在 Backend ready 时直接走 provider | U1 | 纳入 |
| U2-R3 | 显式失败而非回退 | legacy 路径目前走 rdm.db,未必全部报错 | P0 | legacy 路径仍报 `ErrRoleAuthorityMoved`;不静默 fallback 到旧表 | U1 | 纳入 |
| U2-R4 | 错误分类 | 已存在 `ErrRoleAuthorityMoved`/`ErrRoleProviderUnavailable`/`ErrRoleProviderVersion` | P0 | 七类场景各自返回对应 error,错误消息可读 | U1 | 纳入 |
| U2-R5 | HTTP 与 command 一致 | `internal/rdmapp/perms_api.go` 多处入口 | P0 | 同一 actor 的同一动作在 HTTP 与 command 上结果一致;用相同 `RoleAuthority` 实例 | U1 | 纳入 |
## 阶段记录
| 阶段 | 对象版本 | 状态 | 决策/执行者 | 时间 | 依据 |
|---|---|---|---|---|---|
| 需求拆解 | 本卡 | 已完成 | host | 2026-10-19 | 方案 U2 + 既有源码 |
| 需求评估 | 本卡 | 已完成 | host | 2026-10-19 | `AccountRoleOf/RoleActionOf` 调用点搜索 |
| 需求表确认 | 本卡 | 已完成 | host | 2026-10-19 | U2-R1..U2-R5 |
| 方案设计 | 单元包 JSON | 已完成 | host | 2026-10-19 | KTD7 |
| 实施计划 | 单元包 JSON | 已完成 | host | 2026-10-19 | allowed_paths/verification/timeout_seconds |
| 实施与自检 | 待 worker | 待执行 | — | — | `scripts/agent-exec run` |
| 正式测试与验收 | 待 worker 自检 + host 验证 | 待执行 | — | — | C22 + 新表 |
| 代码 Review | 待独立会话 | 待执行 | — | — | fresh session, `--role review` |
| 合入 | 待 host | 待执行 | — | — | RDM L1 PR + transport apply + Dev gitlink bump |
| 合入核验与收口 | 待 host | 待执行 | — | — | L1 PR #628 base gate |
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | f23ce7bf6035d11ab4b0bb45002d4b08dac5f71f | f23ce7bf6035d11ab4b0bb45002d4b08dac5f71f | 2026-10-19T03:30:00Z |
## 证据(Evidence)
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|---|---|---|---|---|---|
## Agent 实施收据
| 单元 ID | 预期范围 | 配置摘要 | 角色 | 候选顺序 | attempt | CLI/模型 | 终态 | transport | fallback | 源码外收据路径 |
|---|---|---|---|---|---|---|---|---|---|---|
| iam-link-u2 | RDM `internal/perms`、`internal/rdmapp/{perms_api,system_projects,member_search}`、`plugins/rdm/{system_projects,plugin}` | AGENT-EXECUTION.md digest=bd3a7de57a3a9e1a4495b94c5fa5c08d71e7be8c (RDM dev-manager pin) | implementation | [cursor, antigravity, pi] | 1 | 待记录 | 待记录 | 待记录 | 否 | 待记录 |
## 结果与验证(完成后填写)
- 结果:
- 验证:PASS/FAIL/SKIP/NOT_RUN 逐项
- 影响与剩余项:
## 合入与清理
- Review 记录:NOT_RUN
- 冲突记录:NOT_RUN
- CI 记录:NOT_RUN
- 合入记录:NOT_RUN
- 清理记录:NOT_RUN
<!-- Local receipt: SELF. Digests detect corruption; they do not authenticate a reviewer or CI. -->
@@ -59,8 +59,8 @@
| 子任务分支 | 必需 | 状态 | 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-u1-capability-association | 是 | 已完成(Backend 子分支 afb65c5 推送,Dev gitlink bump 待 host;独立 Review 待 fresh session) | —(child 不开 PR) | 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 | 是 | 已登记卡片,待 agent 派发 | —(child 不开 PR) | 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 |