Files
inter-hub/workplans/IHUB-WP-0014-pre-flight-deployment-gaps.md

80 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: IHUB-WP-0014
type: workplan
title: "Pre-flight: Close Deployment Gaps"
domain: inter_hub
repo: inter-hub
status: in_progress
owner: custodian
topic_slug: inter_hub
created: "2026-04-03"
updated: "2026-04-04"
state_hub_sync: done
state_hub_workstream_id: "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
Run `devenv up` and record all output. First run downloads Nix deps (2040 min).
Observe for compilation errors; record results.
**STATUS: PENDING — requires user to run `devenv up`.**
### 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
Verify: login works, hub list renders styled, one hub can be created, hub
dashboard loads, API v2 `/api/v2/widgets` returns `[]`.
**STATUS: PENDING — requires running app.**
## 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