spaxel/docs/notes
jedarden 5c6a6924c1 docs(bf-34lwt): root-cause tokenless-sim REJECT in WS hello path
Definitive root-cause for the bf-4iewr split's first child. Confirms
against current source (with file:line citations) that:

- The token validator is wired UNCONDITIONALLY (main.go:4494)
- It reads hello.Token only (server.go:513); the sim never populates it
- The sim sends its token only as the X-Spaxel-Token header (cmd/sim
  main.go:633/scenario.go:318), and the mothership never reads that
  header (HandleNodeWS upgrades unconditionally at server.go:469) -> the
  token-supply path is currently DEAD
- The default 24h migration window (config.go:139) is the only thing
  accepting sim nodes -> current 'no reject' is a window MASK, not a fix
- REJECT fires only when the window closes (SPAXEL_MIGRATION_WINDOW_HOURS=0
  or uptime > 24h)

Corroborated by the e2e harness comment (tests/e2e/e2e_test.go:86-94)
which pins the window open and documents exactly this.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-07 06:19:29 -04:00
..
.gitkeep init: spaxel project — docs, plan, and marathon infrastructure 2026-03-26 06:43:25 -04:00
ci-test-sim-reference-map.md docs(notes): correct acceptance-test file count in spaxel-build inventory (bf-1yeh) 2026-07-04 09:36:38 -04:00
firmware-host-test-approach.md docs: decide firmware host test approach — gcc harness over ESP-IDF linux (bf-21t) 2026-07-03 06:01:55 -04:00
mdns-override.md feat(provisioning): carry ms_ip in payload for mDNS-less networks 2026-04-24 01:06:05 -04:00
recovery-mechanisms.md init: spaxel project — docs, plan, and marathon infrastructure 2026-03-26 06:43:25 -04:00
simulation-testing.md init: spaxel project — docs, plan, and marathon infrastructure 2026-03-26 06:43:25 -04:00
token-reject-root-cause.md docs(bf-34lwt): root-cause tokenless-sim REJECT in WS hello path 2026-07-07 06:19:29 -04:00
ux-visualization.md init: spaxel project — docs, plan, and marathon infrastructure 2026-03-26 06:43:25 -04:00