Releases: Korrnals/mnemos
Release list
4.1.0
4.1.0 — universal behavioral pack + MCP SDK in core
Every target now gets always-on memory instructions — including a brand-new opencode target — and the base install speaks MCP out of the box: mcp>=2.0,<3.0 moved into core dependencies, so one plain install is all an agent harness needs (ADR-0023).
Highlights
- Universal behavioral pack, new
opencodetarget (#231/#232) — a newagents_mddeployment kind injects a stamped, additive always-on digest of the three instruction files (recall at session start; checkpoint before compaction and session end; tag contract on every write; memory ops are PRIORITY tools) into each harness's native standing-instructions file:~/.agents/AGENTS.mdfor theagentstarget (the one AGENTS.md-standard channel — Claude Code included),~/.zcode/AGENTS.mdfor ZCode, and~/.config/opencode/AGENTS.mdfor the NEWopencodetarget (OpenCode reads it natively; nested skills to~/.config/opencode/skills/; MCP registered via an additive merge into~/.config/opencode/opencode.jsonthat preserves other servers and user-tuned values). Thepitarget receives the same pack as a standing system-prompt hint injected by the shipped bridge extension. The block engine never touches user content: deploy appends around it, update replaces only the stamped region, uninstall strips only the block;deploy/update/uninstall/verifyreport missing/stale/version-drift/content-drift. Fully backward compatible —copilot/cursor/hermes/generic-copilot/pideploy maps unchanged. - MCP SDK in core dependencies (ADR-0023, #234) —
mcp>=2.0,<3.0(bare; the upstream[cli]extra only added already-core deps) joinedproject.dependencies; themcpextra remains as an empty compatibility alias. Before this change the base install could not runmnemos mcp-server— the primary agent-harness surface — and every fresh base install got a guaranteedmnemos doctorFAIL on MCP transport. Binding conditions implemented: an AST import-isolation guard pins the SDK tomnemos.mcp_server(a subprocess test proves the CLI import path never loads it), and the pip-audit/SBOM gate covers the unified profile. Net-new transitive deps ~1 MiB;doctorremediation strings and the EN/RU docs sweep now name the plain package everywhere. - Docs overhaul: three-command quick start + RU admin mirrors — the README quick start is now three one-command steps (install the server →
mnemos integration setupconnects the harness AND deploys the behavioral pack →mnemos doctor), with every install variant delegated to the extended EN/RU getting-started guide — the<!-- version:… -->release-marker blocks moved there too, andsync-readme-version.shfollows them since #236. A docs-vs-code accuracy pass reconciled every operational doc against the real Typer CLI registrations, config/env forms, MCP tool registry and FastAPI routes (22/22 CLI subcommands and 26/26 MCP tools documented, ~80 broken anchors/links fixed), and the three EN admin pages that had no Russian counterpart are now mirrored 1:1 (EN/RU documentation synchronous). - ADRs recorded — ADR-0023: MCP SDK moves into core dependencies as bare
mcp>=2.0,<3.0(implemented in this release; binding: lazy-import guard test, unified pip-audit/SBOM). ADR-0024: all harness connection consolidates intomnemos connect [harness]over the existingtargets.yamlregistry in three phases (4.1.0 alias + detect-all listing; 4.2 cursor/windsurf/claude-code targets + doctor on the registry; 4.3 Codex TOML-merge + legacy deprecation), with binding security controls.
Note on artifacts: no build assets are attached to this release and PyPI still carries 3.2.0 — distribution publication is a separate owner decision.
Full changelog: CHANGELOG.md — 4.1.0
v4.0.0 — bundled nano-embedder major: chromadb removed, zero-config memory
Re-cut 2026-09-03 (ADR-0022, owner decision): this release now ships under Apache-2.0 (was tagged MIT on 2026-09-03 19:43, before any installable artifacts existed). The original MIT tag and its auto-generated source archives remain MIT (per-version license fixity). All versions ≤ 3.2.0 remain MIT. See ADR-0022.
v4.0.0 — bundled nano-embedder major
Fully local memory out of the box: bundled mnema-embed-v1 (29.6 MB int8 ONNX, RU+EN, 384d) as the default embedding model; chromadb removed from the runtime (−3 CVEs, −250 MB install). No downloads, no API keys, no network — install → first search offline.
Highlights
- NM-1c+1d (ADR-0021, epic #197) — bundled mnema-embed-v1 as default embedder (distilled in-project, RU 49% corpus, cos 0.958 to teacher);
onnxruntime/tokenizers/huggingface_hubpromoted to direct deps; legacychromadbconfigs migrate with a deprecation warning; external providers (onnx,ollama,sentence-transformers) remain the quality escape hatch. S1m re-baseline: recall@5 0.929 → 0.875 on the 192-query corpus — the accepted −5.5 pp trade for full autonomy. - BF-2/3/4 benchmark framework (ADR-0020, epic #169) — S3 long-lived-session stand (fact-retention gates the future refiner), S4 availability-probe stand (read-only invariant, quarantine exclusion), S2 nightly mode with measured noise bands, 192-query judged corpus (McNemar p=4.3e-07), one-page owner report (
make bench-report) with F1–F7 traffic lights. - License: Apache-2.0 (ADR-0022) — niche norm (mem0/letta/cognee/chroma/qdrant), explicit patent grant, trademark carve-out, NOTICE documents model provenance. Monetization model: open core; closed GUI (mnemos-eyes) planned; FSL only if triggers fire (10k stars / 25k downloads/mo / GA−1mo / first external contributor → CLA).
- NM-1d final naming —
mnema-embed-v1(was nano-embed-v1); docs sweep 28+4 mentions.
Note on the re-cut: the v4.0.0 git tag was re-created on the Apache-2.0 commit; the original MIT-tagged snapshot (7574c47) and its auto-generated source archives remain publicly reachable and MIT-licensed. No installable artifacts (PyPI/npm/wheel/container) were ever published for the MIT cut — PyPI's mnemos-memory-server carries 3.2.0 (MIT), and 4.0.0 goes to PyPI under Apache-2.0.
Full changelog: CHANGELOG.md 4.0.0
v3.2.0 — context lifecycle skill (mnemos_assemble_context, mnemos_context_rewrite, mnemos_hooks)
v3.2.0 — mnemos-context-lifecycle skill (closes #209): cover mnemos_a…
v3.1.0 — pi distribution channel + integration stamp fix
- 2026-09-01
MINOR — two additive, non-breaking changes: the npm/π distribution channel (new package surface, no core changes) and an integration stamp-placement fix (self-heal after frontmatter). No API breaks; no migration required.
Added
- npm/π distribution channel —
mnemos-pipackage published under three names (mnemos-pi,@korrlabs/mnemospi,@korrlabs/mnemos-pi) via OIDC trusted publishing (no long-lived npm token).package.jsondeclares the π extension entry points;scripts/sync-version.mjskeepspackage.jsonversion synced frompyproject.toml(single source of truth);scripts/publish-all.mjspublishes all three names idempotently;.github/workflows/publish-npm.ymltriggers onv*tags. - LICENSE — MIT license file added for npm packaging.
Fixed
- Integration stamp placement — the self-heal stamp is now placed after frontmatter in integration templates (
integrations/instructions/*,integrations/skills/*), closing the skill-loading bug where frontmatter parsing broke on stamp-injected files.src/mnemos/cli/integration.pyrefactored for correct stamp insertion;tests/test_integration.pyextended with coverage for the stamp-after-frontmatter case.
v3.0.0 — the publication-engine major
The publication-engine major — ADR-0019 semantics: immediate visibility by default, fail-closed danger gates, the async refine engine, reason-neutral retraction, terminal quarantine. Engine content details: see CHANGELOG [2.15.0].
New since 2.15.0:
- Release-pipeline integration (#179) — connected in local symlink mode (
scripts/run-release-local.sh); the standalone local release script is deprecated. - Living dev-plan (#187) — per-wave progress snapshot + changelog discipline.
- Issue-tracker practice — Phase 2 backlog runs in the tracker; the known mcp-SDK bug is tracked in #185.
Versioning policy v2 (directive 5a5ac447): majors mark engine landmarks; plan completions arrive as minors. The earlier v3.0.0 → 2.15.0 rollback was SemVer-incorrect; 2.15.0 stays published as the historical minor, this major supersedes it.
No binaries attached (honest line): CI lock in effect, pipeline gates #180 / #181 / #182 / #183 are open — a full artefact run is currently impossible. Artefacts ship from 3.1.0 once the gates close.
v2.15.0 — in-process Hermes, immediate visibility, ADR-0019 pipeline
Minor release — two migration-relevant changes since 2.14.1. Read the migration notes below before upgrading.
Version note: minor per owner policy — major reserved for full roadmap completion (ADR-0019 Phase C/D + benchmark waves pending); the Hermes plugin carries its own breaking-change signal at plugin.yaml 3.0.0.
Breaking changes
- Hermes plugin 3.0.0 — in-process adapter. The Hermes
MemoryProviderplugin is now a thin shim over the new in-process adaptermnemos.adapters.hermes(ADR-0017 D1 contract). Config keysbase_url/api_key/totp_secretare removed; the plugin embeds the memory server in-process and requires themnemospackage importable in the Hermes Python environment. New keys:data_dir,vault_path,publish_on_write,sync_min_user_chars. The 15mnemos_*tool names/params are unchanged. - Immediate visibility by default. New
mnemos.visibilitypolicy knob (immediate|curated);immediateis now the default (ADR-0019 Phase B2b) — entries are visible on write, with async refinement instead of a publish-gated pipeline.
Also in this release
- ADR-0017 Phases 0-1 (24 PRs): zero-config loopback profile, universal integration targets (
zcode,agents), MCP presets + adapter template, theassemble_contextprovider contract (recall → filter → mandatory secret scan → CacheAligner → budget, provenance on every block), lifecycle hooks +MnemosSDKfacade, D5 golden-set measurement baseline, Hermes migrated onto the contract. - ADR-0018 security tracks: scan-at-issuance on every surfaced channel (search/recall/filter/title paths,
<REDACTED:pattern>with per-itemredactions), CCR project scoping, strong-form marker validation (existence + issuer ledger + integrity), tiered FTS5 snippet scanning. - ADR-0019 complete: enumerated danger detectors, fail-closed publish/ingest gates, the refine loop (CAS intake, transactional projection swap, failure lanes), quarantine mechanics, reason-neutral retraction across surfaces.
- ADR-0020: memory benchmark framework.
Test suite: 2181 passed.
Full changelog: https://github.com/Korrnals/mnemos/blob/main/CHANGELOG.md
Note: CI is disabled by owner decision (billing) — no wheel/container assets are attached to this release (same posture as v2.14.1); build from source or the PyPI pipeline when re-enabled.
v2.14.0
[2.14.0] - 2026-07-31
New user-visible feature release — the mnemos_workflow MCP tool + workflow_status entity + state machine (mnemos #96), the workflow lifecycle layer. Separates mutable workflow state from the append-only tag classification. New MCP tool + entity + REST + CLI = MINOR bump per SemVer.
Added
workflow_statusentity + state machine (mnemos #96) — a mutable lifecycle layer for a memory, distinct from the append-only tag classification. Six states (open,in-progress,blocked,resolved,done,withdrawn) with a server-enforced state machine:blocked → doneis forbidden (a stuck dependency must go throughresolvedfirst — blocked → resolved → done);done/withdrawnare terminal (no outgoing edges);openhas no edge toblocked(a memory must enterin-progressbefore it can be blocked). Backed by a SQLite migration (memory_workflow_statusprojection +memory_workflow_historyaudit table). Implemented inMemoryManager.workflow_set/workflow_get/workflow_historywith five guardrails: G1 audit log (rejected transitions write no audit row — the log records state changes, not attempts), G2 stale-lock auto-release (default24h), G3 idempotent transitions (same-status is a no-op, no write, no audit row), G4 force-unlock (requiresreason), G5 per-memory rate limit (default30/min — per-memory, not per-actor: churn on one memory is throttled regardless of which actor drives it). Phase 1 ships weak identity —actoris a free-form string with NO authn/authz; the guardrails are the only protection until a future phase bindsactorto an authenticated principal.mnemos_workflowMCP tool (#96) — grouped lifecycle tool via anaction: enum [set, get, history]dispatch, reusing theaction: enumpattern proven bymnemos_tags(#97, ArchCom 2026-07-18 session 2).action="set"transitions the status (requiresmemory_id,to,actor);action="get"returns the current status + lock owner;action="history"returns the audit trail. Thin wrapper over the manager — the state machine and guardrails CANNOT be bypassed from the MCP layer.- Nested REST endpoints (#96) —
GET/POST/DELETE /api/v1/memories/{memory_id}/workflow(nested under the memory, not a top-level/status— per ArchCom 2026-07-18 session 2).POSTreturns409on a guardrail violation;GETreturns404if the memory is missing.DELETEis a cancel / withdraw (terminalwithdrawn, irreversible) — it is not a lock-release-to-resumable; the state machine has no edge back toopen. - CLI
workflowsubcommand (#96) —mnemos workflow get|set|historythin wrappers over the manager;ValueError(guardrail / state-machine violation) surfaces as a red error line + exit 1, mirroring the MCP / REST surfacing. - Docs (EN + RU) — full
mnemos_workflowreference inmcp-tools.md(states diagram, input/output tables, guardrail table, lock semantics, REST equivalent, Phase 1 weak-identity note).
Install: pip install mnemos==2.14.0 · Container: ghcr.io/korrnals/mnemos:2.14.0
Branch chain (git-workflow-mnemos): feat/96-workflow-status → dev-workflow-status (squash) → release/2.14.0 → main (merge-commit + tag v2.14.0)
Full changelog: see CHANGELOG.md
v2.13.0 — mnemos_tags MCP tool (pilot #97)
New user-visible feature release — the mnemos_tags MCP tool (pilot #97), the proof-of-concept for grouped MCP tool consolidation per ArchCom 2026-07-18 session 2. New MCP tool = SemVer MINOR bump (2.12.1 → 2.13.0).
Added
mnemos_tagsMCP tool (pilot #97) — grouped bulk tag operations via anaction: enum [rename, remove, add]dispatch.action: enum+ flat properties chosen overoneOf/discriminated unions (render unreliably in MCP clients) and over dot-notation.action="rename"is identical tomnemos_tags_rename;action="remove"drops exact tags (or, withwildcard=true, prefix-matched tags);action="add"appends tags to memories matching aproject/agentfilter. Shared_commit_tagspath + FTS5-safeUPDATEkeeps the external-content index consistent. Contract validation is strict forremove/add(rejects contract-breaking results per memory with anerrorsentry, write skipped) and lax forrename.dry_run=trueby default.mnemos_tags_renamekept as a non-breaking alias. Docs EN+RU:tag-contract.md(+ catalogue rows inmcp-tools.md).
Install
- pip:
pip install https://github.com/Korrnals/mnemos/releases/download/v2.13.0/mnemos-2.13.0-py3-none-any.whl(when the local-release build publishes the wheel) - container:
ghcr.io/korrnals/mnemos:2.13.0
Full changelog: v2.12.1...v2.13.0
v2.12.1 — Federation hotfix + hardening + local-release pipeline
Full Changelog: v2.12.0...v2.12.1
mnemos 2.12.0 — Federation
Federation stack: Phase 1/2 HTTP/A2A + M1 mesh contract + M3 Python client + M4.0 MnemosCore server + ADR-0016 threat model + auto-cron bridge + contract sync regression test. See CHANGELOG.md for details.