v0.2.3

wasp-lang/waspv0.2.3Jun 22, 2026by het0814

AI Summary

Adds functionality to extract typed memories from conversation history and enhances recall output with full provenance metadata.

Key Highlights

  • Conversation memory extraction endpoint
  • CLI command for extracting from conversations
  • Provenance metadata added to recall output
  • MCP model extended with provenance fields

New Features

  • Conversation memory extraction endpoint
  • CLI memanto remember --from-conversation
  • Provenance metadata in recall
  • MCP MemoryHit model extension

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