Commit graph

225 commits

Author SHA1 Message Date
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
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
vorflux[bot]
68a7781de7
feat: add connector sync visibility to NOVA settings page (#930)
Co-authored-by: MaheshtheDev <38828053+MaheshtheDev@users.noreply.github.com>
Co-authored-by: Mahesh Sanikommu <maheshthedev@gmail.com>
2026-05-12 11:59:56 +05:30
MaheshtheDev
5a0dffbc4c feat: in-app subscription cancellation for paid plans (#934)
## Summary
- Add a "Cancel subscription" button to the billing card for Pro and Scale users, alongside the existing "Manage billing" portal link.
- Cancellation is scheduled end-of-cycle via `autumn.updateSubscription({ planId, cancelAction: "cancel_end_of_cycle" })`, so users keep paid features until period end.
- Confirmation dialog surfaces remaining days from `useTokenUsage` and the correct plan name (Pro/Scale).
- Enterprise users do not see the cancel button — contract-based, portal/sales only.

Previously, the only path off a paid plan was Autumn's external customer portal, which contradicted the in-app "cancel anytime from the Billing tab" copy in the support FAQ.
2026-05-12 05:36:27 +00:00
MaheshtheDev
085c3dd8b3 feat: add codex and revamp plugins page (#931) 2026-05-11 23:13:08 +00:00
Mahesh Sanikommu
6437814f25
feat: add X-App-Source header to Nova + remove notify checkbox (#926)
Co-authored-by: Ishaan Gupta <ishaankone@gmail.com>
Co-authored-by: Vedant Mahajan <vedant.04.mahajan@gmail.com>
Co-authored-by: Akhilesh Arora <akhildawra@gmail.com>
2026-05-11 13:11:04 -07:00
Vedant Mahajan
bb50685ff4
Fix chat auto-scroll during streaming responses (#928)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-11 11:10:05 -07:00
Vedant Mahajan
82ff92b560
fix: fetch chat history when opening recent conversations sheet (#919) 2026-05-11 11:09:11 -07:00
vorflux[bot]
7c9f2efc4c
fix: redirect new users to onboarding from plugin connect page (#908)
Co-authored-by: Vorflux AI <noreply@vorflux.com>
Co-authored-by: MaheshtheDev <38828053+MaheshtheDev@users.noreply.github.com>
2026-05-11 10:57:43 -07:00
Mahesh Sanikommu
787fadf648
fix: remove excessive bottom padding below input bar on mobile dashboard (#925) 2026-05-11 20:38:28 +05:30
MaheshtheDev
b0e5766a65 feat: make graph popover content scrollable and add View full button (#920)
Some checks failed
Publish Memory Graph / publish (push) Has been cancelled
## Summary

Addresses user feedback about the graph view: content in node popovers was hard-truncated at 100 characters with no way to read the full text or navigate to the document.

### Changes

**Scrollable popover content (no more truncation)**
- Removed the `truncate(content, 100)` call -- full content is now rendered in the popover
- Made the content area scrollable with `maxHeight: 100px` and `overflowY: auto`
- Increased version timeline entry truncation from 60 to 120 characters
- Increased version timeline container height from 120px to 160px

**"View document" in shortcuts panel**
- Added an eye icon + "View document" entry to the shortcuts panel (alongside existing arrow navigation)
- Clicking opens the Document Modal for the corresponding document
- Works for both document nodes (opens that document) and memory nodes (opens the parent document)
- Popover is automatically dismissed before the modal opens (prevents z-index overlap)
- Wired `onOpenDocument` callback through the full component chain: `page.tsx` -> `GraphLayoutView` -> `MemoryGraph` wrapper -> `MemoryGraphBase` -> `NodeHoverPopover`

**Shortcuts panel visual cleanup**
- Icon badges (`KeyBadge`) retain dark background and border for a keyboard-key badge look
- All icons (including the new EyeIcon) are uniformly wrapped in `KeyBadge` for consistent styling
- Removed background, border, and border-radius from the shortcuts panel container itself
- Widened shortcuts panel from 100px to 160px so navigation labels are fully visible

**Type safety improvement**
- Changed `MemoryGraphProps.colors` from `GraphThemeColors` to `Partial<GraphThemeColors>` to match actual usage (callers pass partial overrides that get merged with defaults)
- Replaced `as Partial<typeof import(...)>` cast with proper `satisfies Partial<GraphThemeColors>` using a direct type import

### Files changed
- `packages/memory-graph/src/components/node-hover-popover.tsx` -- scrollable content, EyeIcon + "View document" in shortcuts, KeyBadge styling, NavButton icon type broadened to `React.ReactNode`, all icons wrapped in KeyBadge
- `packages/memory-graph/src/components/memory-graph.tsx` -- popover dismissal wrapper (`handleOpenDocument`), prop forwarding
- `packages/memory-graph/src/types.ts` -- `onOpenDocument` prop on `MemoryGraphProps`, `colors` changed to `Partial<GraphThemeColors>`
- `apps/web/components/graph-layout-view.tsx` -- accepts and passes `onOpenDocument`
- `apps/web/components/memory-graph/memory-graph-wrapper.tsx` -- `onOpenDocument` in wrapper props, clean type import
- `apps/web/app/(app)/page.tsx` -- `handleOpenDocumentById` handler, wired to `GraphLayoutView`

## Testing

### Unit Tests (154/154 passed)
- **Command:** `cd packages/memory-graph && bun run test`
- **Result:** 9 test files, 154 tests passed (107 existing + 47 new)
- **New test file:** `packages/memory-graph/src/__tests__/node-hover-popover.test.tsx` covering:
  - Layout constants (`SHORTCUTS_W=160`, `CARD_W=280`, `TOTAL_W` formula)
  - Content area scrollability (`maxHeight:100`, `overflowY:auto`, `flex:1 1 auto`, no truncation)
  - KeyBadge styles (has `backgroundColor: colors.controlBg`, has `border` with `colors.controlBorder`)
  - Shortcuts panel styles (no `backgroundColor`, no `border`, no `borderRadius`)
  - EyeIcon SVG component (`aria-hidden`, viewBox, path, circle, stroke)
  - "View document" button render guard (`onOpenDocument && documentId`)
  - `documentId` derivation (memory vs document node)
  - VersionTimeline truncation limit (120 chars) and container maxHeight (160)
  - `onOpenDocument` prop wiring
  - NavButton icon prop type (`React.ReactNode`), all icons wrapped in KeyBadge
  - `handleOpenDocument` wrapper in MemoryGraph (dismiss calls, ordering, useCallback deps)

### Build
- **Command:** `bun run --filter=@supermemory/memory-graph build`
- **Result:** Build succeeds, 0 errors

### Lint/Format
- **Command:** `bunx biome ci --changed --since=origin/main --no-errors-on-unmatched`
- **Result:** 6 files checked, no fixes applied, 0 errors

### Type Checking
- `packages/memory-graph`: 0 errors
- `apps/web`: 0 new errors introduced

### CI
- "CI - Type Check, Format & Lint" workflow passes
- "Claude Code Review" workflow fails due to repo config (`non-human actor: vorflux` not in `allowed_bots` list) -- not related to code changes

---
**Session Details**
- Session: [View Session](https://supermemory.us1.vorflux.com/agent-sessions/d0c067f1-38c1-40c5-ada9-b2ffb7331d1c)
- Requested by: Mahesh Sanikommu (mahesh@supermemory.com)
- Address comments on this PR. Add `(aside)` to your comment to have me ignore it.
2026-05-11 02:09:36 +00:00
Ishaan Gupta
f045f863c0
fix: improve settings sidebar overflow (#924)
Co-authored-by: ved015 <vedant.04.mahajan@gmail.com>
2026-05-10 17:56:28 -07:00
Vedant Mahajan
2d44ecda1e
Fix mobile header layout and space selector dropdown alignment (#921) 2026-05-10 17:56:08 -07:00
Ishaan Gupta
ae35b7a0e5
fix: Usagemeter not defined error [P0] (#922) 2026-05-10 17:55:50 -07:00
MaheshtheDev
1acc156363 fix: payment upgrade issue (#918) 2026-05-09 19:52:21 +00:00
MaheshtheDev
8f6c16de49 chore: improve the codebase with react doctor (#917) 2026-05-09 19:12:01 +00:00
Mahesh Sanikommu
0cbcd44e76
fix: mobile view usage bar fix (#914) 2026-05-09 11:29:14 -07:00
Dhravya Shah
03e37df455
fix: update web app for presigned R2 URL compatibility (#916) 2026-05-09 10:25:33 -07:00
Ishaan Gupta
47bd9805ef
fix responsiveness for graph layout (#910) 2026-05-08 21:10:05 -07:00
MaheshtheDev
debac33eba feat: autumn migration (#902) 2026-05-08 22:42:55 +00:00
Vedant Mahajan
35c606028c
Model selection bug in ChatService (#909)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-08 00:29:58 -07:00
MaheshtheDev
54bc618010 chore: more suggestions across the quick actions (#907) 2026-05-07 06:45:48 +00:00
MaheshtheDev
8c8a6e130f feat: nova dashboard improvements with theme (#905)
![image.png](https://app.graphite.com/user-attachments/assets/234115bd-9b60-4d3d-b17c-c27a79dcb2f2.png)
2026-05-06 22:29:22 +00:00
Ishaan Gupta
253d16b4b8
remove unused old onboarding flow (#904) 2026-05-06 10:05:22 -07:00
Vedant Mahajan
f850a0e8a7
hoist EMPTY_SET default in MemoriesGrid (#856) 2026-05-06 10:01:56 -07:00
MaheshtheDev
f14cf5562e fix: multi-select propagation bug and redesign selection toolbar (#901) 2026-05-05 22:35:35 +00:00
MaheshtheDev
9584d98d6b feat: Unify connections into the Add Memory modal; redesign disconnect dialog (#900)
- 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.
2026-05-05 22:33:09 +00:00
MaheshtheDev
805cf3cb93 feat: enhanced the integration page for more conversion (#899) 2026-05-04 17:41:52 +00:00
MaheshtheDev
a605909191 fix: space selector dropdown (#898) 2026-05-04 17:15:10 +00:00
MaheshtheDev
68b6c66321 feat: major iteration on the app (#896)
feat: major iteration on the app

add: dashboard improvements

few more improvements

add few more improvements

add few more changes

home improvmeents

few more improvements

add lot of modifications

fix few things
2026-05-02 23:58:58 +00:00
MaheshtheDev
654386c644 feat: bash tool UI component (#890) 2026-04-30 02:27:24 +00:00
MaheshtheDev
57daef335d feat: sync options for google drive in nova (#891) 2026-04-30 02:24:46 +00:00
MaheshtheDev
a41bbeecb3 chat: fix tool-output validation, bump ai sdk, update model labels (#887) 2026-04-26 04:25:09 +00:00
Sarup Banskota
210fceb74b
Render research CTA via @lobbyside/react when widget is online (#884)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-24 11:39:03 -07:00
Dhravya
5e3033d484
create lobbyside (#874)
Some checks are pending
Publish Tools / publish (push) Waiting to run
2026-04-21 20:06:51 +00:00
MaheshtheDev
6b0105d340 chore: next app banner for call (#869) 2026-04-21 00:43:15 +00:00
MaheshtheDev
b8e5376b99 fix: input disable when onboarding org creation (#855) 2026-04-16 16:40:15 +00:00
Vedant Mahajan
5cadf5c170
perf: wrap list/grid components in React.memo to skip unnecessary re-renders (#847) 2026-04-12 15:45:58 -07:00
Ishaan Gupta
5051658b85
perf(ui): convert message pairing to O(n) forward pass in chain-of-thought (#846) 2026-04-12 15:38:07 -07:00
Ishaan Gupta
13bee90bd8
perf(ui): align React Query cache between memory grid and graph (#845) 2026-04-12 15:27:05 -07:00
Vedant Mahajan
1c230b66b4
perf: deduplicate OG data fetches across document cards (#831) 2026-04-12 14:56:22 -07:00
Ishaan Gupta
7fd36eaebc
Optimize onboarding chat document creation with Promise.all (#822) 2026-04-12 14:41:48 -07:00
Dhravya Shah
26ad0e32e2 fix: memory graph progressively loads all data and remove background
- Switch to infinite query with viewport-triggered pagination (loads more when user zooms out 3x past node bounds)
- Remove maxNodes cap so all data renders
- Remove background color and dot pattern from graph
- Make document-memory edges light grey

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 14:20:41 -07:00
MaheshtheDev
3cf7e77872 fix: pro plugin and free plugin confusion (#843) 2026-04-09 15:42:25 +00:00