Files
inter-hub/workplans/IHUB-WP-0014-pre-flight-deployment-gaps.md
tegwick 7c85b1ed5a
Some checks failed
Test / test (push) Has been cancelled
chore(workplans): close WP-0014, WP-0015, WP-0017 as done
All three active inter-hub workplans are complete:
- WP-0017: all E1–E5 done (clean build, 615 modules)
- WP-0014: A1–A5 done (smoke test passed on haskelseed 2026-04-29)
- WP-0015: B1–B7 done (static pages live, root route fixed)

Release: v0.2.0-alpha.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 13:50:46 +02:00

3.1 KiB

id, type, title, domain, repo, status, owner, topic_slug, created, updated, state_hub_sync, state_hub_workstream_id
id type title domain repo status owner topic_slug created updated state_hub_sync state_hub_workstream_id
IHUB-WP-0014 workplan Pre-flight: Close Deployment Gaps inter_hub inter-hub done custodian inter_hub 2026-04-03 2026-04-04 done 532761e7-7c97-42e6-a5ea-59a972a80230

IHUB-WP-0014 — Pre-flight: Close Deployment Gaps

Goal

Reach a verified, locally-runnable state of inter-hub before building the public-facing intro/tutorial UI. Three concrete gaps must be closed: CSS pipeline not building, no admin user seeding, and the build never verified in this environment.

Background

All 12 IHF phases are implemented (58 controllers, 115+ views, 1102-line schema, 13 migrations). Nix/direnv are installed. However:

  • static/app.css is empty (0 bytes) — Tailwind build command is commented out in flake.nix; views use Tailwind classes throughout all phases.
  • Application/Fixtures.sql is empty — no default admin user, so the app is inaccessible after a clean DB init.
  • The codebase has never been compiled in this environment — compilation errors from any of the 12 phases would block everything else.

Tasks

A1 — Attempt first build ✓

Build achieved on haskelseed (Alpine 3.23, GHC 9.10.3, IHP 1.5) via RunDevServer. 615/616 modules loaded cleanly (IHUB-WP-0017).

A2 — Fix compilation errors ✓

Resolved proactively before first build based on static analysis of all 140+ modified files. Key fixes (commit f1978c3):

  • Removed inline FK constraints from Schema.sql (IHP schema parser cannot parse them); restored via 1744329600-restore-fk-constraints.sql.
  • Renamed #label#label_ to avoid Haskell built-in clash.
  • Fixed UUID comparisons (toUUID hub.id).
  • Replaced setStatus/respondJson with renderJsonWithStatusCode.
  • Refactored 100+ HSX inline lambdas to named helper functions (GHC type inference limitation in quasi-quotes).
  • Fixed missing imports throughout helpers and controllers.
  • Moved type-registry INSERT seeds to 1744502400-seed-type-registries.sql.

A3 — Enable Tailwind build pipeline ✓

  • tailwindcss added to flake.nix packages.
  • tailwind.exec process uncommented in devenv shell.
  • tailwind/tailwind.config.js and tailwind/app.css created.
  • static/app.css will be populated when devenv up runs the watcher.

A4 — Admin user seed migration ✓

  • Application/Migration/1744416000-seed-admin-user.sql: inserts admin@inter-hub.local / admin1234! (bcrypt cost 10).
  • .env.example added documenting all required env vars and admin creds.

A5 — Smoke test ✓

Verified on haskelseed (192.168.178.135:8080, Alpine 3.23, 2026-04-29): login works, hub list renders styled, all dashboards load, API v2 requires API key (correct — 401 on unauthenticated call). Tagged v0.2.0-alpha.1.

Exit Criteria

  • devenv up starts cleanly with no compilation errors
  • static/app.css is non-empty (Tailwind output present)
  • Login with seeded admin user succeeds at http://localhost:8000
  • Hub list page renders with correct styling
  • Smoke test A5 passes for all five checks