Skip to content

Roadmap

Honest and local-first. PMB is a personal tool: every item below keeps memory on your disk, offline by default, with no call-home. Dates are intentionally absent - this is a one-maintainer project; order signals priority, not a schedule.

Shipped - v0.9.0 "Anchor Engine" (2026-06)

Language packs are no longer required. RU/UK packs/ru.yaml + packs/uk.yaml were deleted; many languages now ride one mechanism instead of a pack each:

  • Semantic anchors - English exemplars classify intents + keyed-fact extraction; the multilingual embedder transfers them cross-lingually, so a query in any language the model knows lands on the right anchor.
  • ALD (anchor→lexicon distillation) - the cold lexical path self-compiles from your own traffic into $PMB_HOME/lang/auto.yaml; a language you use gets faster over time with zero configuration.
  • Measured - V1 RU/UK recall top-1 = 1.00 (byte-identical to the pack era); 101-query multilingual eval overall top-3 ≈ 0.91; anchor classify p95 ≈ 81 ms. A blocking CI gate runs the eval with packs off so recall can't silently regress. See Adding a language.

Next

  • Validate ALD on real traffic. The distillation loop is proven in tests; the open question is how fast it self-heals a language's cold path in real daily use. Add a metric (cold-path coverage over time) and report it honestly.
  • Latency on commodity hardware. The current SLO budget was relaxed for a memory-constrained dev box. Re-measure recall + anchor p95 on a normal machine and tighten the gate to the real number.
  • Decide on default-on keyed extraction. The v0.9 hypothesis-margin keyed extraction (C2/F1/F2) ships default-off pending real-world precision data; promote to default only once the false-positive rate is measured in the field.
  • Stronger embedder path. Make bge-m3 a first-class, documented upgrade for CJK / lower-resource languages (anchor calibration already rebuilds per model).
  • CJK + cross-lingual top-1. Exact top-1 is weak for zh/ja and cross-lingual queries (top-3 stays strong); investigate rerank or a CJK-aware tokenizer for the cold path.

Ingest + storage

  • Backup via litestream (continuous SQLite replication to a bucket you own).
  • Optional cloud-sync, bring-your-own bucket - never a PMB-hosted service.
  • tree-sitter project indexing for Rust / TypeScript (today's deep indexer is Python-first; other languages fall back to a lighter scan).
  • Image OCR so screenshots and scanned PDFs become searchable memory.

Non-goals

  • No hosted PMB service, no telemetry, no call-home - there is nothing to add later because there is no server.
  • No silent network calls on the read or write path. Optional LLM passes (consolidate, LLM synthesizers) stay explicit and opt-in.

Want something prioritized? Open a discussion on GitHub.