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