Tags give the ability to mark specific points in history as being important
-
v6.1.7
Release: MNEMOS 6.1.7bbbe99fb · ·MNEMOS 6.1.7 Rate limiting now fails open at the limiter. The 6.1.0 fix guarded an exception handler the middleware never reaches, so a host on the server profile without a redis still returned 500 on every route. Pin stays 6.1.
-
v6.1.5
95c64db1 · ·MNEMOS 6.1.5 Restores the Db2 reorg-pending retry that a bad branch reconciliation dropped from the 6.1.4 build, and corrects the version string, which had silently reverted to 6.1.3. Every 6.1.x fix is audited present in this tag: Oracle ORA-02014 claim, Oracle ORA-01451 replay guard, AVX512 image portability, Db2 reorg-pending, Db2 native claim SQL, MariaDB FK charset, MariaDB JSON bind. The pin stays 6.1; the floating ghcr 6.1 tag advances here so every host lands on identical code.
-
v6.1.4
af3fa4d2 · ·MNEMOS 6.1.4 Db2 and MariaDB schema fixes. 6.1 could not start on either backend: Db2 hit SQL0668N (reorg-pending) creating the deletion-requests index, and MariaDB hit errno 150 (foreign key charset mismatch) creating memory_archive and session_memory_injections. Both found by upgrading live hosts; neither is reachable from the unit suite. Carries 6.1.3 (AVX512 image portability), 6.1.2 (ORA-01451 replay guard), 6.1.1 (ORA-02014 deletion claim) and 6.1.0.
-
v6.1.3
04e97bc5 · ·MNEMOS 6.1.3 Fixes an image-build defect: llama.cpp was compiled -march=native against the CI runner, which has AVX512, so the published image executed an illegal instruction on the first embed on any host without it. import llama_cpp succeeds and /health returns 200, so the container looks healthy; the SIGILL fires on the first write. On the production Oracle host that meant every POST killed uvicorn and systemd restarted it, with the client seeing only an empty response. The build now pins GGML_NATIVE=OFF with an AVX2-era baseline on amd64 and leaves arm64 on NEON. Carries 6.1.2 (ORA-01451 replay guard), 6.1.1 (ORA-02014 deletion claim, Db2 off Oracle compatibility mode) and 6.1.0.
-
v6.1.2
b0295828 · ·MNEMOS 6.1.2 Ships the ORA-01451 migration-replay guard that v6.1.0 and v6.1.1 omitted. Oracle deployments on those tags start once and cannot start again: the 0050 migration relaxes a column, migrations replay on every start, and Oracle rejects an already-satisfied nullability change. The guard existed on master and was described in the 6.1.0 notes, but the squashed release branch predated it, so neither published image contained it. Also carries 6.1.1 (Oracle deletion-claim ORA-02014 fix, Db2 moved off Oracle compatibility mode) and all of 6.1.0.
-
v6.1.1
34019ded · ·MNEMOS 6.1.1 Patch release on 6.1. Fixes deletion-request claiming on Oracle, which was completely broken in 6.1.0 (ORA-02014 on every tick, both workers in error, /health degraded, deletion requests queued but never processed). Anyone running 6.1.0 on Oracle should upgrade. Also splits Db2 off the shared Oracle SQL branch: it was emitting ROWNUM, which on Db2 exists only under DB2_COMPATIBILITY_VECTOR=ORA. Db2 now uses native FETCH FIRST / FOR UPDATE WITH RS USE AND KEEP UPDATE LOCKS SKIP LOCKED DATA. The generated statement was executed against a live instance of every supported backend: Oracle 23ai EE, Db2 Community Edition 12.1.5, PostgreSQL 16, MariaDB 11. Carries all of 6.1.0. Known issues unchanged: CHARON /v1/export is Postgres-only, and test:multi-worker has not been observed passing end to end.
-
v6.1.0
fe6fe776 · ·MNEMOS 6.1.0 55 commits since v6.0.1; 174 files, +10176/-1781. Federation (three defects that together stopped the fleet replicating): - Compatibility is decided on the MAJOR version. A 6.0 node refused a 6.1 node outright, so every rolling minor upgrade broke federation until an operator hand-set compat_mode=permissive on each peer. Cross-minor peers also skip the migrations-fingerprint compare, which legitimately differs between minors. - The feed defaults to the trusted-LAN full-corpus scope. create_memory writes permission_mode 600 and the world-read gate wants %10 >= 4, so the feed offered nothing and peers reported {"pulled": 0} successfully and silently. The fleet had not moved a memory since 2026-05-23. - LAN peers are registrable. FEDERATION_ALLOW_PRIVATE/ALLOW_INSECURE defaulted false, so a private fleet could not register its own peers. Set both false for offsite federation. The SSRF guard was split while doing this: link-local (cloud instance metadata), multicast, reserved and unspecified are blocked on every network regardless of the flag, while RFC1918/loopback is what the flag gates. The metadata blocklist only matches literal host strings, so a hostname resolving to 169.254.169.254 is caught only by the resolved-IP check -- which must not sit behind the LAN flag. API / packaging: - An unreachable rate-limit store no longer 500s the whole API. Dockerfile.core set MNEMOS_PROFILE=server, resolving storage to redis://localhost:6379/1 in an image that ships no Redis; SlowAPI's handler then read exc.detail off a ConnectionError and every route, /health included, returned 500. The limiter now fails open and the image defaults to memory://. - Verified building and serving on native aarch64 (CIX Sky1): image builds, container reports healthy, /health returns 200. Hygiene: - env-discipline restored: all process-environment access routes through core.config. - persistence no longer imports domain; the archive record format moved down to mnemos/persistence/archive_format.py and the domain runner re-exports it. Release-blocking fixes folded in after the first tagging attempt (the tag was moved before any image was published or any host upgraded): - Hard deletion was broken on SQLite, the default backend for the published images. The GDPR resweep called the soft_delete_target / count_live_target_rows primitives, which bind asyncpg-style ($1 placeholders, variadic params), so aiosqlite raised "Connection.execute() takes from 2 to 3 positional arguments but 4 were given" and no hard deletion could ever complete. It now uses the backend-neutral _soft_delete / _scope_counts pair, as its own docstring already described. - import-linter is clean: all 7 contracts pass. The deletion primitives and the SQL they sweep moved down to mnemos/persistence/deletion_ops.py, which is where connection-level SQL belongs; the worker imports them downward. - The unit suite is green: 3194 passed, 87 skipped, 0 failed. The previously reported failures were environment artefacts, not product defects -- 8 needed nats-py, and 5 were a stale test helper that branched on asyncio.iscoroutinefunction(conn.execute). aiosqlite's execute is not a coroutine function, so every INSERT in those tests was dropped un-awaited and the lookups correctly found nothing. - CI installs the persephone extra. Without it pytest hit a collection error and aborted the entire run, reporting "7 skipped, 1 error" while 3000+ tests never executed. KNOWN ISSUES AT THIS TAG (not regressions; recorded so the release is honest): - CHARON /v1/export is Postgres-only. On Oracle and Db2 it returns 503 "Database pool not available", which reads as a transient outage but is actually by-design unsupported -- the route uses raw asyncpg SQL. PYTHIA (Oracle) therefore cannot be backed up through the native export path; Data Pump was used for the pre-upgrade backup. - test:multi-worker is advisory (allow_failure) and had never actually run before this release -- it sits behind the lint stage and was skipped on every recent pipeline. Its first real run failed on a container-recreate race, now fixed; the smoke has not yet been observed passing end to end. - Oracle migration has NOT yet been exercised at 6.1. -
v6.0.1
0e1c26e5 · ·v6.0.1: fix llamacpp embedder missing L2-normalization (silent 0-result semantic search)
-
v6.0.0
Release: MNEMOS v6.0.0 — split-distribution GA695eebbc · ·MNEMOS v6.0.0 — split-distribution GA
-
-
-
-
-
-
-
-
-
-