Skip to content

v4.20.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 13:43
· 14 commits to main since this release
86251ab
  • release: 4.20.0 (#547)
  • feat(hooks): enforce the --no-deps hashed-install invariant (#536) (#546)
  • fix(hooks): close three decision-gate review blockers (#545)
  • fix(launcher): make the deps idempotence guard ABI-aware (#540) (#544)
  • fix(setup): stop labeling a failed model pre-cache [ok] (#537) (#543)
  • fix(setup): install requirements/setup.txt instead of a hand-written package list (#538) (#542)
  • feat(hooks): refuse a decision written into code at edit time (#541)
  • fix(setup): the installer's dependency step could neither install nor update (#539)
  • Merge pull request #535 from cdeust/test/389-provenance-mutation-coverage
  • docs: correct the _build_reason unreachability claim (#389)
  • docs: log the provenance mutation closure (#389)
  • test: close the provenance mutation gap (#389)
  • Merge pull request #534 from cdeust/feat/372-decorator-call-edges
  • docs: report the formatter file count accurately
  • feat(ast): attribute decorator calls to decorated definitions (#372)
  • Merge pull request #530 from cdeust/docs/514-validation-results
  • docs: reproduce validation from public equivalent commit
  • docs: record issue 514 retrieval validation results
  • Merge pull request #528 from cdeust/feat/514-migration-13
  • Merge pull request #527 from cdeust/feat/514-migration-12
  • Merge pull request #526 from cdeust/feat/514-migration-11
  • Merge pull request #525 from cdeust/feat/514-migration-10
  • Merge pull request #524 from cdeust/feat/514-migration-09
  • Merge pull request #523 from cdeust/feat/514-migration-08
  • Merge pull request #522 from cdeust/feat/514-migration-07
  • Merge pull request #521 from cdeust/feat/514-migration-06
  • Merge pull request #520 from cdeust/feat/514-migration-05
  • Merge pull request #519 from cdeust/feat/514-migration-04
  • Merge pull request #518 from cdeust/feat/514-migration-03
  • Merge pull request #517 from cdeust/feat/514-migration-02
  • Merge pull request #516 from cdeust/feat/514-migration-01
  • Merge pull request #515 from cdeust/feat/514-wiki-foundation
  • fix: preserve archival excerpts and finish decision comment cleanup
  • docs(wiki): migrate decision evidence batch 13/13
  • docs(wiki): migrate decision evidence batch 12/13
  • docs(wiki): migrate decision evidence batch 11/13
  • docs(wiki): migrate decision evidence batch 10/13
  • docs(wiki): migrate decision evidence batch 09/13
  • docs(wiki): migrate decision evidence batch 08/13
  • docs(wiki): migrate decision evidence batch 07/13
  • docs(wiki): migrate decision evidence batch 06/13
  • docs(wiki): migrate decision evidence batch 05/13
  • docs(wiki): migrate decision evidence batch 04/13
  • docs(wiki): migrate decision evidence batch 03/13
  • docs(wiki): migrate decision evidence batch 02/13
  • docs(wiki): migrate decision evidence batch 01/13
  • fix(wiki): validate canonical filenames before registration
  • feat(wiki): add canonical decision retrieval and reviewed mirrors
  • Merge pull request #502 from cdeust/perf/green-response-context-scope
  • Merge pull request #501 from cdeust/perf/green-batch-memory-reads
  • Merge pull request #500 from cdeust/perf/green-reranker-ablation
  • Merge pull request #499 from cdeust/perf/green-indexed-recall-pools
  • Merge pull request #498 from cdeust/perf/green-storage-calibration
  • Merge pull request #497 from cdeust/perf/green-batch-embedding-paths
  • Merge pull request #496 from cdeust/perf/green-embedding-prefix-audit
  • Merge pull request #495 from cdeust/perf/green-reuse-write-embeddings
  • Merge pull request #494 from cdeust/perf/green-resident-capture
  • Merge pull request #493 from cdeust/feat/green-capture-modes
  • Merge pull request #492 from cdeust/perf/green-exact-preflight
  • Merge commit '1fbceb1a126a700d63062137e6b7fee8ecf19faa' into HEAD
  • Merge commit '1578f683abe6ad992a994092d4e53f6c5f88af15' into HEAD
  • Merge commit '75fb7740e2c3e69a3dddaa638ead10b9b476090f' into HEAD
  • test(postgres): isolate exact scoring and pair semantics from ANN
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • ci: trigger required checks against main
  • Merge commit 'f8e57919cd9e8813a284a3eb81f172d97243f2f1' into HEAD
  • Merge commit '11b500fa30563b61dc12e67d375bcda085a7cfc4' into HEAD
  • fix(benchmarks): provision exact inputs for regression baseline
  • Merge commit 'af5b02d5aa22becf5787470c4c0c2aaef0ac850b' into HEAD
  • Merge commit 'c910807f5549671817935a7c5f2325d962465e81' into HEAD
  • Merge commit '66f879ab26577d993e28fe9f9f7841da193af2b3' into HEAD
  • Merge commit '74c4f7f5570e8b8e07eb2c51326d2329a68a4846' into HEAD
  • Merge commit '29f74c66d37ce18ca49c0a276fb2ecdaf2f925ac' into HEAD
  • Merge commit 'da4a99823395476f7eb915446ef228166c973869' into HEAD
  • Merge commit 'ece9a1fa471e04893279dec95d845ffb44a6e7de' into HEAD
  • Merge commit '1df4b2f37b02521129c5b9b8317f1dad5a89bf9e' into HEAD
  • Merge commit '5dcba407795e457ae2134f0c0d4b8441d39038eb' into HEAD
  • Merge commit '257513c0ae6d96e96d8b9e37267cb5b7e0d72b45' into HEAD
  • Merge remote-tracking branch 'origin/main' into HEAD
  • Merge pull request #491 from cdeust/dependabot/pip/minor-and-patch-fccd2d8474
  • docs(claude-md): keep CLAUDE.md short; move its body to docs/agent-guidance.md (#513)
  • fix(worktrees): create every worktree inside the repo under .claude/worktrees (#512)
  • Merge pull request #511 from cdeust/ci/doc-contract-tests-on-docs
  • ci: run the full-suite job on docs-only PRs, where doc guards live
  • Merge pull request #510 from cdeust/fix/readme-viz-identity-anchor
  • fix(readme): restore the canonical hypermnesia-mcp-viz identity anchor
  • Merge pull request #509 from cdeust/docs/readme-conversion
  • docs(readme): name the three evolving MCP servers, not a four-piece count
  • docs(readme): lead with what Cortex does, in plain words
  • Merge pull request #507 from cdeust/feat/banner-fetch-key
  • Merge pull request #508 from cdeust/docs/green-software-engineering
  • Merge remote-tracking branch 'origin/main' into pr507-update
  • docs(readme): document the green software engineering programme
  • Merge branch 'main' into perf/green-exact-preflight
  • Merge pull request #506 from cdeust/fix/docker-smoke-cache-export
  • feat(session_start): keep a fetch key on truncated banner lines
  • ci: stop exporting the docker-smoke layer cache on pull requests
  • Merge pull request #504 from cdeust/fix/numeric-equivalence-tolerance
  • Merge branch 'main' into perf/green-exact-preflight
  • Merge branch 'main' into fix/numeric-equivalence-tolerance
  • Merge pull request #505 from cdeust/fix/mcp-host-config-timeout
  • ci: size the mcp-host-config timeout against its measured tail
  • Merge branch 'main' into fix/numeric-equivalence-tolerance
  • Merge pull request #503 from cdeust/claude/cortex-floors-regression-ulddt2
  • fix: give each PR-sourced constant its own # source: comment
  • docs+test: replace exact-identity gate with ULP + rank-stability tolerance
  • docs(changelog): note the floor-check/no-regression fix
  • fix(benchmarks): make floor check non-blocking, add --no-regression gate
  • perf(embeddings): use bounded character searches for prefix eligibility
  • fix(types): narrow optional tokenizer before configuring prefix guard
  • refactor(embeddings): keep prefix state with model lifecycle
  • perf(embeddings): skip BERT suffixes only after exact token guards
  • test(reranker): load recall snapshot seam in handler probe
  • perf(memory): reuse observed neighbors and recall embeddings
  • perf(storage): initialize engram slots in one statement
  • Merge commit 'f76b7611d79b9673b362ceca4285ee462614eadf' into perf/green-response-context-scope
  • test(invariants): align heat writer pins after batch reader addition
  • Merge commit 'e1ab7cae19ab0b0c5e91025e870bd5494769e57d' into perf/green-response-context-scope
  • Merge commit '15976e801c400f604e80fdc1df39edfd2513ed4b' into perf/green-reranker-ablation
  • Merge commit '0b978d759a4089e646cd51771138f8631d8b5585' into perf/green-indexed-recall-pools
  • Merge commit 'ded553694c1a10b73213e5c9ee1d366aadbb74cd' into perf/green-storage-calibration
  • Merge commit '02543fa628ea7a4d054c88e31958578966c1f19c' into perf/green-batch-memory-reads
  • Merge commit 'e54b318511fcc7a04054c618526d37828467e37c' into perf/green-batch-embedding-paths
  • Merge commit '806f66a088514b82a914c42746e8d4814a323abd' into perf/green-reuse-write-embeddings
  • Merge commit '5426f4426d25b9b8872817abcc1524a0a06c4d68' into perf/green-embedding-prefix-audit
  • fix(capture): serialize socket publication and catch Future deadlines on Python 3.10
  • merge(green): carry typed file preparation contract
  • merge(green): carry typed file preparation contract
  • merge(green): carry typed file preparation contract
  • merge(green): carry typed file preparation contract
  • merge(green): carry typed file preparation contract
  • fix(codebase): distinguish deferred input failures in file jobs
  • merge(green): carry verified embedding evidence
  • merge(green): carry verified embedding evidence
  • merge(green): carry verified embedding evidence
  • merge(green): carry verified embedding evidence
  • merge(green): carry verified embedding evidence
  • docs(embedding): record corrected context and codebase proofs
  • merge(green): carry strict embedding context correction
  • merge(green): carry strict embedding context correction
  • merge(green): carry strict embedding context correction
  • merge(green): carry strict embedding context correction
  • merge(green): carry strict embedding context correction
  • fix(embedding): preserve measured scalar and batch contexts
  • Merge commit 'b01dbf8db5cfa40261431035b995cfea73e2a77d' into perf/green-response-context-scope
  • Merge commit '27ae9c7018dbabf9c21bc531b5eaa49f33a8f0c5' into perf/green-reranker-ablation
  • Merge commit 'e2de92725805bec0f7862749653be6661e770836' into perf/green-batch-memory-reads
  • Merge commit '3bf50ecc709646599d9106c8ea085dcaf8cdf8de' into perf/green-indexed-recall-pools
  • Merge commit '0454cb4ea7f6cb122e0fd9dde7ac4e806237d9a3' into perf/green-storage-calibration
  • docs(embeddings): record restored compression identity proof
  • fix(embeddings): preserve exact scalar compression vectors
  • fix: align launcher pins and C# fixtures with refreshed dependencies
  • Merge commit 'b94ce807b265c9dedb68cc65eb3dc0a83a510dd3' into perf/green-embedding-prefix-audit
  • Merge commit '1152a64c94a23bfde365fa9115d8e1ada1770458' into perf/green-response-context-scope
  • Merge commit 'b8099e909043afcdc4e0f6444451a32f613d63fe' into perf/green-reranker-ablation
  • Merge commit '98eebc60dc20c3946228ad4bce8abbeda7e55043' into perf/green-batch-memory-reads
  • Merge commit '2ac9b173850015ee07827df2fafc464c236e7ec1' into perf/green-indexed-recall-pools
  • Merge commit '0fe187b73fdc8386527584d99a82d46ebc7935ce' into perf/green-storage-calibration
  • Merge commit '1b497a61a57e566f033eb26f9f15bf7fd2f1c1e4' into perf/green-batch-embedding-paths
  • docs: record final complete PostgreSQL call counts
  • docs: record real neural seed and lesson batch measurements
  • docs: record restored scalar neural identity
  • Merge commit '68de3e04e8ea35904abd10c2f6ffc1077c6aef60' into perf/green-response-context-scope
  • Merge commit '03cbb29c18231858d8683a958d5c579adc6bb66f' into perf/green-batch-memory-reads
  • Merge commit '0e2927777790b340fd66dc8cd44d5e6cf5da9b7b' into perf/green-reranker-ablation
  • Merge commit 'c3b1b5a7b13611aca96985d71429d89efd2301c1' into perf/green-indexed-recall-pools
  • Merge commit '3ec76b597d95f020f34b30cabc8118764d4a7303' into perf/green-storage-calibration
  • docs: record final measured outcomes and remaining acceptance gaps
  • docs: record final measured outcomes and remaining acceptance gaps
  • Merge validated main and resolve compatible dependency locks for PR 491
  • Merge commit '8222f4fbd02ef629b284f6ef7ac44e18791e58c7' into perf/green-response-context-scope
  • test: preserve read batching coverage with strict scalar scoring
  • Merge commit '1144c14bdc06c2cb512edf61ed869686fae51f91' into perf/green-reranker-ablation
  • Merge commit 'd5842a446b5d608c42d61c4d2f60f528fb6ca5a8' into perf/green-response-context-scope
  • Merge commit '1798fdc97615834d9649229b88585f2ee4ebac9f' into perf/green-batch-memory-reads
  • Merge commit '8620c9802520dfc3f0a5ce6864cc61fa03e9bc3d' into perf/green-indexed-recall-pools
  • Merge commit '537e23ac9336c83e95b037068fe686b3f0288665' into perf/green-storage-calibration
  • Merge commit '2720dbfbec93ab64794886b54a86dc057416988d' into perf/green-batch-embedding-paths
  • Merge commit 'fa39ca53f944d293edd4bf2ef4aca5d86b4f1eab' into perf/green-embedding-prefix-audit
  • fix: preserve strict scalar scoring after neural batch audit
  • Merge commit '648a915c' into perf/green-response-context-scope
  • Merge commit '648a915c' into perf/green-batch-memory-reads
  • fix(benchmarks): retain paired archive metadata without extraction
  • Merge commit 'efb65fd873a7f90ccecab4a3de0346f6a238f684' into perf/green-response-context-scope
  • Merge commit '3f83a47dd0697714de4dbba68edcfbd04e621b7a' into perf/green-batch-memory-reads
  • Merge commit 'd57b05c902292c0bbcb8bcca321183f20ddf6f1b' into perf/green-reranker-ablation
  • test(postgres): bind recall fixture floats to declared real arguments
  • deps: bump the minor-and-patch group across 1 directory with 36 updates
  • perf(context): filter capture noise and expose scoped memory pagination
  • perf(memory): batch neighbor and recall row lookups
  • bench(reranker): prepare pinned full-quality ablation cells
  • test: separate untied recall witnesses from broad plan workloads
  • fix: keep recall plans parameter-specific and parse multiline PG evidence
  • perf(recall): expose bounded indexed pools and reproducible PG comparison
  • perf(storage): apply vacuum policy and add isolated fillfactor calibration
  • perf(memory): size the embedding cache from a measured capture session
  • perf(embedding): audit exact raw-prefix truncation feasibility
  • perf(memory): batch independent writes and share the embedding LRU
  • perf(memory): batch normalized neighbors and reuse unchanged merge vectors
  • fix(hooks): exclude disabled captures before launcher bootstrap
  • test(hooks): compare worker tools with the shared capture vocabulary
  • feat(hooks): add explicit full writes-only and off capture modes
  • perf(hooks): reuse a resident Unix-socket capture worker
  • perf(memory): reject provably low novelty before embedding
  • Merge pull request #467 from cdeust/dependabot/pip/click-8.5.0
  • Merge pull request #466 from cdeust/dependabot/pip/coverage-7.16.0
  • Merge pull request #465 from cdeust/dependabot/pip/googleapis-common-protos-1.75.2
  • Merge pull request #462 from cdeust/dependabot/pip/typer-0.27.2
  • Merge pull request #461 from cdeust/dependabot/pip/psycopg-binary-3.3.5
  • Merge pull request #489 from cdeust/dependabot/github_actions/minor-and-patch-ca5e8f1fbb
  • Merge remote-tracking branch 'origin/main' into fix/pr465-sync-green-ci
  • Merge pull request #460 from cdeust/dependabot/docker/dot-devcontainer/python-cad9a2c
  • Merge pull request #459 from cdeust/dependabot/docker/docker/python-9ab8d9c
  • Merge pull request #487 from cdeust/fix/green-linux-cpu-bootstrap
  • Merge pull request #486 from cdeust/fix/green-hook-cooldowns
  • Merge pull request #485 from cdeust/fix/green-log-rotation
  • Merge pull request #484 from cdeust/fix/green-deps-cleanup
  • Merge pull request #483 from cdeust/perf/green-hook-matchers
  • Merge pull request #482 from cdeust/fix/green-lazy-hook-imports
  • Merge pull request #481 from cdeust/build/green-docker-context
  • Merge remote-tracking branch 'origin/main' into fix/pr481-sync-approved-timeouts
  • Merge pull request #479 from cdeust/ci/green-timeouts-concurrency
  • Merge pull request #478 from cdeust/build/green-sdist-scope
  • Merge pull request #477 from cdeust/ci/green-dependency-caches
  • Merge pull request #476 from cdeust/ci/green-conditional-docker
  • Merge remote-tracking branch 'origin/main' into fix/pr476-refresh-main
  • Merge pull request #475 from cdeust/ci/green-single-pytest
  • ci: bump the minor-and-patch group with 3 updates
  • Merge pull request #471 from cdeust/ci/green-path-filters
  • ci: retain the previously measured slow Python 3.13 bound
  • ci: recalibrate Python timeouts from completed W2 runs
  • Merge branch 'main' into fix/green-linux-cpu-bootstrap
  • Merge branch 'main' into fix/green-hook-cooldowns
  • Merge branch 'main' into fix/green-log-rotation
  • Merge branch 'main' into fix/green-deps-cleanup
  • Merge branch 'main' into perf/green-hook-matchers
  • Merge branch 'main' into fix/green-lazy-hook-imports
  • Merge branch 'main' into build/green-docker-context
  • Merge branch 'main' into build/green-sdist-scope
  • Merge branch 'main' into ci/green-dependency-caches
  • Merge branch 'main' into ci/green-conditional-docker
  • Merge branch 'main' into ci/green-single-pytest
  • Merge branch 'main' into ci/green-path-filters
  • Merge pull request #470 from cdeust/ci/green-no-dist-upload
  • Merge pull request #469 from cdeust/fix/green-energy-harness
  • Merge branch 'main' into ci/green-timeouts-concurrency
  • Merge branch 'main' into ci/green-no-dist-upload
  • Merge branch 'main' into fix/green-energy-harness
  • Merge pull request #468 from cdeust/fix/green-telemetry
  • Merge pull request #488 from cdeust/fix/marketplace-zetetic-2-39-0
  • fix(deps): synchronize click 8.5.0 lock and export provenance
  • fix(deps): synchronize coverage 7.16.0 in the canonical lock
  • fix(deps): synchronize googleapis-common-protos 1.75.2 lock
  • fix(deps): synchronize typer 0.27.2 in the canonical lock
  • fix(deps): synchronize psycopg lock exports and launcher pin
  • fix(marketplace): deliver zetetic-team-subagents v2.39.0
  • fix(launcher): resolve Linux Torch from the pinned CPU index
  • fix: persist hook cascade cadence and cool down misses
  • fix: rotate telemetry and detached worker logs
  • feat: audit and explicitly clean orphan plugin dependencies
  • perf: route PostToolUse hooks by handled tool names
  • perf: avoid store imports for rejected pipeline hook events
  • build: exclude local installs and generated Docker context
  • ci: derive job timeouts from measured runs and cancel superseded PR checks
  • build: exclude generated output and paper bundles from sdist
  • ci: cache pinned pip npm and actionlint downloads
  • ci: build runtime images on Docker changes and weekly validation
  • ci: execute pytest once on the coverage matrix leg
  • ci(paths): gate the matrix on relevant changes and successful lint
  • ci(artifacts): stop uploading unused distribution builds
  • fix(benchmarks): validate float32 energy measurements and carbon units
  • fix(telemetry): measure response bytes and retrieval work
  • perf(backfill): batch-encode embeddings per file instead of per item
  • deps: bump click from 8.4.2 to 8.5.0
  • deps: bump coverage from 7.15.2 to 7.16.0
  • deps: bump googleapis-common-protos from 1.75.0 to 1.75.2
  • deps: bump typer from 0.27.1 to 0.27.2
  • deps: bump psycopg-binary from 3.3.4 to 3.3.5
  • build: bump python from ce40764 to cad9a2c in /.devcontainer
  • build: bump python from 416f0db to 9ab8d9c in /docker

What's Changed

  • fix(marketplace): deliver zetetic-team-subagents v2.39.0 by @cdeust in #488
  • fix(telemetry): measure response bytes and retrieval work (W0-1) by @cdeust in #468
  • fix(benchmarks): validate energy harness float32 outputs and carbon units by @cdeust in #469
  • ci(artifacts): stop uploading unused distribution builds by @cdeust in #470
  • ci(paths): run relevant jobs after lint and verify every skip by @cdeust in #471
  • ci: execute pytest once on the coverage leg (W1-3) by @cdeust in #475
  • ci: limit runtime image builds to Docker changes and weekly validation (W1-4) by @cdeust in #476
  • ci: cache pinned dependency and actionlint downloads (W1-5) by @cdeust in #477
  • build: reduce sdist below 5 MB with an identical wheel (W1-6) by @cdeust in #478
  • ci: set measured timeouts and cancel superseded PR runs (W1-7) by @cdeust in #479
  • build: bound local Docker context (W1-8) by @cdeust in #481
  • perf: defer unused pipeline hook imports (W2-1a) by @cdeust in #482
  • perf: route PostToolUse hooks by handled tool names (W2-1b) by @cdeust in #483
  • feat: audit and explicitly clean orphan plugin dependencies (W2-2) by @cdeust in #484
  • fix: rotate telemetry and detached worker logs (W2-3) by @cdeust in #485
  • fix: persist hook cascade cadence and cool down misses (W2-4) by @cdeust in #486
  • fix(launcher): use pinned CPU-only Torch on Linux by @cdeust in #487
  • build: bump python from 416f0db to 9ab8d9c in /docker by @dependabot[bot] in #459
  • build: bump python from ce40764 to cad9a2c in /.devcontainer by @dependabot[bot] in #460
  • ci: bump the minor-and-patch group with 3 updates by @dependabot[bot] in #489
  • deps: bump psycopg and psycopg-binary to 3.3.5 by @dependabot[bot] in #461
  • deps: bump typer from 0.27.1 to 0.27.2 by @dependabot[bot] in #462
  • deps: bump googleapis-common-protos from 1.75.0 to 1.75.2 by @dependabot[bot] in #465
  • deps: bump coverage from 7.15.2 to 7.16.0 by @dependabot[bot] in #466
  • deps: bump click from 8.4.2 to 8.5.0 by @dependabot[bot] in #467
  • fix(benchmarks): make floor check non-blocking, add --no-regression gate by @cdeust in #503
  • ci: size the mcp-host-config timeout against its measured tail by @cdeust in #505
  • docs+test: replace exact-identity gate with ULP + rank-stability tolerance by @cdeust in #504
  • ci: stop exporting the docker-smoke layer cache on pull requests by @cdeust in #506
  • docs(readme): document the green software engineering programme by @cdeust in #508
  • feat(session_start): keep a fetch key on truncated banner lines by @cdeust in #507
  • docs(readme): lead with what Cortex does, in plain words by @cdeust in #509
  • fix(readme): restore the canonical hypermnesia-mcp-viz identity anchor by @cdeust in #510
  • ci: run the full-suite job on docs-only PRs, where doc guards live by @cdeust in #511
  • fix(worktrees): create every worktree inside the repo under .claude/worktrees by @cdeust in #512
  • docs(claude-md): keep CLAUDE.md short; move its body to docs/agent-guidance.md by @cdeust in #513
  • deps: refresh compatible dependencies and align plugin launcher pins by @dependabot[bot] in #491
  • perf(capture): reject bounded writes before loading embeddings by @cdeust in #492
  • feat(capture): expose full, writes-only and off modes by @cdeust in #493
  • perf(capture): reuse a resident embedding worker by @cdeust in #494
  • perf(remember): reuse embeddings for identical merge text by @cdeust in #495
  • perf(embeddings): skip unused BERT suffixes with exact token guards by @cdeust in #496
  • perf(embeddings): batch codebase imports and preserve cache contexts by @cdeust in #497
  • perf(postgres): calibrate storage policy on dense vector fixtures by @cdeust in #498
  • perf(recall): retain indexed PostgreSQL candidate pools by @cdeust in #499
  • bench(reranker): compare pinned L2/L12 and candidate multipliers by @cdeust in #500
  • perf(memory): remove repeated reads and batch first-write slot allocation by @cdeust in #501
  • perf(context): filter capture noise and scope content retrieval by @cdeust in #502
  • feat(wiki): canonical decision retrieval and reviewable mirrors by @cdeust in #515
  • refactor(wiki): extract code decisions (01/13) by @cdeust in #516
  • refactor(wiki): extract code decisions (02/13) by @cdeust in #517
  • refactor(wiki): extract code decisions (03/13) by @cdeust in #518
  • refactor(wiki): extract code decisions (04/13) by @cdeust in #519
  • refactor(wiki): extract code decisions (05/13) by @cdeust in #520
  • refactor(wiki): extract code decisions (06/13) by @cdeust in #521
  • refactor(wiki): extract code decisions (07/13) by @cdeust in #522
  • refactor(wiki): extract code decisions (08/13) by @cdeust in #523
  • refactor(wiki): extract code decisions (09/13) by @cdeust in #524
  • refactor(wiki): extract code decisions (10/13) by @cdeust in #525
  • refactor(wiki): extract code decisions (11/13) by @cdeust in #526
  • refactor(wiki): extract code decisions (12/13) by @cdeust in #527
  • refactor(wiki): extract code decisions (13/13) by @cdeust in #528
  • docs: record issue 514 retrieval validation results by @cdeust in #530
  • fix(ast): capture explicit Python decorator calls by @cdeust in #534
  • test: close the provenance mutation gap (#389) by @cdeust in #535
  • fix(setup): the installer's dependency step could neither install nor update by @cdeust in #539
  • feat(hooks): refuse a decision written into code at edit time by @cdeust in #541
  • fix(setup): install requirements/setup.txt instead of a hand-written package list (#538) by @cdeust in #542
  • fix(setup): stop labeling a failed model pre-cache [ok] (#537) by @cdeust in #543
  • fix(launcher): make the deps idempotence guard ABI-aware (#540) by @cdeust in #544
  • fix(hooks): close three decision-gate review blockers by @cdeust in #545
  • feat(hooks): enforce the --no-deps hashed-install invariant (#536) by @cdeust in #546
  • release: 4.20.0 by @cdeust in #547

Full Changelog: v4.19.1...v4.20.0