ARCHIVED [experiment over]: An AI agent built to do Ralph loops - plan mode for planning and ralph mode for implementing.

feat(web): add hash-based SPA router master

Implement a simple hash-based router using Svelte 5 runes with no external dependency: - Pure exported matchRoute() function for unit testing route pattern matching - routerState ($state) with path and params, automatically updated on hashchange events - getCurrentRoute() function that matches current path against 8 route definitions - navigate(path) function to update window.location.hash - $effect setup/cleanup handles hashchange event listener registration and cleanup - 14 comprehensive unit tests covering all routes and parameter extraction The router supports these routes: - / (dashboard) - /projects (project-list) - /projects/:projectId (project-detail) - /goals/:goalId/tasks (task-tree) - /goals/:goalId/decisions (decision-graph) - /goals/:goalId/agents (agent-monitor) - /goals/:goalId/sessions (session-history) - /search (graph-search) Verification: 28/28 tests pass, build succeeds, TypeScript types clean Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>


+248
2 changed files