github mnemosyne-oss/mnemosyne v4.0.0b1

pre-release7 hours ago

What's Changed

  • docs: surface sponsors near the top of the README, fix the blog scaffold by @AxDSan in #590
  • docs(readme): give the sponsor block real presence by @AxDSan in #591
  • governance: add CODEOWNERS and MAINTAINERS.md by @AxDSan in #597
  • docs(hermes): clarify Docker multi-profile wrappers by @dplush in #609
  • fix(hermes): preserve wrapper installs safely by @dplush in #610
  • fix(model-refresh): degrade malformed confidence instead of raising or outranking by @Milgauss in #574
  • fix: widen sqlite-vec candidates before working-memory filters by @pvspencer22 in #608
  • Fix malformed tables by @SaSteMi in #569
  • fix(benchmarks): carry the #544 version regex fix to the benchmark copy by @fesalfayed in #596
  • docs(persona): clarify tier ordering and retention semantics by @Milgauss in #612
  • feat(diagnostics): report resolved embedding dimension in doctor by @paoloantinori in #567
  • fix(hermes): report memory_not_found when invalidate matches no row by @Sanjays2402 in #542
  • fix: code audit F-rule cleanup (10 files, 73 lines) by @ether-btc in #483
  • fix: add register() bridge so Hermes memory provider discovery finds MnemosyneMemoryProvider by @oscarello in #565
  • ci: widen Ruff baseline to F/RUF022, scoped to PR changed-files by @ether-btc in #568
  • fix(hermes): align packaged manifest version by @dplush in #588
  • fix: honor dry run for file imports by @dplush in #540
  • fix(config): resolve recall weights at runtime by @dplush in #572
  • fix(config): resolve degrade batch at runtime by @dplush in #626
  • fix(persona): retain small sections under token cap by @dplush in #627
  • docs: complete unreleased release notes by @dplush in #628
  • fix(beam): fail loudly on incomplete vector rebuilds by @dplush in #603
  • docs: add changelog entry for #603 by @dplush in #629
  • fix(hermes): reject mismatched wrapper Python runtimes by @dplush in #630
  • docs(hermes): explain wrapper Python compatibility by @dplush in #632
  • docs(recall): clarify runtime weight precedence by @dplush in #633
  • docs(cli): explain rebuild repair exit codes by @dplush in #634
  • docs(hermes): explain direct import dry run by @dplush in #636
  • test(beam): cover successful vector reindex mapping by @dplush in #637
  • fix(beam): invalidate persisted cache after remember by @dplush in #566
  • feat(cli): report core and Hermes versions by @dplush in #643
  • fix(hygiene): unwrap audit envelope before cleaning candidates by @Awshesh12 in #619
  • test(hermes): cover invalidate audit metadata by @dplush in #638
  • fix(embeddings): fail loud on unknown embedding model by @paoloantinori in #521
  • feat(recall): add MNEMOSYNE_LEXICAL_GATE_MIN knob to override the lexical admission gate by @hofstatter in #639
  • docs(configuration): document the lexical recall gate + measured recall-flag data by @kenichi-shibata in #622
  • chore(hermes): prepare 0.6.0 standalone release by @dplush in #667
  • fix: record recall diagnostics on the polyphonic recall path by @cgray2222 in #668
  • fix(mcp): report failed invalidations accurately by @dplush in #675
  • test(mcp): cover hygiene cleanup with legacy importance by @dplush in #673
  • fix: recognize bge-m3 embedding alias by @dplush in #674
  • fix: validate invalidation replacements by @dplush in #678
  • fix: replace bare except with logger.warning in legacy provider register() by @ether-btc in #650
  • fix(hermes-provider): advertise shared_* tools in plugin.yaml manifest by @ether-btc in #648
  • fix(hermes): follow wrapper-script exec target when locating Hermes Python by @Awshesh12 in #620
  • fix: harden Hermes automatic prefetch relevance by @pvspencer22 in #616
  • test(repair): avoid brittle process fd count assertion by @mikemikimike in #614
  • fix(hermes): rebind memory on session switch by @mikemikimike in #604
  • fix(beam): invalidate cache after forgetting memory by @dplush in #593
  • fix(hermes): support root-only plugin installs by @topbronson in #592
  • feat(llm): add MiniMax provider preset (regional endpoints + model config) by @octo-patch in #575
  • Update feature comparisons in README.md by @gustavami in #534
  • test(mcp): cover SSE messages mount lifecycle by @aaka3207 in #652
  • fix(cli): normalize MSYS backup destinations by @dplush in #683
  • docs: document Hermes integration test setup by @dplush in #684
  • fix(hermes): validate the discovered interpreter and honor --python (follow-up to #620) by @tonythomson in #623
  • docs: add embedding model reindex runbook by @dplush in #698
  • fix(beam): preserve degradation savepoint during vec refresh by @dplush in #694
  • docs: clarify LLM consolidation configuration by @dplush in #686
  • fix: warn before uncached local model download by @dplush in #704
  • fix(hermes): export the resolved memory bank by @dplush in #702
  • feat(llm): allow relocating the local model cache by @tonythomson in #713
  • fix(mcp): expose canonical retirement tool by @dplush in #723
  • fix(hermes): honor tool allowlist during discovery by @dplush in #725
  • test(hermes): cover no-yaml allowlist parity by @dplush in #731
  • fix: fail closed on truncated reasoning traces by @dplush in #734
  • docs: add release note for truncated reasoning fix by @dplush in #737
  • fix: log final API embedding failures by @dplush in #738
  • docs: add release notes for MCP and Hermes fixes by @dplush in #740
  • docs: correct FastEmbed E5 model examples by @dplush in #746
  • fix(mcp): handle non-ASCII bearer tokens safely by @ddddddddwp in #743
  • fix: status reports interpreter mismatch instead of version mismatch (#736) by @ddddddddwp in #751
  • fix: preserve caller transactions in memory batches by @dplush in #760
  • fix: keep direct wrapper stores atomic by @dplush in #764
  • fix(shmr): pass list to embeddings.embed, drop non-existent facts.status filter (#762) by @ddddddddwp in #765
  • fix(mcp): advertise only tools with dispatch handlers (#728) by @ddddddddwp in #758
  • fix(hermes): use the shared environment check in the provider diagnostic by @tonythomson in #711
  • fix(core): normalize valid_until writes and comparisons to aware UTC (#525) by @ddddddddwp in #759
  • fix(packaging): exclude Hermes sources from Core wheel by @ddddddddwp in #730
  • fix: split leading-hyphen fragments into FTS-safe recall terms (#744) by @ddddddddwp in #750
  • fix(core): bound SQLite FD retention under connection churn by @israellot in #747
  • fix(hermes): scope auto-sleep to triggering session; honor auto_sleep_enabled (#771) by @ddddddddwp in #772
  • fix(beam): exclude dialog sources from working-memory vec pool (#696) by @Goonik in #705
  • fix(beam): cascade gists on forget by @dplush in #786
  • chore(release): correct the pending version to 4.0.0 and add the migration guide by @AxDSan in #775
  • docs(rfc): correct seven errors in the multimodal RFCs and de-vendor the seam by @AxDSan in #776
  • feat(media): media asset registry and moment index (RFC 0003 phase 0) by @AxDSan in #777
  • feat(core): give the blob store a reader via ContentResolver and BlobResolver by @AxDSan in #778
  • feat(beam): let remember() take an explicit memory_type and opt out of dedupe by @AxDSan in #779
  • feat(modality): vendor-neutral provider seam for describing non-text content by @AxDSan in #780
  • feat(media): remember_media(), reference to recall by @AxDSan in #781
  • docs: sweep the CHANGELOG against v3.15.1..HEAD and write the 4.0.0 upgrade guide by @AxDSan in #792
  • feat(release): support PEP 440 pre-release tags so a major can have a beta by @AxDSan in #794
  • docs(releasing): make RELEASING.md the whole pipeline, and fix two wrong claims by @AxDSan in #791
  • chore(hermes): bump the standalone plugin to 0.7.0 and stop pinning the version in tests by @AxDSan in #795
  • feat(release): make release.py understand pre-releases, and stop blaming this repo for sibling drift by @AxDSan in #796
  • chore(release): bump the pending version to 4.0.0b1 for the beta cycle by @AxDSan in #799
  • test: make modality stub response order deterministic (#798) by @ddddddddwp in #801
  • fix(hermes): retain host backend while a primary provider remains active by @dplush in #802
  • fix: preserve committed mutations when cache invalidation fails by @dplush in #803
  • fix(hermes): make wrapper validation timeout configurable by @dplush in #805
  • fix(hermes): explain Windows symlink privilege recovery by @dplush in #808
  • fix(hermes): discover native Windows venv Python by @dplush in #811
  • docs: add native Windows Hermes recovery guide by @dplush in #812
  • fix: detect CJK-labelled secrets across all handling surfaces by @ddddddddwp in #810
  • fix(cli): emit static error codes at failure boundaries by @bayhnf in #814
  • docs(changelog): order the 3.12.x sections descending, drop a stale artifact by @AxDSan in #824
  • fix(build): exclude examples/ from Core wheel package discovery by @AxDSan in #823
  • test(beam): stop the valid_until fixture failing for two hours every day by @AxDSan in #825
  • fix(export): disclose partial portable JSON surfaces by @dplush in #822
  • fix(shmr): keep non-dense imports usable without NumPy by @bayhnf in #839
  • fix(modality): honor known HTTP statuses for retry decisions by @dplush in #844
  • feat: add native MCP Streamable HTTP transport by @donbowman in #749
  • docs(releasing): define how a beta cycle ends by @AxDSan in #826
  • docs(skill): stop publishing deployment topology and named routing rules by @AxDSan in #845
  • fix(release): the pre-push tag comparison must allow equality by @AxDSan in #800

New Contributors

Full Changelog: v3.15.1...v4.0.0b1

Don't miss a new mnemosyne release

NewReleases is sending notifications on new releases.