Skip to content

Tags: cdeust/Cortex

Tags

v3.13.2

Toggle v3.13.2's commit message
v3.13.2 — revert plugin.json to launcher (marketplace install path)

v3.13.1

Toggle v3.13.1's commit message
v3.13.1 — SQLite A3 migration + pinned plugin versions

v3.13.0

Toggle v3.13.0's commit message
v3.13.0 — Scalability Program Complete + Marketplace Hardening

All 8 phases delivered:
  * Phase 0.4.5: memory_entities backfill (100% coverage)
  * Phase 1: fragility sweep (9 parallel improvements)
  * Phase 2: JOIN replacements (plasticity / synaptic tagging /
    co-activation Hebbian UPSERT with UNIQUE partial index)
  * Phase 3 (A3): lazy heat + homeostatic scalar + fold — issue #14
    root cause eliminated
  * Phase 4: chunked consolidate + streaming Welford moments (Pébay
    2008 §3.1 pairwise merge)
  * Phase 5: ConnectionPool + asyncio.to_thread + admission semaphore
    + I10 invariant test
  * Phase 6: QoL + antifragile
  * Phase 7: NFC content hardening, bidi-override stripping
    (CVE-2021-42574), Prometheus text-format metrics, Dockerfile,
    cortex-doctor CLI, marketplace-consistent hooks

Regression gate (all 3 benchmarks PASS within 0.5pp of README v3.11):
  LongMemEval  R@10 97.8%  MRR 0.881  (exact match on post-Phase-5)
  LoCoMo       R@10 92.3%  MRR 0.791
  BEAM-100K    MRR  0.591  R@10 79.0% (exact match)

Test suite: 2411 passing (+86 new in this program).

Marketplace install (zero-Python-assumption):
  uvx --python 3.13 --from 'neuro-cortex-memory[postgresql]' \\
      neuro-cortex-memory         → MCP server
      cortex-hook <hook_name>     → lifecycle hooks
      cortex-doctor               → 8-check setup verification

Breaking: memories.heat renamed to heat_base. Auto-migrated by
MIGRATIONS_DDL on first connect — no manual intervention needed.

New env vars (all optional, sensible defaults):
  CORTEX_MEMORY_POOL_INTERACTIVE_MIN/MAX    (2, 8)
  CORTEX_MEMORY_POOL_BATCH_MIN/MAX          (1, 2)
  CORTEX_MEMORY_POOL_DISABLED               (false — kill switch)
  CORTEX_MEMORY_CONTENT_MAX_BYTES           (1 MB)

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

v3.12.2

Toggle v3.12.2's commit message
release: v3.12.2 — darval field report fixes (#14)

Version bump. Changes since v3.12.1 are grouped in three preceding commits:

  63dd8ef — feat(backfill+homeostatic): age-decayed initial_heat +
            bimodality-aware cohort correction (#14 P1)
  230cd68 — feat(diagnostics): cls + memify reason_for_zero signals
            (#14 P2)
  265c940 — feat(entities): case-variant canonicalization + merge
            migration (orthogonal to darval but surfaced by the I4 audit)

## What v3.12.2 delivers

**User-visible fix (issue #14 P1)**: backfills no longer dominate
recall for 24h+ after import. Memories from old conversations enter
at age-decayed heat (30-day half-life, 0.3 floor), and if the cohort
is still bimodal post-decay, homeostatic now applies subtractive
cohort correction — a primitive that can actually merge peaks,
unlike the order-preserving Turrigiano multiplicative scaling that
couldn't move `bimodality: 0.85` in darval's field report.

**Operator visibility (issue #14 P2)**: `cls` and `memify` consolidate
stages now report `reason_for_zero` / `reason_for_inaction` when
their counters are all zero — distinguishing early-return from
genuine quiet-store runs. Stage-exit `logger.info` emits greppable
`stage=… reason=passed_through` for the quiet case.

**Data integrity**: `entities` table insert now canonicalizes case
(Output/OUTPUT merge at write time); a migration script is provided
to collapse the 111 pre-existing duplicate groups Curie's I4 audit
found. Breaks the silent "no co-access edge because entity IDs
differ" class of bug.

## Tests

2199 passed on the full suite (+34 since v3.12.1 baseline).

## Migration required to close #14

After `pip install cortex==3.12.2`, users hit by #14 P1 should run
`scripts/v3_12_2_entity_canonical_merge.sql` once to dedupe existing
entities. For the bimodal heat distribution itself: the next
consolidate run will apply cohort correction; for faster convergence,
several consolidate cycles in a row will reduce std proportionally.

## NOT in v3.12.2

The A3 lazy-heat migration (Phase 3 of the scalability program —
docs/program/) is still ~2 weekends away. Homeostatic stage wall-time
stays at ~11.5 min on 66K memories until A3 lands; this release fixes
the SEMANTICS (cohort correction merges peaks) but not the wall-time
(still O(N) Python + per-row UPDATE). The latter collapses to O(1)
once `effective_heat()` PL/pgSQL lands.

Refs #13, #14

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v3.12.1

Toggle v3.12.1's commit message
release: v3.12.1 — hotfix: emergence_tracker import + I2 regression g…

…uard

Tag-and-release for the emergence_tracker → emergence_metrics import fix
already on main (c5a1862), plus a static regression test that freezes
the canonical heat-writer allow-list (invariant I2 from
docs/invariants/cortex-invariants.md).

## What's fixed (already on main)

- `consolidate.py` was importing `emergence_tracker.generate_emergence_report`
  but that function moved to `emergence_metrics` when the module was
  split to satisfy the 300-line cap. Caused emergence stage to return
  `duration_ms: 0` with AttributeError in v3.10, v3.11, and v3.12.0.
  Reported by darval in #13 (Run B) and reconfirmed on a fresh install
  in #14 (P0). Fix in c5a1862.

## What's new in this tag

- `tests_py/invariants/test_I2_canonical_writer.py`: static AST+regex
  scanner that freezes the set of 8 known heat-writer sites:
  pg_store.py:237/255, anchor.py:134, preemptive_context.py:135,
  pg_schema.py:739, codebase_analyze_helpers.py:111, sqlite_store.py:
  214/230. Any new site outside the allow-list fails the test.

  Rationale: the emergence_tracker bug was a "split the module, update
  the caller somewhere far away" class of regression. The same class
  applies to raw heat writes — A3 (Phase 3 of the scalability program)
  will collapse writers to one canonical helper; I2 stops any new site
  from re-introducing the paradigm. Pre-A3 the test passes with the
  5+3 known sites in the allow-list; post-A3 the allow-list collapses
  to one entry and strict CI enforcement kicks in.

## Tests

2199 passed on the full suite (up from 2165 baseline: +2 I2 tests,
+34 Phase 2 parity / entity canonical / backfill-heat tests landing in
v3.12.2).

Refs #13, #14

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v3.12.0

Toggle v3.12.0's commit message
v3.12.0 — upstream MCP ingest

v3.11.0

Toggle v3.11.0's commit message
v3.11.0 — consolidate batching + plasticity/CLS/cascade fixes

v3.10.1

Toggle v3.10.1's commit message
v3.10.1 — wiki_purge tool

v3.10.0

Toggle v3.10.0's commit message
v3.10.0 — Cowork compat + TDQS schema enrichment

v3.9.1

Toggle v3.9.1's commit message
v3.9.1 — hooks.json nested schema fix (#12)