The hub · build status
The events platform the rest of the suite reads from. Generated from 07-delivery/BUILD-LEDGER.md, which is itself generated from files on disk in this repository and in event-clinic-app.
W1 – W18 · 18 slices
5 complete · 13 on production, no suite
W19 – W33 · 15 slices
14 complete · 1 in progress
W34 – W43 · 10 slices
2 complete · 8 on production, no suite
W44 – W49 · 6 slices
1 complete · 5 on production, no suite
| Slice | Name | Status | The ledger’s note |
|---|---|---|---|
| Phase 1 - The spine | |||
| W1 | RLS isolation test | complete | The first tenant-isolation harness. *Evidence: 1 migration, acceptance suite, 3 design docs.* |
| W2 | RLS isolation test, second pass | complete | Retires a token later suites expect to be gone, so run order matters. *Evidence: 1 migration, acceptance suite, 3 design docs.* |
| W3 | Cascade test | complete | Delete-cascade behaviour across the tenant tree. *Evidence: 1 migration, acceptance suite.* |
| W4 | Spend threshold | on production | *Evidence: 1 migration.* |
| W5 | Quote pricing | on production | *Evidence: 1 migration.* |
| W6 | Engagement bank details | on production | *Evidence: 1 migration, 1 design doc.* |
| W7 | Quote create | on production | *Evidence: 1 migration, 1 design doc.* |
| W8 | Feature category graph | on production | *Evidence: 1 migration, 1 design doc.* |
| W9 | Supplier proposed lines | on production | *Evidence: 1 migration, 1 design doc.* |
| W10 | Quote line authoring | complete | *Evidence: 1 migration, acceptance suite, 1 design doc.* |
| W11 | Unit systems | complete | *Evidence: 1 migration, acceptance suite, 1 design doc.* |
| W12 | Quote line notifications | on production | *Evidence: 1 migration.* |
| W13 | Event and event space | on production | *Evidence: 1 migration.* |
| W14 | Notification preference | on production | *Evidence: 1 migration, 1 design doc.* |
| W15 | Theme preference | on production | The first slice with a production apply script. *Evidence: 1 migration, 1 production apply, 1 design doc.* |
| W16 | Bank reference read permission | on production | *Evidence: 1 migration.* |
| W17 | Quote financial read grants | on production | *Evidence: 1 migration.* |
| W18 | User preference table | on production | *Evidence: 1 migration.* |
| Phase 2 - The MVP modules | |||
| W19 | M-01 Project | complete | app.project, the container above the event. *Evidence: 1 migration, 1 production apply, acceptance suite.* |
| W20 | M-09 Person and contact directory | complete | Delivered 2026-07-26. *Evidence: 1 migration, 1 production apply, acceptance suite.* |
| W21 | M-02 Venue directory | complete | Routes and screens over the venue / building / floor / space tree. *Evidence: 1 migration, 1 production apply, acceptance suite.* |
| W22 | M-03 Agendas and run of show | complete | The three-level tree: agenda, segment, session line item. *Evidence: 1 migration, 1 production apply, acceptance suite, 2 design docs.* |
| W23 | M-05 Workforce and shifts | complete | Eight tables. Delivered 2026-07-27. *Evidence: 1 migration, 1 production apply, acceptance suite, 1 design doc.* |
| W24 | M-04 Performers | complete | Delivered 2026-07-27. Split, and W24.1 is also on production. *Evidence: 2 migrations, 2 production apply, acceptance suite, 2 design docs.* |
| W25 | M-06 Guests and registrations | complete | Shared attendee record by flag, invitations, RSVP. *Evidence: 1 migration, 1 production apply, acceptance suite, 1 design doc.* |
| W26 | M-07 Tasks and checklists | complete | Split three ways. W26.1 unified task target search (D-385). W26.2 per-caller searchable columns (Q-246). All three on production. *Evidence: 3 migrations, 3 production apply, acceptance suite, 1 design doc.* |
| W27 | M-08 Budget and budget line item | complete | Split four ways (D-411, D-493). W27.1-.3 all on production. The cross-domain hub wired to quote lines. *Evidence: 4 migrations, 4 production apply, acceptance suite, 4 design docs.* |
| W28 | M-12 File and attachment | complete | Split four ways (D-413). The D-012 one-file model and D-016 polymorphic attachment. W28.1-.3 on production. *Evidence: 4 migrations, 4 production apply, acceptance suite, 3 design docs.* |
| W29 | M-11 Product, inventory item, asset | complete | Split three ways (D-427). The three-tier chain and its allocation. *Evidence: 3 migrations, 3 production apply, acceptance suite, 3 design docs.* |
| W30 | M-10 -> The public directory | complete | The plan says accreditation and check-in. That is not what W30 became. It is /directory/v1, the no-login surface Procurevent and the wedding portal read. No migration, because the slice adds routes, a pre-auth surface and the app_public lane only. Verified live in production. *Evidence: acceptance suite.* |
| W31 | M-13 Messaging, threads and the Inbox | complete | Split ten ways. W31 through W31.9, every one with its own production apply script. W31.4 opened tenant-private venues. *Evidence: 10 migrations, 10 production apply, acceptance suite, 1 design doc.* |
| W32 | M-14 Notifications | complete | Delivered 2026-08-01, applied to production on the owner's explicit instruction. *Evidence: 1 migration, 1 production apply, acceptance suite, 1 design doc.* |
| W33 | M-16 Dashboard roll-ups and reporting | partial | No slice was ever built. GET /dashboard/summary exists and has its own acceptance suite, but that suite's own header calls it *a correction, not a slice*. The reporting essentials have no implementation. *Evidence: 1 design doc.* |
| Phase 3 - Content, directory and import | |||
| W34 | Glossary | on production | *Evidence: 1 migration, 1 production apply.* |
| W35 | Moment framework | on production | *Evidence: 1 migration, 1 production apply.* |
| W36 | Glossary cross-references | on production | *Evidence: 1 migration, 1 production apply.* |
| W37 | Country spellings | on production | *Evidence: 1 migration, 1 production apply.* |
| W38 | Hungarian glossary | complete | 26 migrations, one per letter group. Four carry production apply scripts, and the rest were applied through them. *Evidence: 26 migrations, 4 production apply, acceptance suite.* |
| W39 | Glossary merge | on production | *Evidence: 1 migration, 1 production apply.* |
| W40 | Event wizard | complete | *Evidence: 1 migration, 1 production apply, acceptance suite, 1 design doc.* |
| W41 | IATA number and slug | on production | *Evidence: 1 migration, 1 production apply.* |
| W42 | Venue import | on production | 11 migrations. The bulk venue load, addresses and country corrections. *Evidence: 11 migrations, 1 production apply.* |
| W43 | Strategy playbooks | on production | *Evidence: 1 migration, 1 production apply.* |
| Phase 4 - Media, marketing and the siblings | |||
| W44 | Marketing plan | complete | All six steps complete. W44.1 adds marketing_plan_row.task_id, ON DELETE SET NULL. The task export is per-track and opt-in. *Evidence: 2 migrations, 1 production apply, acceptance suite, 1 design doc.* |
| W45 | Venue media | on production | 13 migrations, ending in the repoint to R2. These were the 13 missing from production at 15:20 on 2026-08-03. They have since been applied. *Evidence: 13 migrations, 1 production apply.* |
| W46 | Supplier event read | on production | Answers Mise's cross-product request. On production. *Evidence: 1 migration, 1 production apply.* |
| W47 | Dietary requirement vocabulary | on production | Migration on all three databases. The product commit carrying W47-W49 is local only and has not been pushed. *Evidence: 1 migration.* |
| W48 | Supplier programme read | on production | Migration on all three databases. Product commit unpushed, see W47. *Evidence: 1 migration.* |
| W49 | Cultural dietary restrictions | on production | Migration on all three databases. Product commit unpushed, see W47. *Evidence: 1 migration.* |
event-clinic-app/api/test/w<n>-acceptance.mjs
that exits 0 against the code as committed; a slice whose script has not
exited 0 in a single run is not complete here, whatever else was built.
22 of the 49 slices have such a suite. The other 26 are on production with nothing proving them in isolation, and the page says so rather than calling them complete. A migration reaching production is a deployment, not a proof.
cd ~/Documents/event-clinic-app/api && for f in test/w*-acceptance.mjs; do node "$f" || break; done
# 1 · API worker against LOCAL Postgres, with the demo auth bypass preview_start portal-api-demo # :8787, wrangler dev --var DEMO_AUTH:true # 2 · the portal preview_start portal-web-localpg # :5173 # measure what the three databases actually carry — never read it from a doc cd ~/Documents/ec-q341 && ./04-data-architecture/spine/migration-ledger.sh local # then dev, then prod # regenerate this ledger after building a slice cd ~/Documents/ec-q341 && python3 07-delivery/build-ledger.py
Real router paths, so every link below is a genuine deep link. Use port 5173, NOT the 5183 harness entry — the API's ALLOWED_ORIGIN is 5173, so on 5183 every tile silently renders a dash and nothing is logged. Screens need VITE_DEMO_USER set plus the portal-api-demo worker, or the auth gate holds them shut.
company_claim is the only link/checklists. One search field across all ten target types — D-385/documents. The D-012 one-file model and the D-016 polymorphic attachment/assets and /stock/where. The three-tier chain: product, inventory item, asset/quotes/new and /quotes/proposed. Quote pricing, authoring and supplier-proposed lines/numbering and /mes-maxage=900, served by the app_public role. Cache-bust when verifying a deploy or the edge will show you the old answerGET /dashboard/summary exists and has its own suite, but that suite calls itself *a correction, not a slice*. The reporting essentials have no implementation