generated from coulomb/repo-seed
80 lines
3.1 KiB
Markdown
80 lines
3.1 KiB
Markdown
---
|
||
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 (20–40 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
|