Record the component delivery outcome and the governance fix
Why: both components have landed, the delivery branch red-at-tip finding and the six authorization defects it exposed are the substantive result, and the admit baseline-recognition change is what unblocked the merge at all. None of that was recorded. Evidence: Backend 7158bea (Dev pin f084d10 already contains it); RDM bc8db88 via PR #460, five review rounds ending PASS, CI green; Development-Manager 2c2e372 via PR #32. Impact: task card only. Refs: Backend PR #234, RDM PR #460, Development-Manager PR #32, Dev PR #634
This commit is contained in:
@@ -49,6 +49,35 @@
|
|||||||
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|
| 时间(UTC) | 命令 | 被测HEAD | exit | 来源 | sha256(16) |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
|
|
||||||
|
## 组件交付结果(2026-10-21)
|
||||||
|
|
||||||
|
| 组件 | 状态 | 依据 |
|
||||||
|
|---|---|---|
|
||||||
|
| Backend | ✅ 已进 main(`7158bea`) | 生命周期工作已由 PR #234 合入;Dev 的 backend pin `f084d10` 已含该提交(他人推进,已核实祖先关系) |
|
||||||
|
| RDM | ✅ 已进 main(`bc8db88`) | PR #460,五轮独立 Review 终判 PASS,CI 双作业绿 |
|
||||||
|
| Frontend | ✅ 随 Dev 交付 | pin `113103f` 即 U6 交付头 |
|
||||||
|
|
||||||
|
### 交付前的真实状态(核实结论)
|
||||||
|
|
||||||
|
两个组件的交付分支**在自身顶端均为红**。Dev 的 `make test` 一直只测**钉住的旧组件**,从未测过交付分支——这正是「Dev 全绿但功能不在交付件里」能同时成立的原因。
|
||||||
|
|
||||||
|
### 修复过程中发现并闭合的授权缺陷
|
||||||
|
|
||||||
|
| 编号 | 内容 | 性质 |
|
||||||
|
|---|---|---|
|
||||||
|
| B1 | `canManageProject` 被整体替换,archive/restore 授权门被吞;两个 main 测试被反向改写成「获授者也拒绝」并注释「新旧一致」 | 越界 + 伪装成延续 |
|
||||||
|
| B2 | 已归档项目只读守卫丢失,改名/成员增删/override 全放行 | 越界(计划禁止改 archive) |
|
||||||
|
| B3 | **平台上限失效**:管理员 `SetCap` 关闭后创建者管理写入全部成功,而 member add 被拒、remove 放行 | **安全天花板被绕过** |
|
||||||
|
| F1 | 已结项项目上命令面 member-add 拒绝创建者,直接 API 却放行 | 自相矛盾(违反 R6) |
|
||||||
|
| F2 | role cap 只挡 add 不挡 remove/suspend/reactivate | 口径不一致 |
|
||||||
|
| F3 | render-profile 族允许非创建者凭 owner 标签或显式覆盖行使 `project.settings` | 违反 R3 |
|
||||||
|
|
||||||
|
结构根因:R3 把管理路径从 `evalPerm` 迁到 `requireProjectManagement` 时**逐项丢门**(先丢归档,再丢平台上限)。最终形态是两个独立维度——`managementLifecycleDenial`(归档拒绝、结项按 R6 不设)与 `managementCeilingDenial`(平台上限、role cap、联动冲突、停用、有效访问)。
|
||||||
|
|
||||||
|
### 顺带落地的治理修复
|
||||||
|
|
||||||
|
Development-Manager PR #32(`2c2e372`)为 `admit` 增加「权威基线内容认可」:暂存路径若与权威基线**逐字节相同**即免 transport。已实测生效——原本 65 个暂存路径全被拒,修复后仅 5 个需 transport,其余 60 个自动认可;最终以空合并提交记录祖先关系时 `admit: ok`,全程无 transport 妥协。
|
||||||
|
|
||||||
## 结果与验证(完成后填写)
|
## 结果与验证(完成后填写)
|
||||||
|
|
||||||
- 结果:
|
- 结果:
|
||||||
|
|||||||
Reference in New Issue
Block a user