feat(ui): add app shell, router, and base path handling

Base path comes from BUN_PUBLIC_BASE_PATH so the same bundle serves both
a root Docker deploy and a GitHub Pages subpath.

Deviation from the task-16 brief: does not install @happy-dom/global-registrator,
does not create test/setup.ts, and does not add a [test] preload to bunfig.toml.
A global DOM preload would make src/domain/smoke.test.ts's "importable without a
DOM" assertion vacuously true, silently retiring the check that guards the
domain-layer-stays-pure invariant. Nothing in this task needs a DOM: basePath.test.ts
is pure string logic, and the shell render test was intentionally omitted by the
brief itself. A later task will register happy-dom per-file where a DOM is
genuinely required.
This commit is contained in:
Lucas Winther committed 2026-09-01 20:17:57 +02:00
1 parent 69bf4393fb
commit 7edcc7f31e
14 files changed
+168 -14

No files matched your search

+1
View File
@@ -19,6 +19,7 @@
"lucide-react": "^1",
"react": "^19",
"react-dom": "^19",
"react-router": "^8.3.1",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.4.0"
},