docs(32.1): record code review disposition

This commit is contained in:
2026-10-28 17:03:08 +01:00
parent bba6539883
commit 040187deb9

View File

@@ -0,0 +1,53 @@
---
phase: 32.1
review: 32.1-REVIEW.md
titles: json
findings:
- id: CR-01
severity: critical
disposition: open
title: "An in-flight MCP allow recreates a consent the user just revoked"
- id: WR-01
severity: warning
disposition: open
title: "Clearing a declared scope does not stop `read` or `write` from implying it"
- id: WR-02
severity: warning
disposition: open
title: "`mcp_scopes` does not limit what an OAuth `read` or `write` grant can call"
- id: WR-03
severity: warning
disposition: open
title: "The consent backfill treats unusable tokens as live grants"
- id: WR-04
severity: warning
disposition: open
title: "Replacing a consent does not revoke refresh tokens that still carry the removed scopes"
- id: WR-05
severity: warning
disposition: open
title: "sm-user-plugin v0.1.16 does not require the framework version it uses"
- id: WR-06
severity: warning
disposition: open
title: "`/connect` can allow a stale request after `?request=` changes"
open: 7
total: 7
recorded: 2026-10-28T16:03:08.042Z
---
# Phase 32.1: Code Review Disposition
| Finding | Severity | Disposition | Source |
|---------|----------|-------------|--------|
| CR-01 | critical | open | - |
| WR-01 | warning | open | - |
| WR-02 | warning | open | - |
| WR-03 | warning | open | - |
| WR-04 | warning | open | - |
| WR-05 | warning | open | - |
| WR-06 | warning | open | - |
Dispositions: `open` (recorded, not yet triaged), `fixed`, `skipped`, `deferred`.
Set `deferred` by hand and put the reason in the Source cell; both are preserved. A `|` in the reason is kept as prose and escaped on the next run.
Re-running the gate keeps every row it can. A row the current review no longer reports is kept and its Source cell flagged, so a finding does not leave this record silently. ONE exception: when a finding id is REUSED by a different finding, the earlier decision cannot keep a row — the id is taken — and it is dropped. A RECORDED decision (anything but `open`) is named on the console when that happens; a row still at `open` is replaced silently, because `open` records no decision to lose.