From 5961e74bfcc0dbc7614549646900e93a3104dd63 Mon Sep 17 00:00:00 2001 From: codex Date: Mon, 6 Jul 2026 18:51:59 +0200 Subject: [PATCH] docs(CUST-WP-0054): record Phase 2 data migration evidence coulombcore frozen; pg_restore to railiance01 with exact-count gate pass. Phase 3 access rewire still pending. --- ...b-railiance01-cutover-phase2-2026-07-06.md | 62 +++++++++++++++++++ ...tion-independence-and-fleet-realignment.md | 12 ++-- 2 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 docs/state-hub-railiance01-cutover-phase2-2026-07-06.md diff --git a/docs/state-hub-railiance01-cutover-phase2-2026-07-06.md b/docs/state-hub-railiance01-cutover-phase2-2026-07-06.md new file mode 100644 index 0000000..344dd2d --- /dev/null +++ b/docs/state-hub-railiance01-cutover-phase2-2026-07-06.md @@ -0,0 +1,62 @@ +# T05 Phase 2 Evidence — Data Migration to railiance01 (2026-07-06) + +Workplan: `CUST-WP-0054-T05` +Parent runbook: `docs/state-hub-railiance01-cutover-plan.md` +`no_secret_material_recorded: true` + +## Checklist + +| Step | Action | Result | Evidence | +| --- | --- | --- | --- | +| 2.1 | Pre-freeze `pg_dump` (coulombcore) | **pass** | `/tmp/state-hub-prefreeze-20260706T165001Z.dump` (3.0 MiB) | +| 2.2 | Freeze coulombcore writer | **pass** | `deployment/state-hub` scaled to 0 | +| 2.3 | Final `pg_dump` after freeze | **pass** | `/tmp/state-hub-final-20260706T165019Z.dump` (3.0 MiB) | +| 2.4 | Restore into railiance01 `state-hub-db` | **pass** | DROP/CREATE `state_hub` + `pg_restore --role=state_hub` | +| 2.5 | Exact-count comparison | **pass** | All 7 baseline tables match ±0 | +| 2.6 | Scale railiance01 API + verify | **pass** | Forgejo `main-d1a4fcf`; `/state/health` ok | + +**Phase 2 status: complete.** Phase 3 (rewire access paths) not started. + +## Baseline counts (pre-freeze gate) + +Captured from coulombcore `state-hub-db-1` @ 2026-07-06T16:50Z: + +| Table | Count | +| --- | ---: | +| `workplans` | 640 | +| `tasks` | 4002 | +| `topics` | 14 | +| `progress_events` | 8723 | +| `token_events` | 1936 | +| `managed_repos` | 74 | +| `decisions` | 79 | + +Post-restore counts on railiance01 matched exactly. + +## Production state after Phase 2 + +| Cluster | API | DB writer | +| --- | --- | --- | +| **railiance01** | Running 1/1 (`forgejo…:main-d1a4fcf`) | **primary** (restored data) | +| **coulombcore** | Scaled to **0** (frozen, rollback-capable) | Unchanged CNPG (source dump retained) | + +Workstation `http://127.0.0.1:8000` still tunnels to coulombcore — **unreachable until Phase 3**. + +## API verification (port-forward `18081:8000`) + +```json +{"status":"ok","db":"connected"} +``` + +`GET /state/summary` totals: topics=14, workstreams=640, tasks=4002, decisions=79. + +## Rollback + +- coulombcore dump files retained under `/tmp/state-hub-*-20260706T*.dump` on workstation +- Scale coulombcore `state-hub` back to 1; do **not** delete railiance01 data until Phase 5 stabilizes + +## Next: Phase 3 + +- Repoint `state-hub-primary` tunnel → railiance01 ClusterIP `10.43.68.154:8000` +- activity-core in-cluster URL; retire `fleet-state-hub-coulombcore` +- Smoke `POST /progress/` through production path \ No newline at end of file diff --git a/workplans/CUST-WP-0054-workstation-independence-and-fleet-realignment.md b/workplans/CUST-WP-0054-workstation-independence-and-fleet-realignment.md index 01857b9..9734a90 100644 --- a/workplans/CUST-WP-0054-workstation-independence-and-fleet-realignment.md +++ b/workplans/CUST-WP-0054-workstation-independence-and-fleet-realignment.md @@ -218,12 +218,12 @@ so file writebacks no longer touch workstation paths. `fleet-state-hub-coulombcore` → `:18000`. Target hostname for sweep paths: `239.62.205.92.host.secureserver.net`. **Phase 0 preflight done** (2026-07-06): baseline counts recorded — `docs/state-hub-railiance01-cutover-preflight-2026-07-06.md`. -**Phase 1 complete** (2026-07-06): empty stack on railiance01 — CNPG `state-hub-db` -healthy, Alembic at head, `/state/health` ok, baseline tables 0 rows; Service -ClusterIP `10.43.68.154:8000`. Deploy uses `gitea…:f2e042a` workaround (Forgejo -`main-f9f0091` empty venv); rebuild before Phase 2 — -`docs/state-hub-railiance01-cutover-phase1-2026-07-06.md`. **Blocked on operator -approval** before Phase 2 freeze/restore. +**Phase 1 complete** (2026-07-06): `docs/state-hub-railiance01-cutover-phase1-2026-07-06.md`. +**Phase 2 complete** (2026-07-06): coulombcore writer frozen (Deployment 0); +`pg_dump` restored to railiance01 with exact-count match (640 wp / 4002 tasks / +8723 progress); railiance01 API on `forgejo…:main-d1a4fcf`, ClusterIP +`10.43.68.154:8000` — `docs/state-hub-railiance01-cutover-phase2-2026-07-06.md`. +Workstation `:8000` still points at frozen coulombcore until **Phase 3 rewire**. ## Task: Working-memory and sink path decoupling