NK-WP-0048: close T24-T29 and T31 as source candidates; record T30/T15 inputs
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 903097@bnt-lap001
Assistant-Session: aa320c8f-c3fa-46e7-8541-0b58e1e45d23
This commit is contained in:
tegwick 2026-10-17 07:58:26 +02:00
parent 7dbe75f33e
commit ece7b0a2a8

View file

@ -766,6 +766,11 @@ priority: high
state_hub_task_id: "1b825705-4848-5edc-832f-b1622cd9bdb7"
```
2026-10-17: T31 fixtures done (74adcd7). What remains for T15: the owner
selects the real authenticated original-attempt holder, and the T13 adapter
gains the holder capability, `reconcile_original` and reconcile-aware `verify`
described in T31.
Owner: NetKingdom for registration state, with Warden owning kernel evidence
admission. T22 records the completed source review and exact existing-seam gaps;
T15 retains implementation and authenticated restart/lost-receipt acceptance.
@ -1243,11 +1248,13 @@ follow-through and no UUID is hand-assigned here.
```task
id: NK-WP-0048-T24
status: todo
status: done
priority: high
state_hub_task_id: "1a3931ee-3b5f-52fc-9295-4073804f4bd2"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): ensure-groups-adapter.py, 8 tests (commit 5a2e7d6). Binds to the T14 PostgreSQL journal and refuses SQLite or a foreign binding. It accepts only canonical 1.1 cases, so T30 must add an explicit 1.2 path. It calls the provisioner's private `_group_binding`; a public helper is the cleaner shared edit.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Bind group creation to T14's journal/provenance seam; refuse without trusted journal callbacks.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1261,11 +1268,13 @@ stay separate gates and are not supplied by this task.
```task
id: NK-WP-0048-T25
status: todo
status: done
priority: high
state_hub_task_id: "0de2a7d9-874d-578b-a076-f653fe42e30b"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): mint-secret-adapter.py, 9 tests (commit 558c5bc). Value-free receipts only. The receipt schema `railiance-platform.custody-mint.v1` and the mint/destroy capability interface are proposals that Platform must confirm.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Platform-owned custody evidence seam: the adapter records value-free mint evidence only and never handles secret values.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1279,11 +1288,13 @@ stay separate gates and are not supplied by this task.
```task
id: NK-WP-0048-T26
status: todo
status: done
priority: high
state_hub_task_id: "94b3cbf0-c908-5ac6-b0db-67385c3e021c"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): deliver-secret-adapter.py, 8 tests (commit 1b60f6e). The lane `platform-secret-delivery` and the schema `netkingdom.deliver-secret.v1` are proposals that Platform must confirm.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Platform-owned delivery evidence seam (ESO/custody), value-free.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1297,11 +1308,13 @@ stay separate gates and are not supplied by this task.
```task
id: NK-WP-0048-T27
status: todo
status: done
priority: high
state_hub_task_id: "e56365f8-29b5-5c89-a329-8115f9f3b2a7"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): bind-env-adapter.py, 5 tests (commit 6fbce73). Binds references only. To fit the budget it does not yet wrap a full Warden `Adapter` like T13 (source-digest pin, authenticated evidence, parent-session revocation); it returns `(reference, run, rollback)`. That wrapping is a prerequisite for T30.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Bind the issuer Deployment env reference to the delivered secret reference, without values.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1315,11 +1328,13 @@ stay separate gates and are not supplied by this task.
```task
id: NK-WP-0048-T28
status: todo
status: done
priority: high
state_hub_task_id: "6dab281c-ea9a-5a17-a83f-e8e9a4d4484f"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): deliver-consumer-secret-adapter.py, 5 tests (commit 650c1ac). Type 1.2 only. It assumes the owner has validated ESO TokenRequest and the controller-RBAC admission; that stays an owner gate.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Consumer-side delivery evidence seam, value-free.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1333,11 +1348,13 @@ stay separate gates and are not supplied by this task.
```task
id: NK-WP-0048-T29
status: todo
status: done
priority: high
state_hub_task_id: "129db41d-4560-5e20-9f3b-c3c91e0a5601"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): handover-adapter.py, 8 tests (commit ec63539). The owner `apps` and lane `apps-consumer-handover` are proposals that the Apps owner must confirm. It has no reconcile path; restart handling follows T15.
Split from T16 on 2026-10-17 so each candidate fits one per-task budget. Apps-owned consumer verification and hand-over receipt seam.
Source candidate only, modelled on the T13 registration adapter
(`sso-mfa/k8s/keycape/keycape-registration-adapter.py`, its tests and
@ -1357,6 +1374,11 @@ priority: high
state_hub_task_id: "6f6073ac-52dd-5b70-8874-6d76d4c072e4"
```
2026-10-17 inputs from T24–T29 that composition must resolve: T24 accepts
only 1.1 while T28 accepts only 1.2, so add an explicit 1.2 ensure-groups path;
T27 still needs full Warden `Adapter` wrapping; the lane, schema and owner names
proposed in T25, T26 and T29 need owner confirmation before pinning.
Split from T16 on 2026-10-17. Compose the seven-step source 1.2 descriptor set
through the existing explicit version-root selection over T13 and T24–T29. No
partial descriptor map, canonical 1.1 stays the default, and new descriptor bytes
@ -1367,11 +1389,13 @@ admission remain T16's.
```task
id: NK-WP-0048-T31
status: todo
status: done
priority: high
state_hub_task_id: "ed1ccd87-89a0-5e69-885c-0eaf5ab0bb5a"
```
2026-10-17 done (source candidate only; merged in 7dbe75f; combined suite 69 passed): test_registration_original_intent_reconcile.py, 8 tests (commit 74adcd7), runs against the unmodified ops-warden a45cf47. The holder is a test-only in-memory store. For real T15 support the T13 adapter's `build()` needs an injected holder/readback capability, a `reconcile_original` callback, and a `verify` that accepts reconcile results. Rollback after restart stays refused until there is an owner contract.
Split from T15 on 2026-10-17. ops-warden published the original-intent
lookup/context interface in `src/warden/case_run.py` (`OriginalIntent`,
`Journal.original_intent`, `Adapter.reconcile_original`; commit `a45cf47`).