Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cdeust/Cortex
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v4.20.0
Choose a base ref
...
head repository: cdeust/Cortex
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v4.21.0
Choose a head ref
  • 10 commits
  • 28 files changed
  • 2 contributors

Commits on Sep 9, 2026

  1. docs: rewrite the README around its three positions, marketplace-comp…

    …lete (#548)
    
    * docs: rewrite the README, and gate the drift that produced it
    
    777 lines down to 180. The old one buried what a reader decides on
    under a release archive that stopped at v4.13.0, twelve releases
    behind, and a badge whose alt text said 4.17.1 while the badge itself
    said 4.20.0.
    
    The rewrite keeps what a reader needs to decide and to install: the
    problem, the install, what is automatic versus what you call, one
    benchmark table with its provenance, the storage trade-off as a table
    rather than three paragraphs, and the limits stated before the reader
    hits them. The cortex-viz identity migration is preserved in full,
    folded into a details block, because two contract tests pin those exact
    commands and they are right to.
    
    Every link in the file was resolved against the tree; two I first wrote
    did not exist and were replaced with real targets.
    
    The systemic half: the badge SVG is generated and gated but its README
    alt text is hand-written prose that nothing read, which is how it
    drifted three minor versions. It is now the 17th version surface, and a
    test drives the desync rather than asserting the count alone.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
    
    * docs: write the README around what makes Cortex different
    
    The first cut compressed the old sections instead of deciding what the
    file should say. It kept the generic claim (stores what happened,
    brings it back, which is what every memory tool claims) and deleted the
    two parts that made the case: the concrete Monday/Thursday scenario and
    the real tool output.
    
    What differentiates Cortex is quality control on memory, and none of it
    was above the fold. The predictive-coding gate that merges a
    near-duplicate instead of filing it beside the original. Provenance
    grading at write time, locally: a memory whose file path no longer
    resolves is stored as unverifiable rather than returned later as fact.
    Supersession, so a correction demotes what it replaces and the chain
    stays readable. Thermodynamic decay, so the store curates itself.
    
    The file now opens on the problem those solve (a store that accumulates
    gets worse as it grows and you cannot tell what to trust), shows each
    mechanism with output taken from a real run, and only then explains
    what it feels like to use. The scenario is restored, tightened.
    
    229 lines, from 777.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
    
    * docs: make README welcoming while preserving evidence and limits
    
    * docs: layer the three positions and marketplace sections onto the welcoming pass
    
    Base is 0571343, the owner's tone pass, kept verbatim: install first,
    the hedged wording on consolidation and grading, the illustrative
    example in place of internal ids, and the benchmark table labelled as a
    historical v4.14.1 run. Nothing from that pass is rewritten; the merge
    adds to it.
    
    Added, because the marketplace and the MCPB directory require them and
    both earlier cuts in this PR had dropped them: the not-an-Anthropic-
    product affiliation disclaimer under the banner, Privacy Policy and
    Support sections matching the privacy_policies and support fields
    manifest.json already declares, the License section with its
    independent-work statement and algorithm attribution, and the Citation
    block. All restored from the pre-rewrite README, word for word.
    
    Added, for the three positions the project holds: the Sovereign /
    Cross-platform / Eco-responsible block after the header, the full
    what-works-where host matrix with the uvx, Gemini extension and Codex
    launch commands, and the Green software engineering section with every
    hedge intact (no CO2 or energy figure is published; the SCI tooling's
    own README says what it does not establish; the shipped efficiency PRs
    are listed; the hook-boot constant is cited to auto_recall.py).
    
    The one paragraph that moved rather than stayed put is the
    never-downgraded PostgreSQL note, from Storage into Install, where the
    behaviour it describes happens. The Project link row is absorbed into
    Development. 464 lines.
    
    Every relative link resolves against the tree. The codex contract
    tests and the version-surface tests pass unchanged.
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
    cdeust and claude authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    dec3793 View commit details
    Browse the repository at this point in the history
  2. Remove independent project disclaimer from README

    Removed the disclaimer about the project's independence from Anthropic.
    cdeust authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    5e94667 View commit details
    Browse the repository at this point in the history
  3. docs: restore the green and privacy sections word for word from v4.20…

    ….0 (#549)
    
    Follow-up to #548, cut from main at 5e94667. README.md only.
    
    A fresh-context review of the merged head found that the blocks the
    PR had described as restored from v4.20.0 were not. The Green software
    engineering section had lost 23 lines, including two hedges that are
    the point of the section: that the operator supplies the region,
    observation period, lifecycle assessment and reservation assumptions,
    and the closing paragraph stating that no token-savings or CO2 figure
    is published for end-to-end sessions because none has been measured.
    Security had been folded into Privacy Policy and both paraphrased;
    Support and the License opener carried small wording changes.
    
    Every one of those blocks is now the v4.20.0 text, plus the
    Verification section that follows the green section there (the
    per-mechanism ablation evidence and both paper PDFs), which had been
    dropped in an earlier cut. Each block was compared to
    `git show v4.20.0:README.md` at word level after whitespace
    normalisation inside the splicing script; all comparisons print True.
    
    The cross-platform positioning paragraph no longer lists hosts on its
    own, since that list did not match the table it pointed to; it names
    Claude Code, the Claude Desktop bundle and Claude Cowork and defers
    every other host to the table.
    
    Deliberately not reintroduced: the independent-project disclaimer the
    owner removed on main in 5e94667.
    
    Gates on this head: link and cited-path resolution, no duplicated
    heading, check_doc_claims.py, check_version_surfaces.py (17 sites),
    and the codex-contract and version-surface tests (33 pass).
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    1e120c6 View commit details
    Browse the repository at this point in the history
  4. fix(benchmarks): reproduce.sh --only fails closed on a selector that …

    …runs nothing (#550)
    
    --only was compared token for token against longmemeval, locomo, beam
    and decision-ids, while the script itself prints the artifact names
    longmemeval-s and beam-100K. Passing one of those, or any typo, matched
    no benchmark: the script built the package, started and stopped an
    ephemeral container, wrote MANIFEST.json and START_SNAPSHOT.json,
    measured nothing and exited 0. Reproduced on main before the change.
    
    A sourced library, benchmarks/lib/bench_only.sh, maps the two aliases
    to the tokens want_bench matches and fails closed on an unknown or
    empty token with exit 2 and the accepted list, at the end of
    parse_args, before any uv run or container start. Empty tokens are
    detected on the whole string first, because read -a drops a trailing
    empty field.
    
    Eleven tests pin the alias table, the rejection cases and the script's
    end-to-end behaviour, which now needs neither Docker nor a synced
    environment. README row and CHANGELOG entry added.
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    7153f6d View commit details
    Browse the repository at this point in the history
  5. docs: reflect the v4.20.0 LongMemEval-S measurement in the README, wi…

    …th its artifacts (#551)
    
    * docs: reflect the v4.20.0 LongMemEval-S measurement in the README
    
    The retrieval table cited only the v4.14.1 pre-tag run. It now shows
    v4.20.0 beside it: Recall@10 97.8%, MRR 0.9047, n=500, measured on the
    exact tagged tree (86251ab) with reproduce.sh --only longmemeval
    --no-ablation in an isolated ephemeral pgvector pg16 container,
    reranker loaded, consolidation disabled. The artifacts are committed
    under benchmarks/results/repro/20260909-v4.20.0-longmemeval-s/:
    longmemeval-s.json, MANIFEST.json and START_SNAPSHOT.json.
    
    The provenance paragraph states the delta against v4.14.1 (0.4 points
    of Recall@10, 0.012 of MRR) and the run's own floor check as the script
    reports it: Recall@10 within the 0.005 tolerance of the July floor,
    MRR 0.0093 below its floor, non-blocking by design, with the pointer to
    docs/agent-guidance.md on why main no longer clears those floors. The
    Verification lead-in is scoped to the v4.14.1 figures, since the
    v4.20.0 run has no ablation campaign behind it.
    
    The earlier full run on the same tree produced the same numbers before
    the host killed it and its JSON was lost; its log cannot be committed
    (.gitignore excludes benchmarks/results/**/*.log) and an absent
    artifact cannot be cited, so the leg was re-measured.
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    
    * docs: state the run's dirty flag from the artifact's embedded manifest
    
    The JSON's manifest.repro.git_dirty is false; the standalone MANIFEST.json has no such field, which is why the first cut said none existed. Found by the fresh-context review.
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    3cfc4d6 View commit details
    Browse the repository at this point in the history
  6. chore(marketplace): deliver zetetic-team-subagents v2.40.0 and hyperm…

    …nesia-mcp-viz v3.1.2 (#552)
    
    Moves the two GitHub-sourced pins to the releases cut today:
    zetetic-team-subagents v2.40.0 (657795b87d884f465d218492cc368ba25525307d,
    release run 34403584553 green, assets attested) and hypermnesia-mcp-viz
    v3.1.2 (cd471aa9750c356ced8048394c9ac28fff0da605, the squash commit of
    cdeust/cortex-viz#155). Until this lands, both releases reach zero
    installs (docs/agent-guidance.md, Releasing; Cortex #179).
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 9, 2026
    Configuration menu
    Copy the full SHA
    e215899 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2026

  1. chore(marketplace): deliver zetetic-team-subagents v2.40.1 (#553)

    Moves the zetetic-team-subagents pin to v2.40.1
    (586e439e575e9759c3224b840768d15c3604ac2f): the worktree sweep now
    recognises squash merges and <repo>/.claude/worktrees, the Linux age probe
    is fixed, and `worktree-manager.sh inventory` reports every worktree with
    the verdict sweep will apply (zetetic-team-subagents #135). Until this pin
    moves, installs keep the sweep that removed nothing for two months.
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    f12d506 View commit details
    Browse the repository at this point in the history
  2. chore(marketplace): deliver zetetic-team-subagents v2.41.0 (#554)

    Moves the zetetic-team-subagents pin to v2.41.0
    (77b4f78503e6842928039b75440e20ea670584c8): every state file the plugin
    owns now lives under ~/.claude/zetetic/, an existing flat install is
    migrated once without overwriting anything, and setup.sh ends with a
    layout report (zetetic-team-subagents #137, owner issue #136).
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    8d71210 View commit details
    Browse the repository at this point in the history
  3. fix(hooks): the decision gate judges every language, test file and he…

    …ader (ADR-1060 revision, no exception) (#555)
    
    * fix(hooks): the decision gate judges every language, test file and header
    
    Owner ruling of 2026-09-10 on ADR-1060: no exception. Six lines of ///
    rationale in a tests/*.rs file passed the gate because the language was
    deferred "until measured", the path was a test root and the run sat before
    anything executable. Each exemption sufficed alone.
    
    - _decision_gate_lex.py: one character-level scanner for the //, /* */, --
      and ; families (string literals, Rust raw strings, backtick strings and
      block comments tracked), covering .rs .js .jsx .ts .tsx .go .java .c .h
      .cpp .hpp .cc .swift .kt .kts .cs .scala .m .mm .dart .php .sql .lua .hs
      .el .clj .lisp, plus the full # family (.py via tokenize, the shell
      family via the heredoc skip, .pl .r .toml .yaml .yml .cfg .ini). The
      suffix table and the scanner table are one table (LANGUAGES).
    - decision_gate.py: is_test_path, _TEST_DIRS, _TEST_FILE_RE, _is_header_run
      and the header boundary are deleted; the refusal states that no header,
      test file or language is exempt. PROSE_RUN_LIMIT, grandfathering, the
      source: pointer, fail-open and CORTEX_DECISION_GATE=off stay.
    - Python: a comment token after code on the same line no longer counts as
      a comment line, as the scanner's docstring already claimed.
    - ADR-1060 wiki page: revision section with the leak, what is removed,
      what stays and the tracked-tree measurement at 8d71210 (1479 files in
      judged suffixes, 10 with a header run of 8+, all grandfathered); mirror
      regenerated with scripts/check_project_wiki.py --write.
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    Claude-Session: https://claude.ai/code/session_01LSTGMnuSuUXWs7ZBofW1AW
    
    * docs(changelog): record the ADR-1060 no-exception revision of the decision gate (#555)
    
    Co-Authored-By: Claude Fable 5.1 <[email protected]>
    Claude-Session: https://claude.ai/code/session_01LSTGMnuSuUXWs7ZBofW1AW
    
    ---------
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    88fbd74 View commit details
    Browse the repository at this point in the history
  4. release: 4.21.0 (#556)

    The decision gate judges every language, test file and header (ADR-1060
    revision 2026-09-10, no exception, #555): // and /* */, --, ; and # comment
    families, no test-path or header exemption, PROSE_RUN_LIMIT unchanged at 8,
    grandfathering and the explicit override kept. Every version surface moves
    to 4.21.0 (pyproject, plugin and marketplace manifests, server.json,
    manifest.json, package.json and lock, gemini and codex manifests, badge,
    uv.lock, README alt text) and the hypermnesia-mcp-viz pin moves to v3.2.0
    (2482563172c0f02a1c022b82cb4e38299b7748b4, cortex-viz #156: the Wiki view
    lists project wikis, where project_root ADRs actually live).
    
    
    Claude-Session: https://claude.ai/code/session_01LSTGMnuSuUXWs7ZBofW1AW
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    cdeust and claude authored Sep 10, 2026
    Configuration menu
    Copy the full SHA
    5f2321d View commit details
    Browse the repository at this point in the history
Loading