Skip to content

v0.2.14

Choose a tag to compare

@het0814 het0814 released this 11 Aug 16:00
· 110 commits to main since this release
1ecb8dd

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: v0.2.13...v0.2.14