v0.2.3
MCP-UI-Org/mcp-uiv0.2.3Jun 22, 2026by het0814
AI Summary
Introduces conversation memory extraction functionality to convert chat-style history into typed memories and adds provenance metadata across the recall path, CLI, MCP, and UI.
Key Highlights
- New `POST /{agent_id}/remember/extract` endpoint for memory extraction.
- CLI command `memanto remember --from-conversation` to read history from files.
- Provenance metadata (Source, Ref, Provenance) added to recall output.
- Supports dry-run mode to test extraction without persisting.
- Auto-classification and de-duplication of memory candidates.
New Features
- Conversation memory extraction API
- Provenance metadata for recall
- CLI integration for memory extraction
- Dry-run mode for extraction
- Auto-classification of memory types
Full Release Notes
# Release Notes for v0.2.3
This release adds **conversation memory extraction** — turn chat-style message history into typed, durable memories in a single call and surfaces full **provenance metadata** (source, source ref, provenance) across the recall path, CLI, MCP, and UI.
## New Features
- **Conversation memory extraction** (`memanto/app/services/conversation_memory_extraction_service.py`,
`memanto/app/routes/memory.py`, `memanto/app/models/__init__.py`)
- New `POST /{agent_id}/remember/extract` endpoint that distills chat-style
conversation turns into typed memory candidates using the same Moorcheh
answer-generation path as the RAG `answer` endpoint.
- Candidates are auto-classified into valid memory types, de-duplicated,
confidence-scored, and tagged `conversation-extract`; secrets/API
keys/tokens are explicitly excluded by the extraction prompt.
- `dry_run` returns candidates without persisting; otherwise they're written
through the standard `batch-remember` path and logged to the session summary.
- New `ExtractMemoriesRequest` / `ConversationMessage` models with bounded
limits (≤200 messages, ≤100 memories, 12k-char cap).
- CLI: `memanto remember --from-conversation <path|->` (reads a JSON message
array from a file or stdin) with `--dry-run`, `--max-memories`, and
`--ai-model` flags; renders each extracted candidate as a panel.
- SDK and direct clients gain `extract_memories_from_conversation()`.
## Improvements
- **Provenance metadata in recall** (`memanto/cli/commands/memory.py`,
`integrations/mcp/memanto_mcp/tools.py`, `memanto/app/ui/static/index.html`)
- `recall` output now displays `Source`, `Ref`, and `Provenance` for each
memory (in addition to tags), unifying file-upload source names and
origin (user/agent/tool) into one consistent block.
- MCP `MemoryHit` model extended with `status`, `source`, `source_ref`, and
`provenance` fields so MCP clients receive full memory metadata.
- Web UI memory cards surface the same source/provenance metadata.
## Tests
- New `tests/test_conversation_memory_extraction.py` covering extraction,
JSON parsing/normalization, validation limits, and dry-run behavior.
- Expanded `tests/test_api.py` and `tests/test_cli.py` for the extract endpoint
and `--from-conversation` CLI flow.
## Full Changelog
Full Changelog: https://github.com/moorcheh-ai/memanto/compare/v0.2.2...v0.2.3