v0.1.3

cloudflare/pingorav0.1.3Jun 1, 2026by het0814

AI Summary

This release adds a recall similarity threshold, typo-tolerant fuzzy fallback for auto memory-type parsing, UI upgrades including an Agents page and file upload, and rewrites agent templates.

Key Highlights

  • Recall Similarity Threshold: New `recall.min_similarity` config (0.0–1.0) controls memory recall relevance.
  • Agents Page in Web UI: New sidebar listing registered agents with live status and memory counts.
  • File Upload in Playground: Supports uploading PDF, DOCX, XLSX, JSON, TXT, CSV, and MD files (max 5GB).
  • Fuzzy Fallback for Parsing: Uses `rapidfuzz` to recover obvious misspellings in memory type detection.
  • Smart-parse Config Switch: Allows toggling auto-parsing via `config.yaml` without code editing.

New Features

  • Recall Similarity Threshold
  • Agents Page UI
  • File Upload
  • Fuzzy Fallback Parsing
  • Smart-parse Config Switch

Full Release Notes

# Release Notes for v0.1.3

This release adds a **recall similarity threshold** wired through every layer (REST, SDK, Direct, CLI, UI, config), introduces **typo-tolerant fuzzy fallback** for auto memory-type parsing, ships **UI upgrades** (Agents page, file upload, live memory counts), and rewrites the **`memanto connect` agent templates** to frame Memanto as an active companion.

## New Features

- **Recall similarity threshold** (`memanto/cli/config/manager.py`, `memanto/app/routes/memory.py`,
  `memanto/cli/client/{direct_client,sdk_client}.py`, `memanto/cli/commands/memory.py`)
  - New `recall.min_similarity` (0.0–1.0) in CLI config with validation; default `0.0`.
  - REST `POST /memories/recall` and SDK/Direct `recall()` resolve `min_similarity` from
    the request, then fall back to the config value, then to unset.
  - CLI flag renamed `--min-confidence` → `--min-similarity` on `memanto recall`.
  - `memanto config show` surfaces the new `Min Similarity` row.

- **Agents page in the Web UI** (`memanto/app/ui/static/index.html`,
  `memanto/app/routes/sessions.py`)
  - New sidebar entry listing every registered agent with status, pattern, memory and
    session counts; activate/deactivate from the table.
  - `GET /api/v2/agents` and `GET /api/v2/agents/{agent_id}` now populate `memory_count`
    from the **live Moorcheh namespace document count** instead of the stale local
    metadata value.

- **File upload in the Playground** (`memanto/app/ui/static/index.html`)
  - New `Upload File` tab accepts `.pdf`, `.docx`, `.xlsx`, `.json`, `.txt`, `.csv`, `.md`
    (max 5 GB) and ingests into the active agent's namespace, with client-side
    size/extension validation.

- **Fuzzy fallback for auto memory-type parsing** (`memanto/app/services/memory_parsing_service.py`,
  `pyproject.toml`)
  - When deterministic rules abstain, a `rapidfuzz`-backed pass scans tokens against a
    curated list of long, distinctive keywords per type and picks the best match above
    `FUZZY_SCORE_CUTOFF = 88.0` — recovering obvious misspellings like *"decded"* →
    `decision`, *"crahsed"* / *"tracebck"* → `error`.
  - New runtime dependency: `rapidfuzz>=3.0.0`.

- **Smart-parse config switch** (`memanto/app/config.py`, `memanto/cli/connect/...`)
  - New `memanto.cli.smart_parse` setting in `config.yaml` propagates to the
    `AUTO_PARSE_ENABLED` env var on startup, letting users toggle auto-parsing without
    editing code.

## Improvements


- **UI timestamps & filters** (`memanto/app/ui/static/index.html`)
  - `fmtDate` appends `Z` to naive UTC timestamps so the browser converts them to the
    user's locale instead of treating them as local time.
  - Memory Explorer gains an `All Sources` filter dropdown; navigation helper
    `goToPage()` added; favicon shipped.

- **`memanto connect` agent templates rewritten** (`memanto/cli/connect/templates.py`)
  - Reframed as an "active memory companion" with five non-negotiable rules
    (read `MEMORY.md`, search before guessing, store proactively, always pass
    `--type/--confidence/--provenance/--source`, never keep mental scratchpads).
  - Adds an operations table (`recall` vs `answer` vs `remember`), worked
    `memanto remember` examples per type, full memory-type/provenance/confidence
    references, and the new temporal flags
    (`--recent`, `--as-of`, `--changed-since`).
  - Cursor MDC rules file mirrors the same content under
    `alwaysApply: true`.

## Tests

- **UI timestamps & filters** (`memanto/app/ui/static/index.html`)
  - `fmtDate` appends `Z` to naive UTC timestamps so the browser converts them to the
    user's locale instead of treating them as local time.
  - Memory Explorer gains an `All Sources` filter dropdown; navigation helper
    `goToPage()` added; favicon shipped.

- **`memanto connect` agent templates rewritten** (`memanto/cli/connect/templates.py`)
  - Reframed as an "active memory companion" with five non-negotiable rules
    (read `MEMORY.md`, search before guessing, store proactively, always pass
    `--type/--confidence/--provenance/--source`, never keep mental scratchpads).
  - Adds an operations table (`recall` vs `answer` vs `remember`), worked
    `memanto remember` examples per type, full memory-type/provenance/confidence
    references, and the new temporal flags
    (`--recent`, `--as-of`, `--changed-since`).
  - Cursor MDC rules file mirrors the same content under
    `alwaysApply: true`.

## Tests

- New fuzzy-fallback cases in `tests/test_memory_parsing.py` (typo'd `decision`/`error`
  detection; confirms no false-fire on unrelated text).
- `tests/conftest.py` resets `settings.AUTO_PARSE_ENABLED = True` before every test so
  local `smart_parse` config can't leak into the suite.

## Full Changelog

Full Changelog: https://github.com/moorcheh-ai/memanto/compare/v0.1.2...v0.1.3