✨ New
Reliable Account Deletion
Deleting your account is now instant, reliable, and safe. Clicking "Delete My Account" in Settings deletes immediately after the in-modal confirmation, signs you out, and returns you to the homepage. No more confirmation emails.
To prevent accidental clicks, the modal now requires typing your email address to confirm, matching the pattern used by GitHub, Stripe, and similar tools. The deletion transaction also reliably cancels any active paid subscriptions, cleans up cross-organization memberships, and no longer fails on foreign-key constraints introduced by newer features.
Plan Limit Transparency
Documents that fail to process now show the reason inline ("Cloud storage limit exceeded", "Page processing limit exceeded") with a red banner at the top of the Documents page summarising affected uploads. Customers who hit plan limits can finally see why their uploads were rejected.
Chatbot Readiness Reasons
Clicking "Chat" on a chatbot that isn't ready now shows a specific reason ("3 of 5 documents are still processing", "All 4 documents failed to process") instead of a generic message. Every readiness toast includes a "See documents" link for one-click navigation, and the Chat button's tooltip on the chatbot edit page mirrors the same explanation.
🛠️ Improved
- Google Drive: Content-Hash Sync: Files whose content hasn't actually changed are no longer re-processed and re-billed against your monthly page allowance when Drive bumps the "modified" timestamp for metadata reasons (folder moves, permission changes, etc.).
- Google Drive: Per-Folder Sync Budget: Each top-level folder now gets its own sync budget. Previously, one large folder could exhaust a shared budget and cause every subsequent folder to return zero files.
- Google Drive: Smarter Retry: Files stuck at the page-processing limit no longer get re-downloaded and re-parsed every hour. They now wait at least 2 hours between retries.
- Google Drive: Stuck-File Recovery: Files stuck mid-sync for more than an hour are now automatically reset and retried on the next cron run.
- Google Drive: Expired Connection Banner: A banner now appears on the Documents page when your Drive access has expired or was revoked, with a one-click "Reconnect Google Drive" action. Previously, broken Drive connections failed silently.
- Chatbots List: Now shows your bots in every status by default, not just Ready or Draft. Errored, queued, processing, and partially-failed bots are visible without changing the Status filter.
- Clear Filters Button: New toolbar button resets search, favorites, created-by, shared-with, and status in one click.
- Share Modal Language: Each chatbot now has its own persisted default share language. Switching the admin UI to a different language no longer retags a bot's share links and embed snippets.
🐛 Fixed
- Reconnecting Google Drive: Reconnecting no longer fails with "authorization failed" for users who previously granted access. The OAuth flow now explicitly requests offline access and forces the consent screen.
- Adding a Drive Folder: Adding a new Google Drive folder no longer silently deletes your previously-connected folders and their documents. The flow is now additive.
- Stale Document References: Chat messages are no longer silently dropped when they reference a document that was deleted while the conversation was open.
- Favorite-Only Chatbots: Saving a chatbot no longer crashes when the bot is only in your favorites list.
- Status Badge Labels: Chatbots and documents in the "Some Documents Failed" state no longer show the raw translation key in the status badge.
- Token Usage Saving: Chat messages are no longer dropped when token usage data is missing from the model response.