docs(hub): v0.58.0 Direction-2 wait channel — REPORT + CONTEXT (live-validated: 240s no-annotation hold, 0.047s wake, restart no-storm)

This commit is contained in:
2026-07-16 21:10:31 +02:00
parent 59eb1f836e
commit 62b73dfa18
2 changed files with 74 additions and 47 deletions
+14
View File
@@ -3,6 +3,20 @@
> Created with the REUSE.md rollout (2026-07-03). Authoritative history: `hub/CHANGELOG.md` (hub),
> `website/CHANGELOG.md`, `scripts/CHANGELOG.md`; end-of-task detail in `REPORT.md`.
- **2026-07-16 — DIRECTION-2 IMMEDIATE-SYNC SHIPPED: hub v0.58.0.** The hub→box "sync now" wait
channel (option b of `documentation/audits/SPIKE-immediate-sync-transport-2026-07-16.md`). New
`internal/intent` in-memory per-customer generation notifier (Bump/Wait/Close; coalesce-to-latest;
race-closer; in-memory by design → a restart costs one harmless full-state report, never a storm).
`GET /api/v1/wait` long-poll: per-customer only (global key 400; A can't see B), 240 s hold with a
25 s heartbeat newline that defeats nginx's 60 s `proxy_read_timeout` **without any ingress
annotation** (WriteTimeout lifted per-connection via `ResponseController`; global timeouts
untouched). Every operator-intent web handler bumps AFTER its store write (config CRUD, claim
resend, offsite re-issue/freeze, password regen, block/unblock, floors [global bumps all managed],
controller log-tail + log-bundle). `intentHub.Close()` before `server.Shutdown`. Pairs with
controller v0.140.0 (the long-poll client). The immediate-sync arc is COMPLETE for the controller
plane (Direction 1 = ctrl v0.139.0, Direction 2 = hub v0.58.0 / ctrl v0.140.0); the agent-plane
ep0-poke stays PARKED in the OOB arc. Detail: `hub/CHANGELOG.md` v0.58.0, `REPORT.md`.
- **2026-07-16 — REINSTALL ARC SHIPPED: hub v0.57.0 (F2/F3/2.3).** The clean-slate
reinstall-of-existing-customer path is now first-class (Peti R-1 prerequisite). On host-enroll's
mint path (single-bump-per-re-enroll): claim re-issue for a claimed customer (`ReissueForReenroll`,