Adds a scrolling right-side panel showing real-time agent work pulled
from the Gitea API. Auto-refreshes every 30 s. Displays PR opens,
PR merges, issue opens, and issue closes with relative timestamps and
colour-coded event types. Panel is collapsible; collapses to a narrow
vertical toggle button. Gitea base URL and repo slug are configurable
via URL params (?gitea=, ?repo=) or Vite env vars (VITE_GITEA_URL,
VITE_GITEA_REPO) with defaults pointing at the live Gitea instance.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
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