Commit graph

980 commits

Author SHA1 Message Date
claude[bot]
ca5106ee2c fix(web): apply Biome formatting to plugin-space.ts
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-23 16:16:01 +00:00
ved015
67149457ea remove no save memory plugin and fix memory routing 2026-05-23 21:43:46 +05:30
claude[bot]
504490f2a8 fix(web): restore UTF-8 encoding in dashboard-view.tsx
Fix corrupted Unicode characters (⌘, —, ✓, →, ·) that were displaying
as mojibake (⌘, â€", âœ", â†', ·) in the TIPS array and other strings.

Co-authored-by: Ishaan Gupta <ishaanxgupta@users.noreply.github.com>
2026-05-21 10:45:16 +00:00
Ishaan Gupta
5673d4c7ef Merge remote-tracking branch 'origin/main' into feat/personalisation
# Conflicts:
#	apps/web/components/dashboard-view.tsx
#	apps/web/middleware.ts
2026-05-21 16:07:51 +05:30
MaheshtheDev
53ae4af5ab fix(web): portless dev auth redirects and session cookies (#981)
Middleware now reconstructs public URLs from portless forwarded headers and recognizes better-auth-dev session cookies so OAuth sign-in works with local API + worktree dev URLs.
2026-05-20 23:38:07 +00:00
Mahesh Sanikommu
41a9001660
feat(web): redesign settings layout + split billing into its own tab (#980) 2026-05-20 14:56:10 +05:30
MaheshtheDev
065fcf4ab5 fix: dashboard Notion/Google Drive suggestions open connect modal (#978)
The home dashboard suggestion cards routed Notion/Google Drive clicks through setViewMode("notion"|"google-drive"), but those values aren't in viewLiterals, so nuqs rejected them and silently fell back to the dashboard view — the click did nothing.

Route those two providers to the connect modal (setAddDoc("connect")), matching the Integrations 'Connections' card, and widen IntegrationParamValue to include them.
2026-05-20 03:37:49 +00:00
MaheshtheDev
68f043b14d fix(web): route Drive-hosted PDF URLs through backend proxy (#977)
Drive-ingested PDFs persist a raw googleapis.com URL that the browser can't fetch directly (403). Detect googleapis.com hostnames in PdfViewer and rewrite to `/v3/drive-proxy/<documentId>` with credentials. R2-hosted PDFs are unaffected.
2026-05-20 03:36:31 +00:00
Vedant Mahajan
d7663aa846
Address nova feedback bugs (#970)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-19 14:41:44 -07:00
Mahesh Sanikommu
a8e3e92392
Revert "feat(graph): auto-paginate consumer graph + loading progress chip" (#975) 2026-05-19 14:35:15 -07:00
vorflux[bot]
100e3ad46f
fix(web): close model selector on outside click (#974)
Co-authored-by: MaheshtheDev <38828053+MaheshtheDev@users.noreply.github.com>
2026-05-19 14:21:27 -07:00
MaheshtheDev
ac43fe157f fix(web): org plan badges via org-summaries and refresh Nova chat empty state (#968)
Use /v3/auth/org-summaries for per-org plan tiers in settings (same as console v2).
Extract chat empty state, add space-aware subtitle, and use AutoSpaceIcon in selectors.
2026-05-18 23:44:09 +00:00
MaheshtheDev
6448849f77 fix(web): stabilize home recents and improve org plan switcher (#967)
- Keep home Recently saved and suggestions in a stable two-column layout
- Show skeleton while recents load and empty state when none exist
- Cap org switcher dropdown height with scroll for long org lists
- Show plan tier badges on all orgs, sorted by plan rank
2026-05-18 19:36:44 +00:00
Mahesh Sanikommu
fbd9f5e4cf
feat(graph): auto-paginate consumer graph + loading progress chip (#966) 2026-05-18 22:45:30 +05:30
ved015
39f30f10b2 fix auto scroll bug and mobile responsiveness (#965)
This PR fixes a bug in auto scroll after the first msg auto scroll was not working properly it is fixed now

 It also tightens Support & Help on small screens: slightly reduced card/title spacing and stacked-button gaps, and replaces fixed-height pills with responsive vertical padding so label text is not flush with the pill edges on mobile devices

## Before
<img width="382" height="232" alt="Screenshot 2026-05-18 at 6 56 48 PM" src="https://github.com/user-attachments/assets/62c583a2-2417-44b6-8502-d6a7950eb136" />

## After
<img width="396" height="267" alt="Screenshot 2026-05-18 at 6 57 04 PM" src="https://github.com/user-attachments/assets/919dbf50-664a-44ec-aa95-287ca13fd77a" />
2026-05-18 16:37:40 +00:00
MaheshtheDev
52bd2b6aee feat(web): pwa prompt 'Add to Home Screen' opens share menu (#963) 2026-05-18 05:32:04 +00:00
MaheshtheDev
da47b1d7d3 fix(web): bust memory-of-day localStorage cache on deploy (#962)
Pairs with the API change that populates sourceDocumentId. The dashboard reads memory-of-day from localStorage first, so without a cache-key bump users would keep seeing the stale null-sourceDocument response for the rest of today. Bumping to :v2: forces a refetch on next load.
2026-05-17 23:57:34 +00:00
MaheshtheDev
d109b21bdf chore: Polish PWA install modal (#961)
- Replace hand-rolled motion.div sheet with Drawer from @ui/components
- Use insideOut Button for primary CTA; standardize close button with INSET shadow recipe
- Wrap content in recessed card (bg-#14161A + chrome-detail inset shadow)
- Replace 3 generic feature pills with 2x2 Check-list of honest PWA benefits
- Steps now use connected numbered circles with title + description (matches install-steps.tsx)
- Swap GradientLogo for actual app icon (/android-chrome-512x512.png)
- Add safe-area padding so CTA clears the home indicator
- Parallel noun-phrase copy: Instant launch / Full-screen mode / Native-app feel / Stays signed in
2026-05-17 23:32:36 +00:00
MaheshtheDev
e1e59b9fbd Fix Raycast API key bug and redesign setup modal (#960)
- Fix `authClient.apiKey.create()` returning undefined: better-auth resolves to `{ data, error }`, not the key directly. Use `res.data.key` (with `res.error` handling) in both `RaycastDetail` and `settings/integrations.tsx`.
- Extract `RaycastSetupModal` and reuse it across the nova home Raycast card and the Settings → Integrations Raycast modal. The new modal matches the plugins-connect design system (icon box, pill close, inset card with shared `InstallSteps`, install pill).
- Add `/settings/integrations` redirect page so `app.supermemory.ai/settings/integrations?q=raycast` lands on the Integrations tab and auto-opens the Raycast modal (the `?q=raycast` auto-trigger logic already existed; the route was the missing piece).
2026-05-17 23:15:04 +00:00
MaheshtheDev
1706752668 mobile responsiveness pass + connections reauth fix (#959)
Nova mobile pass
- viewport: viewportFit cover for iOS safe-area-inset
- safe-area utilities (pb-safe, pt-safe, bottom-safe-5, scroll-fade-x) in globals.css
- chat FAB pinned above iPhone home indicator; chat sidebar widths responsive across sm/md/lg with min() clamps
- chat input CoT panel max-h capped via min(60dvh, 420px)
- header tab strip swapped from visible scrollbar to scroll-fade-x mask + snap-x
- nova empty state uses svh on mobile, dvh from sm up

Add-memory modal rebuilt for mobile
- mobile shell switched from fullscreen Dialog to vaul Drawer at 85svh with swipe-down dismissal and scaled background
- in-modal header removed; tabs moved to the bottom of the sheet for thumb reach
- four tab compactLabels: Note, Links, Files, Connections
- desktop tabs now render only when !isMobile (no DOM duplication)
- note/link content state lifted to parent so switching tabs preserves typed input
- NoteContent snapshots initialContent via lazy useState so the editor isn't reset on every keystroke
- shared Drawer base uses rounded-t-xl
- removed legacy pt-4 on tab content for mobile

Connections — replace expiresAt with sync-run health
- new useConnectionHealth hook reads the latest sync run and matches auth-failure patterns; backend errorKind field still needed (TODO)
- regex tightened so 401/403 require co-occurring auth/token/grant context; refresh_token requires expired/revoked/invalid/missing qualifier
- badge label changed Disconnected -> Needs reauth
- Reconnect button replaces the sync action when needsReauth, kicks off the same OAuth flow
- per-row reconnect tracking via mutation.variables instead of a single shared id (no race when multiple rows clicked)
- fallback toast when authLink is missing so the spinner can't get stuck
- sync history panel timeline capped at max-h-260 with internal scroll
- useSyncRuns no longer refetches on mount; cache (30s) actually applies, cutting N requests per modal open
2026-05-17 21:49:23 +00:00
Ishaan Gupta
36ecf47110
Fix modal memory graph scoping by document and space (#948) 2026-05-17 00:55:12 -07:00
Dhravya Shah
28a60f5620
Fix Nova chat composer spacing (#958) 2026-05-17 00:43:52 -07:00
Dhravya Shah
fd78633fcf
Brand own space as Nova chats (#957) 2026-05-17 00:25:22 -07:00
Dhravya Shah
ba8eb52b94
Show own space as Your conversations (#956) 2026-05-17 00:15:37 -07:00
Dhravya Shah
6df9c8f462
Fix space selector overflow (#955) 2026-05-17 00:02:46 -07:00
Dhravya Shah
b6a9b1ea7b
Update chat empty state and Auto space mode (#954) 2026-05-16 23:55:34 -07:00
Dhravya Shah
5ec625cff7
Update app favicon assets (#953) 2026-05-16 21:24:27 -07:00
Mahesh Sanikommu
e763878622
feat: PWA install instructions modal for mobile (#952) 2026-05-16 21:24:19 -07:00
Dhravya Shah
cddeab679a
Add bulk space deletion (#951) 2026-05-16 20:51:00 -07:00
Dhravya Shah
2fe01a5290
Edit space names from selector (#949) 2026-05-16 20:14:19 -07:00
Ishaan Gupta
efd25bbd27
add headline sentences for personalisation instead of numeric IDs (#946) 2026-05-16 17:56:05 -07:00
Ishaan Gupta
bc2e043b2b
Implement final responsiveness adjustments and remove mobile banner (#947) 2026-05-16 17:54:49 -07:00
Ishaan Gupta
82c308be49
Merge branch 'main' into feat/personalisation 2026-05-16 18:32:28 +05:30
vorflux
b6913a0375 feat: highlight chat shows inline reply and uses highlight as assistant's first message (#944)
## Summary

Changes the highlight "Chat" button behavior:

- **Before**: Clicking "Chat" immediately opened the chat view with "Tell me more about XYZ" sent as the user's first message
- **After**: Clicking "Chat" reveals an inline reply input right under the highlight card. The user types their response, and when they submit:
  - The highlight content appears as the **assistant's first message** (prefixed with "Here is a highlight from your memories:")
  - The user's reply appears as the second message
  - A fresh chat thread is created (no overwriting existing conversations)

### Files Changed

- **`apps/web/components/highlights-card.tsx`** - Added inline reply input UI with send/cancel buttons, keyboard handling (Enter/Escape), auto-focus, and state reset on item navigation or items refresh
- **`apps/web/components/chat/index.tsx`** - Added `queuedHighlightContent` prop, fresh thread creation for highlight chats, deferred `setMessages` to ensure correct Chat instance targeting, and `awaitingHighlightInjectionRef` for safe reply dispatch
- **`apps/web/app/(app)/page.tsx`** - Added `queuedHighlightContent` state, updated `handleHighlightsChat` to accept highlight content + user reply, cleared stale highlight content in `handleHomeChatStart`
- **`apps/web/components/dashboard-view.tsx`** - Updated `onHighlightsChat` type signature
- **`apps/web/components/memories-grid.tsx`** - Updated `HighlightsProps.onChat` type signature

## Testing

### TypeScript
- `npx tsc --noEmit` — no new type errors (all errors are pre-existing in unrelated files)

### Biome
- `bunx biome check --write` — clean on all changed files (pre-existing warnings only in dashboard-view.tsx)

### Automated Tests (via testing subagent)
- **25 passed / 0 failed / 1 skipped** (26 total)
- Tests covered: inline reply input visibility, keyboard handling (Enter/Escape), reply state reset on navigation, highlight content injection as assistant message, user reply dispatch, fresh thread creation, stale highlight content prevention, pagination dot handler
- The testing agent discovered and fixed a race condition where `setMessages` was called before `useChat` had recreated its internal Chat object after `setFallbackChatId` — the fix defers `setMessages` to a separate effect gated on `currentChatId` matching the target
- 1 test skipped (T12): Nova FAB button not separately visible from highlights card button at 1440px viewport — expected structural behavior

---
**Session Details**
- Session: [View Session](https://supermemory.us1.vorflux.com/agent-sessions/9cbf2106-b7b9-4d7c-b275-2a7e72417793)
- Requested by: Soham Daga (soham@supermemory.com)
- Address comments on this PR. Add `(aside)` to your comment to have me ignore it.
2026-05-16 08:11:08 +00:00
ved015
4e607f9fd7 fix: Add plugin document rendering and MCP preview support (#938)
<h3>Implement comprehensive plugin document rendering support including MCP previews and plugin specific content handling.</h3>
<br>
<br>

<img width="1680" height="471" alt="Screenshot 2026-05-12 at 8 24 49 PM" src="https://github.com/user-attachments/assets/f1294bc2-2841-4833-9f01-ac47b8c52c01" />

<br>
<br>

<img width="1680" height="963" alt="Screenshot 2026-05-12 at 8 28 25 PM" src="https://github.com/user-attachments/assets/9436c7ab-3b9b-4366-86fd-1465407ff0f9" />
2026-05-15 18:26:37 +00:00
Ishaan Gupta
5065d66989
add responsivness in share graph, bookmark section, navigation controls (#940)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-15 08:37:01 -07:00
Ishaan Gupta
06d5bbfefa
add codex plugin logo and add in description (#943) 2026-05-15 08:25:43 -07:00
claude[bot]
91b96c679f fix: remove duplicate codex key in PLUGIN_INFO
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-15 08:08:04 +00:00
ved015
6fa2a8c70e add support for other plugins 2026-05-15 13:13:31 +05:30
MaheshtheDev
aa83c0bc12 fix: onboarding bounce rate (#942) 2026-05-14 14:37:05 +00:00
Ishaan Gupta
0ae8200c4f add title in place of name 2026-05-13 21:26:01 +05:30
MaheshtheDev
62ac31ecaa chore: theme default fix (#929) 2026-05-13 14:17:51 +00:00
Ishaan Gupta
bc97cb6862 remove unused imports 2026-05-13 11:15:28 +05:30
Ishaan Gupta
89777ce8b0 add plugin on top and on hover show summary 2026-05-13 11:05:51 +05:30
claude[bot]
6cd2547dc2 fix: add missing closing parenthesis in handleOpenToolDocument callback
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-13 04:41:27 +00:00
Ishaan Gupta
44ac45fb53
Merge branch 'main' into feat/personalisation 2026-05-13 10:09:13 +05:30
Ishaan Gupta
da1d6476be add recent section 2026-05-13 10:06:35 +05:30
ved015
5cf770336a fix recent convo and redirect path 2026-05-12 23:16:00 +05:30
claude[bot]
e14e418854 fix: apply Biome formatting to dashboard-view.tsx
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-12 15:46:05 +00:00
Ishaan Gupta
b8d2caee53 Merge branch 'feat/personalisation' of https://github.com/supermemoryai/supermemory into feat/personalisation 2026-05-12 21:05:37 +05:30