docs(19.7): defer the remaining lane C re-review items

This commit is contained in:
2026-10-23 21:17:46 +02:00
parent f824d9354c
commit 4d5a09ae62

View File

@@ -258,7 +258,7 @@ was changed by the plan that recorded it.
5. then `PHASE197_RELEASED=1 bash scripts/check-phase19.7.sh --consumers` 5. then `PHASE197_RELEASED=1 bash scripts/check-phase19.7.sh --consumers`
must pass (every demo pin on its tag, no drift). must pass (every demo pin on its tag, no drift).
- `readLinkCode` accepts a valid code next to other fragment parameters (found during 19.7-09 Task 3) - `readLinkCode` accepts a valid code next to other fragment parameters (found during 19.7-09 Task 3)
status: open status: resolved (gap-closure re-review: not a defect; vue-demo-app 9c247ab pins the lenient parse)
**What:** plan 09 described "extra parameters give ''" for the link page's **What:** plan 09 described "extra parameters give ''" for the link page's
code reader. `readLinkCode` parses the fragment with URLSearchParams, so code reader. `readLinkCode` parses the fragment with URLSearchParams, so
`#code=<64 hex>&next=/x` answers the code, while an extended or foreign `#code=<64 hex>&next=/x` answers the code, while an extended or foreign
@@ -295,3 +295,56 @@ was changed by the plan that recorded it.
are deliberately unpushed until the release order runs, so it would are deliberately unpushed until the release order runs, so it would
refuse every pre-release run. `PHASE197_RELEASED=1` after the tags is refuse every pre-release run. `PHASE197_RELEASED=1` after the tags is
the release proof. the release proof.
- RC-CR-01 optional: base the session cutoff on `auth_time` (found in the gap-closure re-review, lane C)
status: open
**What:** the self-service password change now revokes every OAuth grant
as of the request (sm-user-plugin 30f7a01). The calling session's own
cutoff is still its `iat` second, so an attacker's frontend session JWT
refreshed after the victim's `iat` survives the change too. That predates
this phase; closing it means basing `tokens_valid_after` on the calling
token's `auth_time` and having `POST /refresh` and the jwt guard compare
`auth_time` with the cutoff, a change to session revocation in a core
plugin (and to how bouncer's refresh is checked) that needs its own
decision.
- RC-IN-01 nginx: keep the deprecated link GET route's code out of access logs (found in the gap-closure re-review, lane C)
status: open
**What:** sm-user-plugin 92676ba makes the show and confirm POSTs ignore
a code in the query string. `GET /_user/api/v1/backend-link/{code}` stays
for compatibility (removed only in a major release), so nginx still logs
the code if a third-party client calls it. `access_log off;` (or a
`log_format` without `$request_uri`) for
`location ~ ^/_user/api/v1/backend-link/` in the demo's nginx config is a
deploy change, made with the next demo deploy; the shipped page never
calls the GET route.
- RC-IN-06: the legacy MintAPIToken fallback is widened before the phrase-key check (found in the gap-closure re-review, lane C)
status: open
**What:** `classes.CompileAPITokenScopes` adds the declared names to the
process-wide fallback set before `bootAPITokenScopes` checks their phrase
keys, so a boot that fails on a missing key has already widened what
`MintAPIToken` accepts. Moving the add after the check needs a new
exported seam or a behaviour change of the exported
`CompileAPITokenScopes` in a core plugin; a failed boot ends the process,
so the widened set is never used in production. `MintAPIToken` is now
marked `Deprecated:` in favour of `MintAPITokenFor` (sm-user-plugin
9892404), which checks the application's own catalog.
- RC-IN-07: sm-oauthserver-plugin builds only through its workspace file (found in the gap-closure re-review, lane C)
status: open (release-time)
**What:** the plugin uses `userclasses.AccessRevokedEvent`,
`FireSubjectEvent` and `FireSubjectEventAfterCommit`, which the required
sm-user-plugin v0.1.10 lacks, so `GOWORK=off go build ./...` fails. The
release checklist for the oauthserver tag must bump `sm-user-plugin` to
the new user plugin tag and pass `GOWORK=off go build ./...` before the
tag; the requires are not bumped before the user plugin is tagged.
- Lane C re-review fixes moved the demo's oauthserver checkout (gap-closure re-review, lane C)
status: open
**What:** pier now gives a backend subject only to a grant that records
its consented administrator (`pact.MCPGrant.BackendUserID`, framework
c37c6ce), so the demo's e2e tests need the oauthserver commits that
record it. The working-tree checkout of sm-demo-app's
`plugins/golem15/oauthserver` was moved from 671513d to the canonical
b6a9586 (detached, fast-forward; the pointer stays uncommitted until the
plugin tag, as before). Canonical heads after the lane C fixes:
sm-user-plugin 9892404, sm-oauthserver-plugin 9813c1d,
vue-demo-app 9c247ab. `backend` grants issued before the oauthserver
migration `202610230001` record no administrator and stop acting as one
until the agent is connected again.