Commit Graph

8 Commits

Author SHA1 Message Date
L'électron rare ce40fa93c1 feat: add ride progression store and inputs
Implement ride progression logic with pure functions
(clamp01, ease, activeStop), Zustand store for state
management, and React input hook for wheel/keyboard/touch.
2026-07-09 11:19:52 +02:00
L'électron rare 4436877e45 feat: semantic fallback page with rel=me injection
Add a Vite plugin that renders bio, links and greetings from the
Task 2 content modules into the raw served index.html at build
time, so non-JS clients (Mastodon's rel=me verifier included) see
real content and the mastodon.saillant.cc/@clement rel=me anchor.

Hide the fallback for sighted users once the 3D demo boots, but
keep it in the accessibility tree. Add @types/node so tsc can
type-check the node:fs import in the new test.
2026-07-09 11:12:28 +02:00
L'électron rare 017ffe0cf3 feat: wire real bandcamp listen url 2026-07-09 11:08:46 +02:00
L'électron rare 36cb91ccf5 feat: add content config as single source of truth
Implement content modules (links, bio, greetings, music, stops) as a
single source of truth for the UI, HUD, and 3D scene. All content is
defined in TypeScript with interfaces for type safety.

The Bandcamp URL for L'Électron Fou is not available yet, so the music
module defaults to the Mastodon profile URL as a fallback (per spec).
Update this URL when the Bandcamp page is created.
2026-07-09 11:04:54 +02:00
L'électron rare 47e7b67015 chore: ignore typescript build cache 2026-07-09 11:01:40 +02:00
L'électron rare 96c3062662 chore: scaffold vite react-three project
Establish initial project structure for LE BUS (clement.saillant.cc),
a demoscene-style personal identity hub built with Vite, React, and
react-three-fiber.

Changes:
- Add package.json with dependencies (React 19, Three.js,
  react-three/fiber, zustand, playwright for e2e)
- Add tsconfig.json with ES2022 target and react-jsx support
- Add vite.config.ts with React plugin
- Add minimal index.html, src/main.tsx, and src/style.css
- Add README.md with usage commands
- Add .gitignore (node_modules, dist, test artifacts, .DS_Store)
- Generate package-lock.json via npm install

Note: chiptune3 removed from dependencies (not on npm registry;
will be isolated behind src/audio/modPlayer.ts in Task 11 with mocks).

Build and test harness verified:
- npm run build succeeds → dist/index.html created
- npx vitest run --passWithNoTests exits 0
2026-07-09 10:56:10 +02:00
L'électron rare 6b2ed06925 docs: add le-bus implementation plan
14 TDD tasks: scaffold, content config, rel=me fallback,
ride logic, PCB world, bus, sky, stops, HUD, MOD player,
smoke tests, docker, Tower deploy.
2026-07-09 10:50:29 +02:00
L'électron rare f87c549b90 docs: add clement.saillant.cc design spec
Demoscene-style personal identity hub: bus on a giant PCB,
4 content stops, MOD tracker audio, semantic DOM fallback
with rel=me Mastodon verification. Static build, deployed
on Tower behind Traefik + cloudflared tunnel.
2026-07-09 10:39:47 +02:00