v0.2.14

Chainlit/chainlitv0.2.14Aug 11, 2026by het0814

AI Summary

This release officially introduces the Langfuse integration to the core Memanto project, adding a Web UI tile and CLI path. It also addresses compatibility issues with the MCP SDK 2.0 and improves attribution for MCP tool calls.

Key Highlights

  • Official `langfuse-memanto` package integration with Memanto core.
  • New `memanto migrate --langfuse` CLI command for data import.
  • Langfuse tile added to the Web UI's Migrate/Connect surface.
  • Fixes for `memanto-mcp` breaking on MCP SDK 2.0.

New Features

  • Langfuse integration package
  • Langfuse CLI migration path
  • Web UI sync tile for Langfuse
  • Per-client write attribution in MCP tools

Full Release Notes

# Release Notes for v0.2.14

This release adds a **Langfuse integration** — a live observability-to-memory bridge (`langfuse-memanto`) plus a `memanto migrate --langfuse` import path and a Web UI sync tile — fixes **`memanto-mcp` breaking on MCP SDK 2.0**, adds **per-client write attribution** to MCP tool calls, and closes a couple of install/runtime correctness bugs (loopback client misuse, source-archive version resolution).

## New Features

- **Langfuse integration** (`integrations/langfuse/`, `memanto/cli/migrate/langfuse_*.py`,
  `memanto/cli/analyze/langfuse_export.py`, `memanto/app/ui/static/index.html`)
  - New `langfuse-memanto` package: `attach(agent_id=...)` wires into an
    existing Langfuse setup and turns failing/notable spans into durable
    Memanto memories live, so lessons from observability data don't have to be
    re-learned on every run. Includes a `SpanMapper` for translating Langfuse
    spans into typed memory candidates and a full handler/config layer.
  - `memanto migrate --langfuse` adds Langfuse as a fourth migration source
    (alongside Mem0, Letta, Supermemory), with its own discovery step,
    configurable mapping rules (`langfuse_rules.py`), and state tracking for
    incremental sync.
  - New **Langfuse tile** in the Web UI's Migrate/Connect surface, wired
    through `ui_router.py`, for discovering and syncing a Langfuse project
    without touching the CLI.

## Bug Fixes

- **`memanto-mcp` broken on MCP SDK 2.0** (`integrations/mcp/pyproject.toml`,
  `integrations/mcp/memanto_mcp/{__init__,server}.py`)
  - The published `memanto-mcp` 0.1.1 declared an unbounded `mcp[cli]>=1.2.0`
    dependency; MCP SDK 2.0 removed `mcp.server.fastmcp` (`FastMCP` moved to
    `mcp.server.mcpserver.MCPServer`), so a fresh install silently resolved to
    a version the server couldn't import and failed to start. Pinned the `mcp`
    dependency to stay below 2.0 and bumped to `memanto-mcp` 0.1.2.

- **Per-client write attribution in MCP** (`integrations/mcp/memanto_mcp/tools.py`)
  - MCP-written memories now default `source` to the connected client's
    identity (e.g. `cursor`, `codex`, `claude-ai`) instead of a single generic
    value, falling back to `mcp-agent` when the transport carries no client
    identity — reusing core's own `SOURCE_MAX_LENGTH`/`SOURCE_PATTERN`
    validation so the advertised tool schema matches what the write path
    actually accepts.

- **Loopback client misused as a real API key** (`memanto/app/clients/moorcheh.py`)
  - `get_moorcheh_api_key()` and friends are FastAPI dependencies but are also
    called directly as plain functions elsewhere in the codebase; called
    directly, the unresolved `Header(...)` default object is truthy and was
    being forwarded to the SDK as if it were a real API key, raising a
    `TypeError` inside httpx for internal/loopback UI operations. Now only a
    genuine string is treated as a supplied key.

- **Version resolution for source-archive installs** (`pyproject.toml`)
  - Added a `hatch-vcs` fallback version so editable installs and installs
    from a source archive (e.g. a GitHub ZIP with no `.git` metadata) no
    longer fail version resolution at install time.

## Tests

- New `tests/test_langfuse_{config,discover,export,rules,state,sync}.py` and
  `integrations/langfuse/tests/{test_handler,test_span_mapper}.py` covering
  the new integration end-to-end.
- New `integrations/mcp/tests/test_packaging.py` guarding the SDK version pin;
  expanded `integrations/mcp/tests/{test_server,test_tools}.py`.

## Full Changelog

Full Changelog: https://github.com/moorcheh-ai/memanto/compare/v0.2.13...v0.2.14