feat(03-03): status strip, state cards, recenter control, boot choreography — map-first, D-09 staged states

- strip.ts: six-state lamp+word left cluster, ±M / FIX Ns AGO telemetry (U+00B1 glyph), elapsed-seconds for acquiring
- cards.ts: boot/denied/lost builders from theme classes, machine-blink gantry (500ms JS duty cycle), GEO/SYS registers from strings.ts, D-06 CTA inversion (chat-fallback=btn-primary, retry=btn-secondary)
- recenter.ts: 40x40 plate w/ >=44 hit slop, orthogonal inline-SVG crosshair, three data-attribute notch states, no inline handlers
- main.ts: boot order map->session->chain (bootMap before acquireFix), null-map guards on every map consumer, ARAHARAH-LIVE emitted outside the guard, data-map=absent fallback, localeFromInitData, ASK VIA CHAT w/ D-03 revalidation, 1s tick re-running the chain at 45s staleness
- map.ts: attribution control moved bottom-left (UI-SPEC flush chip, compact)
- shell.css: attrib chip #map-scoped override (wins cascade over maplibre css), strip left cluster, recenter z-index
- vite.config.ts: define __ARAHARAH_HARNESS__ keyed on --mode harness (bare ambient global would ReferenceError in plain dev; Rule 3)
- session.test.mjs: SESS1-4 memory-token gates
This commit is contained in:
araharah-executor
2026-10-23 00:08:34 +08:00
parent c437d312f6
commit d573acc583
9 changed files with 717 additions and 16 deletions
+11 -2
View File
@@ -1,7 +1,16 @@
import { defineConfig } from "vite";
export default defineConfig({
export default defineConfig(({ mode }) => ({
base: "/",
// 03-03: the harness constant (declared ambient in main.ts; canonical home
// is web/src/vite-env.d.ts under plan 03-04) is REAL only in --mode harness
// builds and statically false everywhere else — with a bare ambient global
// referenced in main.ts, this define keeps plain `vite dev` from throwing a
// ReferenceError while the fallback mock install there still fires via
// import.meta.env.DEV. 03-04's dual-build config keys on the same mode.
define: {
__ARAHARAH_HARNESS__: JSON.stringify(mode === "harness"),
},
build: {
outDir: "dist",
emptyOutDir: true,
@@ -11,4 +20,4 @@ export default defineConfig({
port: 5173,
strictPort: true,
},
});
}));