generated from coulomb/repo-seed
Some checks failed
Test / test (push) Has been cancelled
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>
79 lines
3.1 KiB
Markdown
79 lines
3.1 KiB
Markdown
---
|
|
id: IHUB-WP-0014
|
|
type: workplan
|
|
title: "Pre-flight: Close Deployment Gaps"
|
|
domain: inter_hub
|
|
repo: inter-hub
|
|
status: done
|
|
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 ✓
|
|
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
|