- Add conversation-scoped context assembly to replace cross-conversation recency
- Fix duplicate user message in prompt (current turn was included twice)
- Add per-conversation rolling summaries (episodic memory)
- Add structured user facts extraction (semantic memory)
- Add conversation_summaries and user_facts tables to DB schema
- Replace raw per-turn memory writes with salient fact extraction
- Add degraded-startup fallback for local dev without Supabase connectivity
- Rewrite test_db.py with SQLite-based smoke tests for all memory layers
- Add test_memory_layers.py regression tests for context assembly
- Update .env.example with ALLOW_DEGRADED_STARTUP doc
Add user profile page with account, billing, and settings
- Backend: new GET /auth/me and PUT /auth/profile endpoints
- Backend: add email column to users table
- Backend: update_username, update_password, update_email methods
- Frontend: new profile.html with minimal sidebar, account/billing/settings sections
- Frontend: profile link in chat sidebar, inline JS following admin.html pattern
- CSS: profile page styles with dark mode and responsive layout