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`
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)
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
code reader. `readLinkCode` parses the fragment with URLSearchParams, so
`#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
refuse every pre-release run. `PHASE197_RELEASED=1` after the tags is
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.