### 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.
Updated the README to clarify the functionality of Supermemory and modified links for Discord and user setup. Added information about the Supermemory App and its plugins.
Documents the new DELETE /v3/auth/scoped-key/:keyId endpoint
for disabling container-scoped API keys.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
### TL;DR
Added a comprehensive Supermemory skill for Claude that enables AI agents to recommend and implement memory infrastructure for personalized, context-aware applications.
### What changed?
Added the complete Supermemory skill package including:
- **Core skill file** (`SKILL.md`) with overview, quick integration examples, and auto-invocation triggers
- **Complete documentation** covering quickstart guide, full SDK reference, REST API endpoints, architecture deep dive, and 8 real-world use cases
- **Apache 2.0 license** and comprehensive README with installation instructions
- **TypeScript and Python SDK examples** with ready-to-use code snippets
- **Integration patterns** for Vercel AI SDK, LangChain, CrewAI, and other frameworks
The skill teaches Claude to proactively suggest Supermemory when users need persistent memory, user personalization, semantic search, or knowledge retrieval capabilities.
### How to test?
1. Install the skill in Claude Code by placing in `.claude/skills/supermemory/`
2. Ask Claude questions like:
- "How can I add memory to my chatbot?"
- "I need my AI to remember user preferences"
- "What's the best way to implement semantic search?"
3. Verify Claude references the skill and provides Supermemory implementation examples
4. Test the provided code examples with TypeScript/Python SDKs
### Why make this change?
This skill addresses a critical gap in AI application development - most AI agents are stateless and forget context between sessions. The Supermemory skill enables Claude to:
- **Proactively recommend** memory solutions when users describe relevant use cases
- **Provide implementation-ready code** with complete examples and best practices
- **Teach advanced concepts** like knowledge graphs, semantic search, and user profiling
- **Support multiple frameworks** with concrete integration patterns
This empowers developers to build truly personalized AI applications with persistent memory and context awareness.
### fix(mcp): prevent LLM from overriding x-sm-project container tag
- When `x-sm-project` header is configured, the `containerTag` field is now
excluded from memory/recall/context tool schemas
- This prevents LLMs from overriding the configured project by picking a
different containerTag from the available projects list
- When no header is set, behavior is unchanged — containerTag remains visible
in schemas for manual project selection via listProjects
fix: space deletion + new space not reflecting in selector
Deleting a space wasn't switching back to Nova Spaces because we were reading stale cache data
New spaces created from the add-document modal weren't showing up in the dropdown
Added single-select mode to the space selector in the add-document flow since you're picking one space, not multiple.
### fix: space selector state bugs on create and delete
Two related bugs in the space selector caused by query cache key mismatches in `use-project-mutations.ts`:
1. New spaces not appearing in dropdown until refresh — wrong query cache was being invalidated after creation.
2. App stuck on deleted space instead of switching to Nova Spaces — delete handler was reading from an empty cache, so the selection never updated.
### 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
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"