Verify T09 in production (Helm revision 10, main-6cbc862)
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
ci / validate-registry (push) Successful in 1m16s

A registration change now self-heals: PATCH of a composition field advances
composed_at on the next plain GET, while a description-only PATCH leaves the
cache alone. Both confirmed against the production hub.

Record the revision 9 lesson: it reported STATUS: deployed and Upgrade
complete while shipping nothing, because the values file still pinned the
previous tag. A successful helm upgrade proves the chart applied, not that the
code changed -- confirm the running image afterwards.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-08-21 16:26:21 +02:00
parent 6cbc862371
commit 390b0b9bab
2 changed files with 28 additions and 3 deletions

View file

@ -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 |

View file

@ -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.
---