Some checks failed
CI / validate (pull_request) Failing after 5s
Adds real-time WebSocket connection to Timmy's backend: - Agent behaviors driven by live cognitive state - Chat routed to real Timmy (not fake responses) - Dual-brain panel updates from WS - Graceful degradation when offline Trimmed 1030 lines (47% reduction): - Simplified glass floor (removed 6-band edge system) - Compacted dual-brain panel (removed per-frame scan canvas) - Removed simulateAgentThought() (WS replaces it) - Removed fake chat responses - Compacted all functions Refs #8
2.5 KiB
2.5 KiB
CLAUDE.md — The Nexus (Timmy_Foundation/the-nexus)
Project Overview
The Nexus is a Three.js environment — Timmy's sovereign home in 3D space. It serves as the central hub for all portals to other worlds. Stack: vanilla JS ES modules, Three.js 0.183, no bundler.
Architecture
index.html # Entry point: HUD, chat panel, loading screen, live-reload script
style.css # Design system: dark space theme, holographic panels
app.js # Three.js scene, shaders, controls, game loop, WS bridge (~all logic)
portals.json # Portal registry (data-driven)
vision.json # Vision point content (data-driven)
server.js # Optional: proxy server for CORS (commit heatmap API)
No build step. Served as static files. Import maps in index.html handle Three.js resolution.
WebSocket Bridge (v2.0)
The Nexus connects to Timmy's backend via WebSocket for live cognitive state:
- URL:
?ws=ws://hermes:8765query param, or defaultws://localhost:8765 - Inbound:
agent_state,agent_move,chat_response,system_metrics,dual_brain,heartbeat - Outbound:
chat_message,presence - Graceful degradation: When WS is offline, agents idle locally, chat shows "OFFLINE"
Conventions
- ES modules only — no CommonJS, no bundler
- Single-file app — logic lives in
app.js; don't split without good reason - Color palette — defined in
NEXUS.colorsat top ofapp.js - Line budget — app.js should stay under 1500 lines
- Conventional commits:
feat:,fix:,refactor:,test:,chore: - Branch naming:
claude/issue-{N}(e.g.claude/issue-5) - One PR at a time — wait for merge-bot before opening the next
Validation (merge-bot checks)
The nexus-merge-bot.sh validates PRs before auto-merge:
- HTML validation —
index.htmlmust be valid HTML - JS syntax —
node --check app.jsmust pass - JSON validation — any
.jsonfiles must parse - File size budget — JS files must be < 500 KB
Always run node --check app.js before committing.
PR Rules
- Base every PR on latest
main - Squash merge only
- Do NOT merge manually — merge-bot handles merges
- If merge-bot comments "CONFLICT": rebase onto
mainand force-push your branch - Include
Fixes #NorRefs #Nin commit message
Running Locally
npx serve . -l 3000
# open http://localhost:3000
# To connect to Timmy: http://localhost:3000?ws=ws://hermes:8765
Gitea API
Base URL: http://143.198.27.163:3000/api/v1
Repo: Timmy_Foundation/the-nexus