Skip to content

Multica Session Records — UUID Migration

Condensed record of nine archived Multica task sessions (CTC-1 through CTC-9). The full session transcripts, chat logs and raw attachments were deleted after this summary was written; this page is the surviving record of what that work was.

The question this section answers: What did the parallel Multica agent sessions actually do, and what is left open? · 1 document

Scope Of The Archived Sessions

Session Subject
CTC-1 Prepare the current Hub source for operational use — full check and remediation
CTC-2 Investigate the CTC workspace state, Git state and authority routing
CTC-4 Parent tracking issue for per-table UUID test and review closure
CTC-5 UUID test lane A
CTC-6 UUID test lane B
CTC-7 UUID test lane C
CTC-8 UUID test lane D
CTC-9 NS1-009 T009 — current UUID relation and behaviour verification

All of these belong to one body of work: the NS1-009 row and relation UUID migration.

What The Work Was

Row UUID constraints. General tables already carried a row UUID column. What was missing was mostly NOT NULL and single-column UNIQUE. The user directed that schema completion be prioritised over logic changes, so nullable-then-unique was not accepted as the end state.

  • Applied across Hub 61 and Production 63 tables.
  • Existing UUID values and numeric compatibility keys were preserved, not rewritten.
  • Rows whose real parent does not exist — 20,402 Delivery rows — were kept NULL rather than being given an invented parent.

Relation UUID columns. A first pass judged completion by row UUIDs alone and was withdrawn. Every *_ID candidate in the live databases was then reclassified by what the column actually relates to.

  • Confirmed TENANT_ID gaps: Hub 80, Production 81, plus one Hub Control Tower DEPLOYMENT_UUID.
  • Columns that merely end in _ID but hold external identifiers or code values were excluded.
  • File metadata columns and indexes were applied additively in the same scope.
  • Existing relation values were not changed.

Per-table verification. Roughly 106 tables were tracked through test and review, split into four parallel worker lanes so no two lanes owned the same table.

Lane Tables
A T001, T005, T009 … T105 (stride 4)
B T002, T006, T010 … T106 (stride 4)
C T003, T007, T011 … T103 (stride 4)
D T004, T008, T012 … T104 (stride 4)

Lane discipline was explicit: one worker run and one reviewer run per lane, results appended to the existing comment rather than opening a new run or a new issue per table, and work stopped once every remaining item had a concrete blocker.

One worked example. NS1-009 T009 covered AR billing global accessorial rates, spanning the Legacy owner app/systems/BMS/ar-billing/global_accessorial_rate_helper.php and the New-System store new-system/packages/db-mysql/src/billing/global-accessorial-rates-store.ts. It was reassigned twice because of a staged-file conflict and three concurrent lanes, then parked in backlog until a lane slot freed.

Decisions Of Record

Date Decision
2026-09-28 Schema completion takes priority over logic; row UUID NOT NULL and UNIQUE are required, not optional follow-up
2026-09-28 Preserve existing UUID values and numeric compatibility keys
2026-09-28 Exclude the 16 _bak_ns1009A_* Hub snapshot tables — they are retained backups, not application tables
2026-09-28 Treat row UUID and relation UUID as separate units of work with separate verification
2026-09-28 Classify every *_ID by relation meaning; a numeric identifier is not a parent reference
2026-09-28 Hub becomes the source-of-truth for operational preparation, replacing the local source
2026-09-29 Remove NS_*-only table dependencies from the Legacy runtime

What Was Not Completed

Preparation for operational use is not deployment. None of the following was achieved, and none of it should be inferred from the sessions above.

  • No Production New-System build, install, restart or reload was performed.
  • No Git promotion or release was executed.
  • Foundation delivery scale checks failed because the shared working tree exceeded the limit.
  • Port 3000 was still serving a previous release, and the local database had no isolated verification schema, so browser and write acceptance against current source was never run.
  • Backfill of new relation columns on existing rows, and writer/reader, test and deployment compatibility for those columns, were left for separate verification.
  • The NS1-016 migration's removal of the file-object tables was explicitly out of scope.

Source Of Record

Task execution records and worksheets live in the repository under new-system/docs/tasks/, not here. This page records what the archived sessions did and what they left open; it does not replace the repository Task record.