Commit graph

253 commits

Author SHA1 Message Date
Prasanna721
694ad8123a fix: remove useQuery wrapper around synchronous billing checks (#805)
#### fix: billing subscription status race condition

 - **Bug fix**: Replaced `fetchSubscriptionStatus` (useQuery wrapper) with `getSubscriptionStatus` (pure function) — fixes intermittent "Upgrade to Pro"
  failures caused by stale cached billing state
  - **Anti-pattern**: Removed `fetchConnectionsFeature` useQuery wrapper, replaced with direct `autumn.customer?.features?.connections` read
  - **Dead code**: Removed unused `useMemoriesUsage` hook and `fetchMemoriesFeature`
2026-03-26 05:29:53 +00:00
MaheshtheDev
fe5d16509a feat: ensure workspace created on nova new account (#798)
Added workspace management to the onboarding flow with automatic organization creation and workspace validation throughout the app.

### What changed?

- Wrapped the app layout with an `EnsureWorkspace` component that redirects users without organizations to onboarding
- Enhanced the welcome page to automatically create an organization with a generated slug when users complete their name input
- Expanded the auth context to track organizations list, restoration state, and provide organization refetching capabilities
- Added utility functions for generating unique organization slugs and usernames from display names
- Implemented proper organization restoration logic that handles saved preferences and multiple organization scenarios
2026-03-24 18:17:21 +00:00
Prasanna721
55ef8ab899 fix: billing gate broke for scale/enterprise and downgraded users (#794)
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.
2026-03-22 16:05:08 +00:00
Ishaan Gupta
239fc123b9
feat: Use LRUCache instead of Map in MemoryCache (#774) 2026-03-20 10:37:39 -07:00
MaheshtheDev
a00a751e10 pkg(tools): Expose raw search results in MemoryPromptData for prompt templates (#787)
Expose raw search results in `MemoryPromptData` so prompt templates can traverse, filter, and selectively include results based on metadata (e.g. score, source).

##### Usage example

```typescript
const promptTemplate = (data: MemoryPromptData) => {
  const relevant = data.searchResults.filter(
    (r) => (r.metadata?.score as number) > 0.7
  )
  return `${data.userMemories}\n${relevant.map(r => r.memory).join('\n')}`
}
```
2026-03-19 00:38:53 +00:00
MaheshtheDev
c534008001 feat: delete connection without removing the documents (#778)
- Deleting Connection without removing documents
- Updating the Docs with new param
2026-03-17 23:21:36 +00:00
Mahesh Sanikommu
962fb85cd3
feat: empty state action for new spaces (#780)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-15 11:02:14 -07:00
MaheshtheDev
84d0fb802a feat: bulk delete documents in nova app (#777)
![image.png](https://app.graphite.com/user-attachments/assets/aacbb007-cb5e-400c-a21e-f08a54320154.png)
2026-03-10 15:29:25 +00:00
Dhravya
984297b62d
Add Supermemory integration for Microsoft Agent Framework (#775)
## Summary

This PR introduces comprehensive Supermemory integration for the Microsoft Agent Framework, providing three complementary approaches to add persistent memory capabilities to agents: middleware for automatic memory injection, context providers for session-based memory management, and tools for explicit memory operations.

## Key Changes

- **SupermemoryChatMiddleware**: Automatic memory injection middleware that fetches relevant memories from Supermemory before LLM calls and optionally saves conversations. Supports three modes:
  - `"profile"`: Injects all static and dynamic profile memories
  - `"query"`: Searches for memories relevant to the current user message
  - `"full"`: Combines both profile and query modes

- **SupermemoryContextProvider**: Idiomatic context provider following the Agent Framework pattern (similar to built-in Mem0 integration). Integrates with the session pipeline via `before_run()` and `after_run()` hooks for automatic memory retrieval and storage.

- **SupermemoryTools**: FunctionTool-compatible tools that agents can use for explicit memory operations:
  - `search_memories()`: Search for specific memories
  - `add_memory()`: Add new memories
  - `get_profile()`: Retrieve user profile

- **Utility Functions**: Helper functions for:
  - Memory deduplication across static, dynamic, and search result sources
  - Profile-to-markdown conversion for LLM consumption
  - Message extraction and conversation formatting
  - Logging with configurable verbosity

- **Exception Hierarchy**: Custom exceptions for better error handling:
  - `SupermemoryConfigurationError`: Missing/invalid configuration
  - `SupermemoryAPIError`: API request failures
  - `SupermemoryNetworkError`: Network connectivity issues
  - `SupermemoryMemoryOperationError`: Memory operation failures

- **Comprehensive Documentation**: README with quick start examples, configuration options, and API reference for all three integration approaches.

- **Test Suite**: Unit tests covering middleware, context provider, tools, and utility functions with proper mocking and error scenarios.

## Implementation Details

- Supports both async (aiohttp) and sync (requests) HTTP clients with automatic fallback
- Handles multiple message formats (dict, objects with attributes, content arrays)
- Configurable memory storage with optional conversation grouping via `conversation_id`
- Environment variable fallback for API key configuration (`SUPERMEMORY_API_KEY`)
- Background task management for non-blocking memory operations in middleware
- Proper async/sync compatibility for the Supermemory SDK

https://claude.ai/code/session_012idB5y6UGK3zmeFULgTc4z
2026-03-10 01:49:45 +00:00
Vedant Mahajan
9f7f415dd5
perf: Optimize array traversal for empty memory-graph documents (#770) 2026-03-07 19:34:25 -08:00
MaheshtheDev
3d916d038f chore: chrome extension url fixes (#759) 2026-03-07 04:59:37 +00:00
sreedharsreeram
6d93cd083d OpenAI SDK Backfill (#771) 2026-03-06 23:57:10 +00:00
Dhravya Shah
1afb90145d
😭 fixing builds (#767) 2026-03-05 19:26:05 -08:00
Dhravya Shah
fca026d07a trying something else 2026-03-05 14:49:48 -08:00
Dhravya Shah
bdd1f36f1d one more try 2026-03-05 14:30:57 -08:00
Dhravya Shah
b1d545c4ba fix: 2026-03-05 14:24:50 -08:00
Dhravya Shah
abe52f25f1 fix 2026-03-05 14:01:46 -08:00
Dhravya Shah
55ccc8b154 Merge branch 'main' of https://github.com/supermemoryai/supermemory 2026-03-05 08:29:53 -08:00
Dhravya Shah
4250562824 Merge branch 'main' of https://github.com/supermemoryai/supermemory 2026-03-05 08:29:43 -08:00
Dhravya Shah
bf92ad93a7 proper tracking 2026-03-05 08:29:26 -08:00
Prasanna721
2bbc7fc7a5 feat(mcp): add interactive memory graph MCP App visualization (#763)
### feat(mcp): add memory graph visualization MCP App

#### Summary
  - Add interactive force-directed graph visualization as an MCP App using `force-graph` + `d3-force-3d`
  - Register `memory-graph` and `fetch-graph-data` tools with MCP Apps SDK UI resources
  - Add graph API client methods (`getGraphBounds`, `getGraphViewport`) to `SupermemoryClient`
  - Set up Vite + `vite-plugin-singlefile` build pipeline to produce a self-contained HTML bundle
  - Support light/dark theme, zoom controls, node popups, and legend

  #### Files changed
  - `apps/mcp/src/server.ts` — register app tools + HTML resource
  - `apps/mcp/src/client.ts` — add graph API types and methods
  - `apps/mcp/src/ui/mcp-app.ts` — force-graph visualization app
  - `apps/mcp/src/ui/global.css`, `mcp-app.css` — styling
  - `apps/mcp/mcp-app.html` — entry HTML for Vite
  - `apps/mcp/vite.config.ts` — Vite single-file build config
  - `apps/mcp/package.json` — add UI deps and build scripts
  - `apps/mcp/wrangler.jsonc` — add HTML text import rule
2026-03-05 16:28:34 +00:00
SyedaAnshrahGillani
5d9e142596
refactor: optimize polling and improve optimistic update stability (#753)
Co-authored-by: Syeda Anshrah Gillani <Gillani@cloudment.io>
2026-03-03 19:01:25 -08:00
Dhravya Shah
3a36a673bf fix: posthog 2026-02-26 11:12:38 -08:00
Dhravya Shah
0c46362505 fix: properly attribute revenue with posthog 2026-02-25 18:28:13 -08:00
Prasanna721
15613c2421 feat: change "All Spaces" to "Nova Spaces" with multi-select support (#731)
### Implemented nova spaces multi-select

  ##### Summary
  - Renamed "All Spaces" to "Nova Spaces" - now filters to only nova content (sm_project_*)
  - Added multi-select spaces support via "Select Spaces" modal
  - Projects API now returns `{ nova, developer }` instead of `{ projects }`

  ##### Changes
  - `selectedProject` → `selectedProjects[]` (array-based selection)
  - New `SelectSpacesModal` component for picking multiple spaces
  - Selected spaces appear at top in modal
  - Search works by containerTag
  - Graphs filter by selected spaces
2026-02-13 21:34:58 +00:00
Dhravya Shah
405bff4d9f merge 2026-02-12 16:20:03 -08:00
Dhravya Shah
e22490f6de hardcode posthog key 2026-02-12 16:19:17 -08:00
Prasanna721
b439e7ea01 fix: chat messages saving broken (#730)
1. New chat messages saving to old thread (race condition)
2. Feedback modal null handling issue (boolean | null not coerced to boolean)
3. Wrong icon on Integrations tab (was Cable, now Sun)
4. Wrong icon on Graph tab (was LayoutGridIcon, now GraphIcon)
  5. Missing cursor pointer on header tabs
  6. Default view was "graph" instead of "list"
2026-02-11 00:25:35 +00:00
Dhravya Shah
a843edde5e minor fixes 2026-02-10 08:36:48 -08:00
Prasanna721
11a0abd5c0 feat: migrate to api_pro billing and add credits-based usage display (#729)
Summary

  - Migrate from consumer_pro to api_pro billing product across the app
  - Enable Nova app for all users (remove feature flag)
  - Add credits-based usage tracking with tokens abstraction
2026-02-10 05:53:47 +00:00
MaheshtheDev
bee8b12e66 feat: allow api orgs to nova app (#728) 2026-02-09 23:36:52 +00:00
nexxeln
5dd358a939 graph frontend (#713) 2026-02-09 07:02:20 +00:00
nexxeln
9553434c9a mastra integration (#717)
adds withSupermemory wrapper and input/output processors for
mastra agents:

- input processor fetches and injects memories into system prompt
before llm calls
- output processor saves conversations to supermemory after
responses
- supports profile, query, and full memory search modes
- includes custom prompt templates and requestcontext support

const agent = new Agent(withSupermemory(
{ id: "my-assistant", model: openai("gpt-4o"), instructions:
"..." },
"user-123",
{ mode: "full", addMemory: "always", threadId: "conv-456" }
))

includes docs as well

this pr also reworks how the tools package works into shared modules
2026-02-03 00:43:08 +00:00
MaheshtheDev
6834bc6876 feat: onboarding config, reset onboarding, xai agentic migration (#701)
- Created a new `useOrgOnboarding` hook that uses `org.metadata.isOnboarded` to track onboarding state
- Updated the home page to conditionally use either the old localStorage-based onboarding or the new DB-backed onboarding based on feature flag
- Added a "Restart Onboarding" option in the user dropdown menu
- Improved the onboarding chat sidebar with per-link loading indicators
- Enhanced the X/Twitter research API to better handle different URL formats
- Updated the integrations step to use the new onboarding completion method
- Added `updateOrgMetadata` function to the auth context for easier metadata updates
2026-01-25 01:04:15 +00:00
Dhravya Shah
4ca0f593a5 fix: merge conflicts 2026-01-23 17:42:47 -07:00
Dhravya Shah
1c6b7800a8 chore: bump package versions 2026-01-22 20:50:51 -07:00
MaheshtheDev
0853bc86cb feat: tools package strict mode for openai models (#699) 2026-01-23 03:15:39 +00:00
MaheshtheDev
7972e543c4 chore: cmdk, google docs viewer, image preview, document icons (#691) 2026-01-22 02:35:35 +00:00
Prasanna721
0a8c5fa049 Re - feat(pipecat-sdk): add speech-to-speech model support (Gemini Live) (#683)
#### RE-RAISING Pipecat live speech PR

### Added native speech-to-speech model support

### Summary:
  - Speech-to-speech support - Auto-detect audio frames and inject memories to system prompt for native audio models (Gemini Live, etc.)
  - Fix memory bloating - Replace memories each turn using XML tags instead of accumulating
  - Add temporal context - Show recency on search results ([2d ago], [15 Jan])
  - New inject_mode param - auto (default), system, or user

### Docs update
  - Update the docs for native speech-2-speech models
2026-01-21 03:58:26 +00:00
MaheshtheDev
1423bd7004 feat: mobile responsive, lint formats, toast, render issue fix (#688)
- Mobile responsive
- new toast design
- web document render issue fix
- posthog analytics
- ui improvements
2026-01-21 03:11:53 +00:00
MaheshtheDev
731808be68 feat: create space, delete spaces and emoji picker (#687)
### Add user display name functionality and enhance space management with emoji support and deletion capabilities.

### What changed?

- Added support for user display names, which are now stored and displayed throughout the app
- Implemented emoji support for spaces (projects), allowing users to customize their space icons
- Created a new `AddSpaceModal` component with emoji picker for creating spaces
- Added space deletion functionality with options to move content to another space or delete everything
- Enhanced the space selector UI to show emojis and delete options
2026-01-20 17:03:22 +00:00
MaheshtheDev
32a7eff3af fix(tools): multi step agent prompt caching (#685) 2026-01-20 01:30:43 +00:00
Dhravya Shah
87b361c26b
docs changes (#678)
Some checks failed
Publish AI SDK / publish (push) Has been cancelled
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 16:55:32 -08:00
MaheshtheDev
59c294b299 feat: deep-research on user profile and tiptap integration (#672)
deep-research on user profile

add novel integration

tiptap 3.x integration
2026-01-15 21:53:53 +00:00
Mahesh Sanikommu
641db19e35
chore: quick bugs squash across the elements and added few more changes (#671) 2026-01-13 17:53:28 -08:00
Mahesh Sanikommu
645f89310c
PR: nova alpha release (#670)
Co-authored-by: Dhravya Shah <dhravya@supermemory.com>
2026-01-13 00:54:56 -08:00
Prasanna
d015036b05
pipecat-sdk (#663) 2026-01-10 15:19:31 -08:00
MaheshtheDev
68d4d95c1d feat: allow prompt template for @supermemory/tools package (#655)
## Add customizable prompt templates for memory injection

**Changes:**

- Add `promptTemplate` option to `withSupermemory()` for full control over injected memory format (XML, custom branding, etc.)
- New `MemoryPromptData` interface with `userMemories` and `generalSearchMemories` fields
- Exclude `system` messages from persistence to avoid storing injected prompts
- Add JSDoc comments to all public interfaces for better DevEx

**Usage:**

```typescript
const customPrompt = (data: MemoryPromptData) => `
<user_memories>
${data.userMemories}
${data.generalSearchMemories}
</user_memories>
`.trim()

const model = withSupermemory(openai("gpt-4"), "user-123", {
  promptTemplate: customPrompt,
})
```
2026-01-07 03:48:16 +00:00
MaheshtheDev
04fb67a33e chore: update the package version of tools (#637) 2025-12-30 18:58:04 +00:00
Arnab Mondal
aa5654f084
fix(tools): pass apiKey to profile search instead of using process.env (#634) 2025-12-30 10:15:10 -08:00