840270fe4b
feat: PWA manifest + build-time service worker ( #15 )
...
Applies Replit PR #28 feature on top of current main:
- Root sw.js template with __PRECACHE_URLS__ placeholder
- generate-sw Vite plugin: reads build manifest, injects actual asset URLs
- manifest: true in Vite build config for asset manifest generation
- SW registration gated to import.meta.env.PROD (no dev interference)
- Preserves existing manifest.json and public/sw.js as dev fallback
2026-03-19 02:02:06 +00:00
f0231733a2
feat: WebGL context loss recovery for iPad PWA ( #14 )
...
Applies Replit PR #21 feature on top of current main:
- buildWorld()/teardown() lifecycle for world rebuild on context restore
- disposeWorld(), disposeAgents(), disposeEffects(), disposeInteraction()
- getAgentStates()/applyAgentStates() for state preservation across rebuilds
- webgl-recovery-overlay in index.html
- Canvas reuse on reinit (existingCanvas param in initWorld)
- Preserves: visibility-change pause, visitor init, debounced resize
2026-03-19 02:01:23 +00:00
174c8425ec
feat: chat history persistence via localStorage ( #13 )
...
Applies Replit PR #20 feature on top of current main:
- Per-agent localStorage chat history (max 100 per agent)
- Timestamps on chat entries
- Load all histories on init, sorted by time
- Clear button handler
- Auto-persist on each appendChatMessage call
2026-03-19 01:59:41 +00:00
e22e63f230
Merge feat/workshop-interaction into main (--allow-unrelated-histories)
...
Unifies the Replit Vite codebase (rooted at fe2d9a3 ) with the original Matrix
init (rooted at fdfae19 ). Resolves add/add conflicts by taking the latest
workshop-interaction versions for all shared files.
Includes:
- QA Sprint v1 (7 fixes)
- QA Sprint v2 (8 optimizations + responsive)
- Integration Phase 2 (config.js, live WS, auth, agent hot-add)
- Workshop interaction layer (chat input, visitor presence, bark display)
Preserves main-only docs: INTEGRATION.md, PROTOCOL.md, style.css
2026-03-19 01:56:38 +00:00
a9da7393c7
feat: Workshop interaction layer — chat input, visitor presence, bark display ( #40 , #41 , #42 )
...
Implements the minimum viable conversation loop for Workshop #222 :
visitor arrives → sends message → Timmy barks back.
- js/visitor.js: Visitor presence protocol (#41 )
- visitor_entered on load (with device detection: ipad/desktop/mobile)
- visitor_left on unload or 30s hidden (iPad tab suspend)
- visitor_message dispatched from chat input
- visitor_interaction export for future tap-to-interact (#44 )
- Session duration tracking
- js/bark.js: Bark display system (#42 )
- showBark() renders prominent viewport toasts with typing animation
- Auto-dismiss after display time + typing duration
- Queue system (max 3 simultaneous, overflow queued)
- Demo barks in mock mode (Workshop-themed: 222, sovereignty, chain)
- Barks also logged permanently in chat panel
- index.html: Chat input bar (#40 )
- Terminal-styled input + send button at viewport bottom
- Enter to send (desktop), button tap (iPad)
- Safe-area padding for notched devices
- Chat panel repositioned above input bar
- Bark container in upper viewport third
- js/websocket.js: New message handlers
- 'bark' message → showBark() dispatch
- 'ambient_state' message → placeholder for #43
- Demo barks start in mock mode
- js/ui.js: appendChatMessage() accepts optional CSS class
- Visitor messages styled differently from agent messages
Build: 18 modules, 0 errors
Tested: desktop (1280x800) + mobile (390x844) via Playwright
Closes #40 , #41 , #42
Ref: rockachopa/Timmy-time-dashboard#222 , #243
2026-03-19 01:46:04 +00:00
745208f3c8
feat: Integration Phase 2 — config.js, live WS client, auth, agent hot-add ( #7 , #11 , #12 )
...
- js/config.js: connection config with URL param + env var override
- WS URL, auth token, mock mode toggle
- Computed isLive and wsUrlWithAuth getters
- Resolves #7 (config.js)
- Resolves #11 (Phase 1 shared-secret auth via query param)
- js/websocket.js: refactored to use Config for live/mock switching
- Live mode: real WS with reconnection + exponential backoff
- Auth token appended as ?token= on WS connect
- agent_joined handler dispatches to addAgent() for hot-add
- sendMessage() public API for UI → backend communication
- js/agents.js: dynamic agent hot-add and removal
- addAgent(def): spawns 3D avatar at runtime without reload
- autoPlace(): finds unoccupied circular slot (radius 8+)
- removeAgent(id): clean dispose + connection line rebuild
- Connection distance threshold 8→14 for larger agent rings
- Resolves #12 (dynamic agent hot-add)
2026-03-19 01:09:59 +00:00
cff7295009
Merge pull request 'docs: INTEGRATION.md v2 — Replit fork coordination + economy protocol' ( #19 ) from docs/integration-v2 into main
2026-03-18 20:31:54 -04:00
70f590ab9a
perf: QA sprint v2 — 8 optimizations + responsive fixes
...
Fixes:
- #29 agents.js: share geometries across agents (3 shared vs 12 duplicates)
- #30 agents.js: single connection line material, dispose old geometries
- #31 agents.js: add Agent.dispose() for proper GPU resource cleanup
- #32 main.js: debounce window resize with rAF (1 call/frame vs dozens)
- #33 main.js: pause rAF loop on visibilitychange (battery savings on iPad)
- #34 effects.js: skip every 2nd rain update on low tier (halves iterations)
- #35 index.html: responsive HUD with clamp(), mobile stack layout <500px
- #36 vite.config.js: code-split Three.js into separate cacheable chunk
Build output:
- App code: 28.7KB (was bundled into 514KB single chunk)
- Three.js: 486KB (cached independently after first visit)
- FPS: 31 (up from 28-29)
2026-03-19 00:27:13 +00:00
916acde69c
fix: QA sprint v1 — 7 issues resolved
...
Fixes:
- #22 OrbitControls damping: call updateControls() in animate loop
- #23 Empty catch blocks: add console.warn + error surfacing to chat panel
- #24 escapeHtml: add quote escaping (" '), use in renderAgentList
- #25 WS reconnect: check close code (1000/1001) before reconnecting,
add exponential backoff + heartbeat zombie detection
- #26 IDLE state visibility: brighten from near-invisible to #005500
- #5 PWA: manifest.json, service worker (network-first), theme-color,
favicon, loading screen, safe-area-inset padding, apple-mobile-web-app
- #14 Adaptive render quality: new quality.js hardware detection (low/
medium/high tiers), tiered particle counts, grid density, antialias,
pixel ratio caps
New files:
- js/quality.js — hardware detection + quality tier logic
- manifest.json — PWA manifest
- public/sw.js — service worker (network-first with offline cache)
- public/favicon.svg — SVG favicon
- icons/icon-192.svg, icons/icon-512.svg — PWA icons
2026-03-19 00:14:27 +00:00
22daaade36
docs: INTEGRATION.md v2 — Replit fork coordination + economy protocol
...
- Added Fork Coordination section documenting replit/the-matrix changes
- Acknowledged Replit resolved issues #1 (Vite), #2 (agent-defs), #6 (UUID)
- Updated architecture diagram to reflect Vite + ES module structure
- Documented Replit's module exports for each file
- Aligned field names to camelCase (matching Replit's codebase)
- Updated Phase 2 ownership: Replit primary, Perplexity review
- Added coordination strategy: code flows replit→canonical, docs stay canonical
- Resolved WS path decision (#10 ): VITE_WS_URL env var
2026-03-18 23:54:13 +00:00
Replit Agent
fe2d9a31e3
docs: add direction field to README custom-agent example
2026-03-18 23:52:06 +00:00
b0fb85dac3
docs: integration plan for Timmy Dashboard + Agent Token Economy
...
Covers:
- WebSocket gateway adapter (backend → Matrix protocol)
- LiveWebSocket client to replace MockWebSocket
- Agent token economy display (balances, costs, treasury)
- 3D economy visuals (budget stress glow, sat flow particles)
- 5-phase implementation roadmap with file change matrix
- Open questions on auth, serving model, multi-operator
2026-03-18 22:39:13 +00:00
fdfae19956
feat: The Matrix — Sovereign Agent World
...
3D visualization for AI agent swarms built with Three.js.
Matrix green/noir cyberpunk aesthetic.
- 4 agents: Timmy (orchestrator), Forge (builder), Seer (planner), Echo (comms)
- Central core pillar, animated green grid, digital rain
- Agent info panels, chat, task list, memory views
- WebSocket protocol for real-time state updates
- iPad-ready: touch controls, add-to-homescreen
- Post-processing: bloom, scanlines, vignette
- No build step — pure ES modules via esm.sh CDN
Created with Perplexity Computer
2026-03-18 18:32:47 -04:00