- Lower monthly price from to , annual from to (save 25%)
- Raise free message limit from 25 to 50 for registered non-subscribers
- Add SUBSCRIBER_MONTHLY_LIMIT (5000 msgs/month) with DB tracking
- New DB columns: sub_messages_used, sub_period_start
- New memory.py methods: try_consume_subscriber_message, refund_subscriber_message, get_subscriber_messages_used
- Enforce subscriber cap in chat route with subscriber_limit_reached error
- Frontend handles subscriber limit with in-chat notice
- Add sub usage info to /auth/me and /billing/status responses
- OpenWebUI integration: user provisioning, chat ID mapping
- Update frontend pricing display, upgrade modal, and README docs
Guest mode v5: reuse guest user per IP via get_or_create_guest_user
Isaac Grumberg
Verified signature
1ff01e7
Deploy OpenWebUI-compatible backend
Isaac Grumberg
Verified signature
92698bc
Add LCM-lite memory layers and fix conversation continuity
- 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
- 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