Commit graph

1227 commits

Author SHA1 Message Date
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
Vedant Mahajan
5771618dbb
Fix missing blue gradient (Nova tint) on mobile and adjust position (#911) 2026-05-09 09:18:08 -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
e8ec237d99 fix: onboarding org creation issue on skip (#906) 2026-05-07 06:44:07 +00:00
Dhravya Shah
8ad7055fe2 Merge branch 'main' of https://github.com/supermemoryai/supermemory 2026-05-06 22:42:40 -07:00
Dhravya Shah
19d51e4b2a use portless 2026-05-06 22:42:34 -07: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
703ebf75f2 fix: org creation (#897) 2026-05-03 00:23:39 +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
Prasanna
c01e3a3de0
docs: SMFS documentation — providers, Python bash tool, examples (#889)
Co-authored-by: Dhravya <63950637+Dhravya@users.noreply.github.com>
Co-authored-by: docs <docs@supermemory.ai>
2026-04-28 20:04:15 -07:00
MaheshtheDev
1c80d43235 fix: better-auth better error catch (#892) 2026-04-28 23:46:56 +00:00
MaheshtheDev
0d2ca1bb41 docs: @supermemory/tools v2.0.0 & migration guide (#886)
Some checks failed
Publish Tools / publish (push) Has been cancelled
- Published the v2.0.0 docs and a 1.4 → 2.0 migration guide so existing users have a clear upgrade path.
- Updated the four integration pages (AI SDK, OpenAI, Mastra, VoltAgent) to reflect v2 defaults and link to the migration guide.
- Added a short explainer on the two required fields (containerTag, customId) so new users aren't blocked at first integration.
2026-04-27 18:24:59 +00:00
MaheshtheDev
a41bbeecb3 chat: fix tool-output validation, bump ai sdk, update model labels (#887) 2026-04-26 04:25:09 +00:00
sreedharsreeram
589edd3437 updated typescript and python sdk (#878) 2026-04-25 01:43:13 +00:00
sreedharsreeram
d7ee078ae9 mastra object structure udpates (#881) 2026-04-24 23:47:46 +00:00
sreedharsreeram
c76d27f284 custom id implementation (#877) 2026-04-24 23:43:16 +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
MaheshtheDev
23a60f90f6 tools: timeout and default option on error to skip (#875)
Some checks failed
Publish Tools / publish (push) Has been cancelled
**`withSupermemory`** **(AI SDK)**

- **`skipMemoryOnError`** **defaults to** **`true`**. memory errors/timeouts log and the model runs on the **original** prompt unless you set `skipMemoryOnError: false`.
- **Pre-LLM** **`/v4/profile`** **is aborted after 5s** via `AbortSigna`

**Docs**

- `packages/tools/README.md`, **`apps/docs/integrations/ai-sdk.md`**
2026-04-23 00:11:20 +00: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
8a6b50332b fix: projects endpoint trigger with TTL (#870) 2026-04-21 18:02:52 +00:00
MaheshtheDev
20c5a18e13 chore: skipMemoryOnError for withSupermemory (#871) 2026-04-21 16:43:23 +00:00
MaheshtheDev
6b0105d340 chore: next app banner for call (#869) 2026-04-21 00:43:15 +00:00
MaheshtheDev
7b65e9a1db fix: reverted for auth issue (#860) 2026-04-16 23:35:19 +00:00
MaheshtheDev
cfcfaaac0f fix: another resource url issue (#859) 2026-04-16 23:27:38 +00:00
Mahesh Sanikommu
85c7d985b5
docs: google drive connector scoped sync and changelog (#857) 2026-04-16 16:01:51 -07:00
Mahesh Sanikommu
c59457d8b3
fix: trying resource metadata failure for mcp auth (#858) 2026-04-16 16:01:29 -07:00
MaheshtheDev
b8e5376b99 fix: input disable when onboarding org creation (#855) 2026-04-16 16:40:15 +00:00
sreedharsreeram
e672af6b3d Supermemory-Cartesia SDK (#744)
### TL;DR

Added Python SDK for integrating Supermemory with Cartesia Line voice agents, enabling persistent memory capabilities.

### What changed?

Created a new Python SDK package (`supermemory_cartesia`) that provides:

- `SupermemoryCartesiaAgent` wrapper class that enhances Cartesia Line agents with memory capabilities
- Memory retrieval and storage functionality that integrates with the Supermemory API
- Utility functions for memory formatting, deduplication, and time formatting
- Custom exception classes for error handling
- Comprehensive documentation and type hints

The implementation includes:
- Memory enrichment for user queries
- Automatic storage of conversation history
- Configurable memory retrieval modes (profile, query, full)
- Background processing to avoid blocking the main conversation flow

### How to test?

```python
from supermemory_cartesia import SupermemoryCartesiaAgent
from line.llm_agent import LlmAgent, LlmConfig
import os

# Create base LLM agent
base_agent = LlmAgent(
    model="gemini/gemini-2.5-flash-preview-09-2025",
    config=LlmConfig(
        system_prompt="You are a helpful assistant.",
        introduction="Hello!"
    )
)

# Wrap with Supermemory
memory_agent = SupermemoryCartesiaAgent(
    agent=base_agent,
    api_key=os.getenv("SUPERMEMORY_API_KEY"),
    user_id="user-123",
)

# Use memory_agent in your Cartesia Line application
```

### Why make this change?

This SDK enables Cartesia Line voice agents to maintain persistent memory across conversations, enhancing user experience by:

1. Providing contextual awareness of past interactions
2. Remembering user preferences and important information
3. Reducing repetition in conversations
4. Creating more personalized and natural voice interactions

The integration is designed to be lightweight and non-blocking, ensuring that memory operations don't impact the responsiveness of voice interactions.
2026-04-15 16:27:23 +00:00
sreedharsreeram
0783594b8d voltagent-sdk (#791) 2026-04-14 20:22:46 +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