Commit graph

1560 commits

Author SHA1 Message Date
Dhravya Shah
02474bb732
docs: expose feedback in both API reference versions (#1785) 2026-10-08 15:02:38 -07:00
MaheshtheDev
203fb6e482 fix(mcp): keep pre-snake_case tool names as deprecated aliases (#1782)
#1665 renamed getDocument, listSpaces, listDocuments, listMemories and whoAmI to snake_case with no aliases. Clients with a cached tool list (ChatGPT, Codex, Claude) still call the old names and fail 100% of the time (~2k errors from ~300 users in the last 10 days, per PostHog). The old names are now registered again with the same handler and a "Deprecated alias" description. They stay listed because ChatGPT rejects calls to tools missing from tools/list.
2026-10-07 18:51:36 +00:00
MaheshtheDev
3535ff700d docs: one-line migrate tip on every v5 entry point (#1779)
Some checks failed
Publish Agent Framework Python / publish (push) Has been cancelled
Publish AI SDK / publish (push) Has been cancelled
Publish Cartesia SDK Python / publish (push) Has been cancelled
Publish OpenAI SDK Python / publish (push) Has been cancelled
Publish Pipecat SDK Python / publish (push) Has been cancelled
Publish Tools / publish (push) Has been cancelled
New shared snippet with the npx supermemory@latest migrate command, placed on the tools 3.0 guide, the four integration pages, the API reference overview and namespaces page, the ten migration sub pages, and the agents page. The migration guide keeps the command first and folds the paste-in prompt into an accordion; the --prompt variant is gone from the examples.
2026-10-06 21:22:40 +00:00
MaheshtheDev
1e3444a061 docs: move the home page agent prompt and hero samples to v5 (#1776)
The Copy prompt button on the docs home still handed agents the v3/v4 prompt with containerTag and /v3/documents, and the hero code samples used the old call shape. Both now match the console's v5 onboarding prompt and the shipped SDKs, with install hints for the stable 5.x releases and a pointer to the migration guide. The agents page starter prompt drops the rc.5 { namespace, body } description.
2026-10-06 18:53:19 +00:00
sohamd22
58ef43ba5c docs(api): document paginated v5 namespace list (#1769)
Docs for supermemoryai/mono#3420: `GET /namespaces` returns `{namespaces, pagination}` (newest first, `limit` up to 100), and the SDK note now describes `namespaces.list()` and both delete outcomes (`status: "deleted"` / `"queued"`) correctly. Also rewrites the memory GET and batch-result descriptions so they no longer refer to other endpoints.
2026-10-06 17:23:47 +00:00
MaheshtheDev
672defc08b docs: move SDK snippets to the shipped v5 call shape and finish the namespace rename (#1772)
Rewrites 339 TypeScript calls across 50 pages from the rc.5 `method({ namespace, body })` form to the shipped `method(namespace, { ... })` form, and aligns field names with the live v5 spec: `attach` to `include`, `authUrl` to `authorization`, `lastSync` to `latestRun`, `deletedCount` to `count`, and the paginated `namespaces.list()`.

Renames container tags to namespaces across concepts, connectors, integrations and snippets. The namespace pages keep container tag in the description, search keywords and a rename note so old searches still land, and the v3 reference page points at v5.

The migration guide's SDK table now covers both 5.0.0 SDKs, and the SDK integration page uses the real client options (`baseUrl`, `timeoutInSeconds`, `maxRetries`) and error classes.
2026-10-06 17:06:38 +00:00
sohamd22
c03ec843c2 docs(api): document v5 GET memory (#1771)
Docs for supermemoryai/mono#3423: new `GET /ns/{namespace}/memories/{id}` with `include=related,documents` and `relatedLimit`.
2026-10-06 17:06:38 +00:00
sohamd22
ef5a085a76 docs(api): document v5 parameter placement (#1770)
Docs for supermemoryai/mono#3421: ingest `taskType`/`dreaming` move into the JSON body (form fields on file routes, alongside `fileType`/`mimeType`); namespace delete takes `moveTo` as a query param and rejects a body. Adds a "where parameters live" rule to the migration overview.
2026-10-06 17:06:37 +00:00
MaheshtheDev
5c24e67d60 feat(tools)!: @supermemory/tools 3.0 on the v5 API, retire @supermemory/ai-sdk (#1773)
Every integration (AI SDK, OpenAI, Mastra, VoltAgent, Claude memory) now calls v5 through `supermemory@5`. The config takes one `namespace` instead of `containerTags` or `projectId`, and `withSupermemory` takes `namespace` and `id` instead of `containerTag` and `customId`. No aliases. With no config the tools still use `sm_project_default`.

Conversations are stored as one document per conversation keyed by `id` instead of `/v4/conversations`. `memoryForget` drops `reason`; forgetting by text previews with `forgetMatching` and then forgets exact matches by id. Claude memory marks its files with `metadata.source` instead of a second tag. Search keeps the 2.x defaults so results do not shift.

`packages/ai-sdk` is removed: npm already deprecates it in favor of `@supermemory/tools/ai-sdk`, so its CI steps and playground wiring go too. `apps/sdk-playground` moves to the new tools API and v5 routes, including its Python server.

Tested against production: add, search, profile, list and delete. 112 unit tests pass; type errors drop from 148 to 141, none new. The `supermemory` dependency pins the rc until 5.0.0 is published.
2026-10-06 17:03:47 +00:00
sohamd22
10888a94bc docs(api): note related memory ids in v5 search (#1767)
Docs for supermemoryai/mono#3418: related memories in search carry `id`.
2026-10-06 16:48:37 +00:00
sohamd22
3688ffc996 docs(api): document v5 list pagination defaults (#1766)
Docs for supermemoryai/mono#3417: list pagination defaults (`page=1`, `limit=10`, max 100, `sort=createdAt`, `order=desc`) and `include.forgotten` for memory lists. Absorbs #1768.
2026-10-06 16:48:36 +00:00
sohamd22
f0d4b265e5 docs(api): document v5 delete count and search isInference (#1764)
Docs for supermemoryai/mono#3415: delete and batch return `count`; ingest `status` is `queued`/`done` (batch adds `error`, files say `queued`); document `system.status` values; search `isInference` and `included.document.system`; `metadata` never null.
2026-10-06 16:48:36 +00:00
sohamd22
2feccc99fa docs(api): rename v5 attach to include (#1763)
Renames v5 `attach` to `include`. GET routes take one comma-separated `include` query param (`?include=chunks,memories`); search takes every option in the JSON body, with `include` as an object of booleans. Also fixes the `forgotten` description: it does let forgotten memories come back as primary results. Pairs with supermemoryai/mono#3410.
2026-10-06 16:48:36 +00:00
sohamd22
3b84713097 docs(api): add V3/V4 to V5 migration guide (#1691)
Document every migrated workflow, request and response change, typed-filter conversion, verification strategy, and rollout step so agents can upgrade integrations deterministically.
2026-10-06 16:48:36 +00:00
sohamd22
9c1257039e docs(api): add versioned V5 API reference (#1690)
Add Legacy and Latest reference versions, organize the V5 operations by workflow, and introduce focused overview pages backed by the generated V5 OpenAPI document.
2026-10-06 16:48:36 +00:00
Dhravya Shah
b25d6e2fae
docs: add llms.txt summary and name SDK tab headings (#1757) 2026-10-06 09:44:12 -07:00
MaheshtheDev
ac21804982 fix(docs): render overview card images through MDX (#1760)
The overview page passed connector/plugin logo paths and card background paths through custom component props. Those dynamic `<img src={...}>` values bypass Mintlify's asset rewriting: the deployed `/docs` page requests `/images/...` from the main website and gets 404s, although the assets exist under `/docs/images/...`.

Declare all seven logos and the eight card background images directly in MDX, with `Tile` and `ArtTile` rendering children instead of dynamic image sources. Keep the existing layout, badges, background positioning, and mirrored artwork. Background images use `noZoom` to preserve the direct-child markup required by the existing blur styles.

Verified with `mintlify validate` and the local Mintlify preview: all seven logos load with HTTP 200 and the background artwork renders with its original blur. The production result still needs verification after Mintlify deploys the change.

![Fixed overview cards in the local Mintlify preview](https://api.capy.ai/pr-assets/P3dvrU9TtebKfP5XM4ccbG4pzAUtdu_HY-GJNbGMCwQ)

<!-- capy-badge:start -->
<a href="https://capy.ai/thread/jam_01M44PHNNK05Y3SVB3NCKNWAXS"><picture><source media="(prefers-color-scheme: dark)" srcset="https://capy.ai/badge/accent-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://capy.ai/badge/accent-light.svg"><img alt="Open in Capy" src="https://capy.ai/badge/accent-light.svg"></picture></a>
<!-- capy-badge:end -->
2026-10-05 00:27:04 +00:00
Dhravya Shah
7cc19fa346
docs: disclose current self-hosted security and telemetry behavior (#1711) 2026-10-03 21:10:09 -07:00
Dhravya Shah
62cc57eda6
fix(auth): upgrade Better Auth to patched 1.7.6 (#1719)
Some checks failed
Publish AI SDK / publish (push) Has been cancelled
Publish Memory Graph / publish (push) Has been cancelled
Publish Tools / publish (push) Has been cancelled
Co-authored-by: Mahesh Sanikommu <maheshthedev@gmail.com>
2026-10-02 17:05:13 -07:00
MaheshtheDev
1245d73b6b fix(mcp): clear out-of-credits error and keep it out of error rate (#1753)
- 402 now tells the agent the org is out of credits and links to console.supermemory.ai/billing (the old message said "memory limit" and pointed at the retired app).

- PostHog MCP analytics tags these calls `$mcp_error_type: out_of_credits` with `$mcp_is_error: false`, so an empty balance no longer inflates the MCP error rate.
2026-10-03 00:02:10 +00:00
Dhravya Shah
7187b538cc
docs: add team invitation guide with console screenshots (#1754) 2026-10-02 16:59:55 -07:00
Dhravya Shah
b36b225375
feat(livekit): add persistent memory for LiveKit Agents (#1702)
Co-authored-by: Ishaan Gupta <ishaankone@gmail.com>
2026-10-01 15:26:35 -07:00
Prasanna
66ce7f8c78
fix docs icons in dark mode (#1735) 2026-09-30 22:00:27 +00:00
Dhravya Shah
79c74f9438
docs: shorten connector sidebar labels (#1734) 2026-09-30 14:45:36 -07:00
Dhravya Shah
ce4facf662
docs: branded OG thumbnails with photo background (#1729)
Some checks failed
Publish OpenAI SDK Python / publish (push) Has been cancelled
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 18:01:29 -07:00
Dhravya Shah
1b958f48c8
docs: explain advanced PDF extraction availability (#1728) 2026-09-29 17:40:50 -07:00
Parthiv
640eeaa8e8
docs: refresh the documentation design (#1715)
Co-authored-by: Dhravya Shah <dhravya@supermemory.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 17:26:13 -07:00
Dhravya Shah
0c74b55693
fix(docs): remove vulnerable ZIP extractor and patch tar via Mintlify (#1727) 2026-09-29 16:59:39 -07:00
Dhravya Shah
e7d7b78d90
fix(mcp): override vulnerable image and HTTP dependencies (#1722) 2026-09-29 15:28:02 -07:00
Dhravya Shah
cf4436bf4b
fix(raycast): patch high severity lockfile vulnerabilities (#1721) 2026-09-29 15:27:27 -07:00
MaheshtheDev
10e464aac7 feat(mcp): group PostHog MCP tool calls by conversation id (#1718)
The server is stateless HTTP, so every tool call landed in its own PostHog session. Enable conversation ids and let $mcp_conversation_id and $session_id through the metadata filter so echoed handles group calls.
2026-09-29 20:32:36 +00:00
MaheshtheDev
b392bc7d1b Instrument MCP server with metadata-only PostHog analytics (#1712)
## Summary
- Instrument the MCP v2 server with the pinned PostHog MCP Analytics SDK and replace the custom `mcp_tool_executed` wrapper with standard `$mcp_*` events.
- Send only allowlisted metadata, disable schema injection and exception autocapture, and use personless user IDs with person-profile processing disabled.
- Deliver events through immediate capture guarded by Cloudflare `waitUntil`.

## Verification
- The initial implementation passed the MCP typecheck, existing unit suite, Biome, and Wrangler dry-run bundle.
- A local `who_am_i` MCP call returned successfully and emitted a metadata-only `$mcp_tool_call` on the initial implementation.
- All five checks passed on the final `54a2384` head, including the Cloudflare MCP build.

Actual PostHog ingestion is not verified yet; this workspace still needs a PostHog project token and authenticated Supermemory MCP credential.
2026-09-29 06:08:45 +00:00
sohamd22
cfa6c7cb17 fix(memory-graph): distinguish document links from derives relations (#1701)
Document-to-memory links and actual `derives` relations were both emitted as `derives`, so they shared the same color and legend entry.

This separates structural document links into a `document` edge type, adds a dedicated theme color with `--graph-edge-document` support, and updates force-layout and level-of-detail handling to preserve existing structural behavior. The package and MCP widget legends/themes now distinguish document links from derived-memory relations.

Adds regression coverage for edge classification and validates the package plus its MCP consumer.

<!-- capy-badge:start -->
<a href="https://capy.ai/thread/jam_01M36F4MPFXZCA8J14T53YY029"><picture><source media="(prefers-color-scheme: dark)" srcset="https://capy.ai/badge/accent-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://capy.ai/badge/accent-light.svg"><img alt="Open in Capy" src="https://capy.ai/badge/accent-light.svg"></picture></a>
<!-- capy-badge:end -->
2026-09-25 22:00:12 +00:00
Dhravya
0e12f0b3a6 fix(mcp): treat full-scope read grants as read-only 2026-09-22 18:22:26 -07:00
shardulmane10
57b430b5b6 Align billing and Gmail docs with current plan entitlements (#1685)
Some checks failed
Publish Memory Graph / publish (push) Has been cancelled
## Summary

The billing guide omits Max and contradicts the pricing page about Gmail access. Add Max ($100/month with $130 in monthly credits), correct the plan feature matrix, list all six current coding plugins as available on Free with credit-consuming usage, and update both remaining Scale-only requirements on the Gmail connector page to Max or above.

Clarify that paid-plan automatic top-up limits cap automatic credit purchases, not the total invoice, and correct the documented auto-topup update endpoint from PATCH to POST.

Companion website changes: https://github.com/supermemoryai/landing-2/pull/32

## Validation

- Compared prices, credit inclusions, connector gates, and top-up behavior with the console and API source on main. Verified that all six coding plugins are on FREE_TIER_PLUGIN_IDS and the authentication route bypasses the generic Pro gate for them. Usage still consumes plan credits.
- Checked Markdown table column counts and required Max entries; `git diff --check` passed.
- Confirmed the Gmail introduction, prerequisite, and troubleshooting requirement consistently say Max or above.
- Documentation-only change. A full Mintlify build was not run.

Crawler-access verification, AI-search benchmarking, and analytics/measurement work are excluded from this PR.
2026-09-18 22:01:05 +00:00
Dhravya Shah
69327ca1c6
Add Muse Code plugin docs (#1674) 2026-09-17 09:36:04 -07:00
Dhravya Shah
c927c98f2c
feat(mcp): add get_profile and use snake_case for public tools (#1665) 2026-09-16 23:37:34 -07:00
Dhravya Shah
814f92731a
docs.json: 35 redirects for stale docs IA slugs (GSC Pages report) (#1673) 2026-09-16 20:46:20 -07:00
Prasanna
8652a0e5ea
add eve docs and refresh integrations (#1671) 2026-09-16 15:24:08 -07:00
Dhravya Shah
958ae8b619
fix(deps): bump next to 16.3.3 in chatapp, sdk-playground, and memory-graph-playground (#1655)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-09-09 23:01:32 -07:00
MaheshtheDev
5258cb74c8 chore(web): reduce the app to a redirect shell, drop the browser extension (#1651)
chore(web): reduce the app to a redirect shell, drop the browser extension

app.supermemory.ai now forwards everything to the console: plugin, OAuth and invite paths get an immediate 308 with the query intact, everything else shows a short notice first. Removes the browser extension workspace.

chore(web): give the moved notice a proper design

Hostnames become the headline, one primary action, a draining line for the countdown, DM Sans and the dot-grid backdrop from the brand.

chore(docs): point docs and README at the console, drop stale sections

Docs and both READMEs now link to console.supermemory.ai for API keys. Removed the company-brain docs tab with a redirect, and trimmed the README app section.

chore(web): give the redirect five seconds
2026-09-07 19:56:46 +00:00
MaheshtheDev
4d8a4ebfdd fix(mcp): let getDocument read any accessible document (#1641)
Some checks failed
Publish Pipecat SDK Python / publish (push) Has been cancelled
Publish Agent Framework Python / publish (push) Has been cancelled
Publish AI SDK / publish (push) Has been cancelled
Publish Cartesia SDK Python / publish (push) Has been cancelled
Publish OpenAI SDK Python / publish (push) Has been cancelled
Publish Tools / publish (push) Has been cancelled
getDocument filtered on the caller's active space, so an ID from listDocuments in any other space returned "Document not found". With activeSpace unset the fallback is sm_project_default, which broke most cross-space reads.

The API already scopes document reads to the caller's org, so the extra filter added no protection. Verified locally against the mono API: own-space and cross-space IDs now resolve, foreign-org IDs still 404.
2026-09-02 21:49:57 +00:00
Luv
9a0c5a5ad6
docs: fixed typo in graph-memory.mdx (#1640) 2026-09-02 10:07:03 -07:00
MaheshtheDev
17eab43cd4 docs: add Cursor and Grok Bot plugin pages (#1635)
Ship dedicated integration docs and point the plugin catalog at them. Grok Bot stays to install, auth, and skills — no Cursor-only config or repo tags.
2026-09-01 20:51:54 +00:00
Dhravya
4ad5f0beb1
feat(sdk-playground): reflect SDK-owned memory block in debug view (#1533)
## Stack Context

Part 3 (top) of a 3-PR stack moving memory deduplication into the SDKs. See `sdk-dedup/tools-ts` for full context.

## What?

Update the SDK playground so its debug view reflects the SDK-owned memory block.

- Displays the current deduplicated `<supermemory>` replacement block produced by the SDK middleware, instead of the old browser-side "seen facts" delta.
- Adds a `memory-dedupe` helper and ignores local `*.tsbuildinfo`.

## Why?

The previous debug cards were misleading — they showed an incremental browser-filtered delta while the middleware actually re-injected the full profile. Now the visualization matches what the SDK really sends.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Playground-only visualization and chat gating changes; no production SDK or API behavior.
>
> **Overview**
> The playground **debug trace** now shows the **deduplicated memory block** the SDK middleware would inject (static → dynamic → search, mode-aware), instead of a misleading browser-side “new facts” delta. A new **`memory-dedupe`** helper mirrors `@supermemory/tools` middleware behavior and is applied when fetching container context and building middleware memory debug entries; the context preview card is relabeled to reflect that each turn **replaces** the prior `<supermemory>` block.
>
> **Chat UX:** messaging is enabled when API keys are configured on the **server** (`hasSupermemoryKey` / `hasOpenAiKey` from `/api/chat`), not only when keys are typed in the panel. The message input stays editable while waiting for text; Send still requires non-empty input.
>
> Also ignores `*.tsbuildinfo` in `.gitignore`.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit ed15364eb3. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-09-01 06:10:37 +00:00
Dhravya
03773c4f2e
feat(python-sdks): SDK-level cross-source memory deduplication (#1532)
## Stack Context

Part 2 of a 3-PR stack moving memory deduplication into the SDKs. See `sdk-dedup/tools-ts` (parent) for the full context and the TypeScript implementation this mirrors.

## What?

Port the normalized, priority-ordered (`static > dynamic > search`) profile deduplication into the Python SDKs.

- Each request injects one **owned memory block that replaces** the prior block rather than accumulating.
- Dedup is **request-local** (no shared state), so it stays correct under concurrency.

Covers OpenAI, Agent Framework (middleware + context provider), Cartesia, and Pipecat.

## Why?

Keeps the Python SDKs at behavioral parity with the TypeScript SDK so all integrations deduplicate memory the same way.

## Testing

- OpenAI: 31 passed, 11 skipped (live)
- Agent Framework: 59 passed
- Cartesia: 8 passed
- Pipecat: 8 passed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Changes memory formatting and system-prompt injection across multiple SDK integrations; incorrect dedup or replacement could alter LLM context, but there is no auth or data-store risk.
>
> **Overview**
> Ports **normalized cross-source memory deduplication** and **replace-not-append injection** into the Python OpenAI, Agent Framework, Cartesia, and Pipecat packages so they match the TypeScript SDK behavior.
>
> **Deduplication** uses request-local keys: strip optional `[YYYY-MM-DD]` prefixes, normalize whitespace, and compare with `casefold`, with priority **static → dynamic → search**. In **`query` mode**, profile static/dynamic are excluded from dedup input so facts that only appear in search (or overlap profile) are not dropped before formatting.
>
> **Injection** no longer appends memory text every turn. OpenAI and Agent Framework middleware **strip prior owned `<supermemory context="user-memories" readonly>` blocks** and **replace** them once per request while keeping the caller’s system instructions; extra system messages lose stale blocks only. New helpers (`strip`/`replace`/`wrap`) live in each package’s utils.
>
> Tests cover normalized fact variants, query-mode search retention, and stale block replacement.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 42f308b224. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-09-01 06:10:36 +00:00
Dhravya
b01d2b69a3
feat(sdk-playground): interactive SDK chat playground (#1437)
## Summary
- Add `apps/sdk-playground` — chat UI to test TS/Python SDK integrations
- Context panel with document memories, API keys in dashboard, tools reference tab
- Python FastAPI server on port 8792; portless entry in `portless.json`

Stacked on #1436

## Test plan
- [ ] `cd apps/sdk-playground && bun run check-types`
- [ ] `bun run dev` with Supermemory + OpenAI keys in UI
- [ ] Switch SDKs and verify chat + context panel

Made with [Cursor](https://cursor.com)
2026-09-01 06:10:36 +00:00
Dhravya Shah
879ddd5c95
docs: clarify customer content is never used to train models on any plan (#1613)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-31 23:09:30 -07:00
Dhravya
de3bbb3ce9
feat(tools): 7-tool parity and description refresh (#1432)
## Summary
- Refresh canonical tool descriptions in `tools-shared.ts`
- Align OpenAI and AI SDK tool bindings with 7-tool surface
- Export `TOOL_DESCRIPTIONS` / `PARAMETER_DESCRIPTIONS` from package index

Stacked on #1431

## Test plan
- [ ] `bun run test:unit` in `packages/tools`

Made with [Cursor](https://cursor.com)
2026-09-01 05:59:57 +00:00
Dhravya Shah
5fee2f2872
docs(mcp): fix grammar in ChatGPT web plugin description (#1630)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-31 21:46:32 -07:00