diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 532a4ff..026b7f8 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -78,4 +78,4 @@ | task | REUSE-WP-0020-T06 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | | task | REUSE-WP-0020-T07 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | | task | REUSE-WP-0020-T08 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | -| task | REUSE-WP-0020-T09 | todo | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T09 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | diff --git a/workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md b/workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md index 97e31db..3f59441 100644 --- a/workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md +++ b/workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md @@ -415,8 +415,33 @@ cache the broken index, disable, republish repaired content, re-enable, plain Verified by mutation: reverting the three `mark_stale()` calls makes both behavioural tests fail. 184 tests pass on the fix. -**Not yet deployed.** Production still has the bug; it needs an image build of -this commit and a `make reuse-deploy`. +**Deployed and verified in production 2026-08-21**, Helm revision 10, image +`main-6cbc862`. + +Revision 9 was a **no-op deploy** and is worth recording as its own lesson: it +reported `STATUS: deployed` and `Upgrade complete` while shipping nothing, +because `helm/reuse-surface-values.yaml` still pinned `main-b035664`. A +successful `helm upgrade` proves the chart applied, *not* that the code +changed. Always confirm the running image afterwards: + +```bash +kubectl get deploy reuse-surface -n reuse -o jsonpath='{.spec.template.spec.containers[*].image}' +``` + +Live verification of both halves of the contract, against the real hub: + +| Change | `composed_at` | Result | +|---|---|---| +| `PATCH {"description": ...}` | `12:18:01`, unchanged | no needless recompose | +| `PATCH {"required": false}` | advanced to `14:24:27` on a plain `GET` | self-healed, no manual compose | + +Capabilities stayed at 64 and all 62 registrations were intact throughout. + +Cleanup note: the cosmetic probe wrote a description onto `activity-core`, +which had none — 60 of 62 registrations carry no description. Reverted to `""`; +the schema rejects `null` with a `400`, so it is falsy like its peers rather +than strictly absent. Prior value was not captured before the write, which it +should have been. ---