feat(web): add app shell with sidebar navigation and routing
Implements Task 5 of Phase 3 (Stores + Router + App Shell):
- Replace App.svelte placeholder with full app shell component
- Add sidebar navigation with project selector and main nav links
- Implement view routing with Placeholder components for all routes
- Initialize WebSocket connection and dispatch events to graph/agents stores
- Use flexbox layout with fixed sidebar (240px) and scrollable main content
- Maintain dark theme with colors #12122a (sidebar) and #1a1a2e (main)
Also fixes Svelte 5 module-level $derived export issue:
- Convert selectedProject to getSelectedProject() function
- Convert goalNodes to getGoalNodes() function
- Convert tasksByStatus to getTasksByStatus() function
All files pass TypeScript check and build succeeds with no errors.
All router tests pass (14/14) and WebSocket tests pass (14/14).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>