Commit graph

1182 commits

Author SHA1 Message Date
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
Vedant Mahajan
cfd587ed2a
perf: scope message equality check to content+parts instead of full object (#842) 2026-04-12 15:19:34 -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
Evandro Camargo
5b57f4ddf3
fix(mcp): register handler on bare /mcp path to match MCP transport spec (#733) 2026-04-11 16:57:26 -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
Prasanna
a91136dad8
MCP connector fix (#849)
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 21:20:41 -07:00
MaheshtheDev
3cf7e77872 fix: pro plugin and free plugin confusion (#843) 2026-04-09 15:42:25 +00:00
Vedant Mahajan
ba4bc33a50
perf: use Set for O(1) category lookup in facet render loop (#835) 2026-04-09 08:39:07 -07:00
MaheshtheDev
d8b969ce78 docs: clarity on document limit for connectors (#841) 2026-04-09 15:17:49 +00:00
MaheshtheDev
8f1e8afaf9 fix: trying mcp auth with resource (#840) 2026-04-09 08:21:06 +00:00
Prasanna721
543c45a626 fix(mcp): fix broken memory graph and improve UI design (#837)
## Summary
- Fixed memory graph stuck on "Loading graph data..." caused by field name mismatch after package rewrite (`memoryEntries` vs `memories`, `type` vs `documentType`)
- Improved MCP app UI to match console-v2 design: golden derives edges (#FBBF24), edge glow pass, node hover effects, dot mode at low zoom, vertical controls with keyboard shortcuts, expandable legend
- Synced local `memory-graph` edgeDerives constant with published npm version

## Test plan
- [ ] Run `cd apps/mcp && bun run dev`, connect via Claude Desktop
- [ ] Verify graph renders with golden derives edges and blue dashed extends edges
- [ ] Verify node hover/selection glow effects
- [ ] Verify Fit (Z), Center (C), zoom (+/-) keyboard shortcuts
- [ ] Verify legend expands/collapses
2026-04-08 21:21:10 +00:00
MaheshtheDev
bc7f6fcf74 feat: mcp modal with better instructions (#836)
feat: mcp modal with better instructions

add docs screenshots and claude setup
2026-04-08 19:20:11 +00:00
MaheshtheDev
ca3d5d4921 docs: hermes agent instructions (#833) 2026-04-07 22:00:58 +00:00
MaheshtheDev
0638f65bc3 feat(nova): add hermes plugin instructions (#832) 2026-04-06 23:18:38 +00:00
MaheshtheDev
8405305c50 feat(nova): delete account with all orgs (#821) 2026-04-03 02:29:25 +00:00
Prasanna721
c012f3b5c4 fix stale session cookie (#823)
- redirect to login when session is gone instead of blank screen
- show cached username while session restores so header doesn't flicker
- cleaned up redundant type casts and unused vars
2026-04-03 01:55:24 +00:00
Ishaan Gupta
5fd7f1d7dd
perf: optimize twitter header parsing in browser extension (#819) 2026-04-02 16:37:28 -07:00
MaheshtheDev
7cfaacc806 chore(nova): ux improvments (#820) 2026-04-02 18:20:34 +00:00
MaheshtheDev
7b64ce1e10 fix: username issue and bun lock issue (#818)
Some checks failed
Publish AI SDK / publish (push) Has been cancelled
2026-03-31 21:41:25 +00:00
MaheshtheDev
9473d64c1d chore(nova): loader on initial data load (#817)
![image.png](https://app.graphite.com/user-attachments/assets/ceb237ae-b8f5-479d-9d77-1ba719799ade.png)
2026-03-31 21:36:42 +00:00
MaheshtheDev
1dbd45427a feat: switch to all spaces on empty state (#816) 2026-03-30 18:45:11 +00:00
MaheshtheDev
13d69aa06a fix: privacy and terms pages links (#815) 2026-03-30 17:10:39 +00:00
vorflux[bot]
851b8cfe86
Rewrite @supermemory/memory-graph with perf optimizations + consolidate consumers (#809)
Co-authored-by: Vorflux AI <noreply@vorflux.com>
2026-03-28 19:06:27 -07:00
MaheshtheDev
38282a37d6 feat: warning when model is unavailable in the region (#814) 2026-03-28 05:52:41 +00:00
MaheshtheDev
1111f05c47 feat: improve chat interface ux (#812) 2026-03-27 06:08:30 +00:00
vorflux[bot]
5a63ebc996
chore: rename ClawdBot to OpenClaw across web and docs (#811)
Co-authored-by: Vorflux AI <noreply@vorflux.com>
2026-03-26 22:10:57 -07:00
MaheshtheDev
57748ead4d feat: web search and improve chat with tools (#810) 2026-03-27 01:57:13 +00:00
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
vorflux[bot]
fc94dd8308
Add MemScore documentation to memorybench docs (#797)
Co-authored-by: Vorflux AI <noreply@vorflux.com>
2026-03-23 15:19:40 -07: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
2ce55c43bc
todo: Implement MCP connection status polling (#788) 2026-03-20 16:37:13 -07:00
MaheshtheDev
bc9120f751 feat: multi-file upload queue for Add Document (#789)
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
2026-03-19 21:14:17 +00:00
Dhravya Shah
4033087232 docs: backfill full changelog with Mintlify Update components and tag filtering
Single-page changelog covering Feb 2024 through Mar 2026 with filterable
tags (API, SDK, Console, MCP, CLI, Integrations). Replaces the split
overview/developer-platform pages. Adds redirect for old URL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:02:11 -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
MaheshtheDev
6ce7357ffb docs: clarify metadata-only PATCH does not reindex (#784)
Updates docs to match the new behavior where metadata-only PATCH updates do not trigger reindexing:

- **update-delete-memories/overview.mdx** — Distinguishes content changes (reindex) vs metadata-only (no reindex), adds a note about `accepted`-style updates
- **document-operations.mdx** — Clarifies that only content changes trigger reprocessing
- **add-memories.mdx** and **add-memories/overview.mdx** — Add notes on metadata-only behavior
- **memory-api/ingesting.mdx** — Splits update behavior into content vs metadata-only
- **memory-api/creation/adding-memories.mdx** — Adds note for the “Adding Additional Metadata to Files” flow
2026-03-17 20:48:52 +00:00
MaheshtheDev
93bc74883a chore: modal fixes and space selectors issue (#782)
This PR fixes

- modal popup trigger fixes
- space selector ux weird behaviour when selected
2026-03-16 14:05:58 +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
Dhravya Shah
ba56b3699b
Fix Google Docs/Sheets/Slides source URL generation in document modal (#781)
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-14 15:21:03 -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
sohamd22
07875ad1a1 update forget implementation in mcp (#773)
### TL;DR

Enhanced the `forgetMemory` method to try exact content matching first, then fall back to semantic search with a high similarity threshold for more precise memory deletion.

### What changed?

The `forgetMemory` method now uses a two-step approach: first attempting exact content matching via the API, and if that fails with a 404, falling back to semantic search with a similarity threshold of 0.85. The search method also accepts an optional threshold parameter. Error messages now distinguish between exact matches and semantic matches, including similarity scores in the response.

### How to test?

1. Call `forgetMemory` with the exact content of an existing memory to verify direct deletion
2. Call `forgetMemory` with similar but not identical content to test the semantic search fallback
3. Call `forgetMemory` with completely unrelated content to verify the "no matching memory found" response
4. Verify that success messages indicate whether deletion used exact matching or semantic matching with similarity scores

### Why make this change?

This approach provides more precise memory deletion by prioritizing exact matches while still offering a fallback for similar content. The high similarity threshold (0.85) ensures that only very similar memories are deleted when exact matches aren't found, reducing the risk of accidentally deleting unrelated memories.
2026-03-09 18:59:08 +00:00
Vedant Mahajan
9f7f415dd5
perf: Optimize array traversal for empty memory-graph documents (#770) 2026-03-07 19:34:25 -08:00
sreedharsreeram
d0d90e9359 fix: use correct space context when sending messages (#772) 2026-03-07 21:11:10 +00:00