- Dropping files anywhere on the main page opens the modal with files pre-loaded
- Full-screen overlay with 'Drop files to add as memories' appears during drag
- Unsupported file types show error toast, accepted files are queued in file tab
- Settings page excluded (separate page component, not affected)
- initialFiles prop threaded through AddDocumentModal → AddDocument
- Consumed-once ref prevents re-seeding on re-renders
- Intercepts all close paths: outside click, Escape, Cancel button, mobile X
- Checks ALL tabs for unsaved content (not just active tab)
- Blocks close during active submissions
- Successful saves bypass confirmation (content was saved)
- Note tab now accepts file drops with visual drag overlay
- Dropped files shown as compact chips below editor with status indicators
- Deduplication, rejected file type toasts, and remove button for pending files
- 'Save all' mode when both text and files present (coordinated submission)
- skipMutationCloseRef prevents premature modal close during combined saves
- Cmd+Enter now uses same unified submit logic as CTA button
- Note tab auto-detects when content is a URL and changes CTA to 'Save link'
- URL detection uses plain text (not markdown) to avoid Tiptap serialization issues
- Requires dot in hostname for protocol-less URLs to prevent false positives
- URL normalization happens in parent handler for consistent Cmd+Enter and CTA behavior
- TextEditor now exposes onPlainTextChange callback
- Remove broken preview section from link tab (disabled title/description/image fields that were never sent to API)
- Remove plan usage bar and upgrade CTA from modal sidebar (desktop + mobile)
- Normalize URLs in parent handleLinkSubmit for consistent behavior
- Consolidate Drive/Notion/OneDrive management into the Add Memory → Connect tab and remove the standalone `view=connections` page
(deleted `connections-detail.tsx`; redirected the Integrations tile and onboarding spotlight to `?add=connect`).
- Replace the duplicated provider tile row when connections exist with a single `+ Add a connection` dropdown styled to match the
home-page space selector.
- Rebuild the disconnect dialog as a single-decision flow: keep-memories is the default, with an inline `(optional)` checkbox to
also delete imported memories — primary button label/color flips to red when opted in.
- Memory-of-day card now deep-links the source document via `?doc=<id>` instead of just routing to the memories list.
- Refactored the Pro paywall on the connections surface into a focused, contained card matching the rest of the dashboard's visual
language.
The subscription check on plugins, connections, and usage pages was hardcoded to only look at `api_pro`. Users on scale or enterprise plans saw "Upgrade to Pro" and couldn't create plugin keys or manage connections.
Also, the check only looked at product `status` but not the `allowed` flag from autumn — so users who downgraded but were still in their billing period got locked out early.
Adds multi-select and multi-file drag-and-drop on the Add Document Upload files tab, a per-file queue with status, retry for failed rows, and batched uploads to the existing `POST /v3/documents/file` endpoint with a client-side concurrency limit of 3.
Optional title/description apply only when a single file is queued. .md / .mdx (and text/markdown) are accepted.
Upload progress is shown as a bottom strip with a slow width animation
fix: space deletion + new space not reflecting in selector
Deleting a space wasn't switching back to Nova Spaces because we were reading stale cache data
New spaces created from the add-document modal weren't showing up in the dropdown
Added single-select mode to the space selector in the add-document flow since you're picking one space, not multiple.