Skip to content

v2.1.28

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Sep 01:23
Immutable release. Only release title and notes can be modified.
v2.1.28
9927b01

Cartograph v2.1.28

Cartograph v2.1.28 makes generation retention resumable, prevents failed
generation cleanup from blocking parse-cache maintenance, improves Rust caller
resolution, and upgrades the native parser and managed search runtime.

Storage cleanup that preserves progress

Large retained generations previously could repeatedly time out while counting
or cascading through their rows, rolling back the entire cleanup attempt.
Retention now moves eligible work into a non-publishable retiring state and
drains child tables in transactions of at most 10,000 actual rows. Committed
batches survive a later failure, and subsequent bounded invocations resume them.

  • Connection acquisition, transaction work and completion share the invocation
    deadline. Interrupted transaction connections are discarded safely.
  • Byte and derived-relation allowances are checked before pagination, so costly
    old generations cannot hide later eligible work.
  • Current generations, live leases, recent in-progress work, incomplete imports
    and the configured superseded history remain protected.
  • Parse-cache maintenance runs independently after generation cleanup fails and
    protects the exact current parsing-policy contract.
  • db usage reports retiring work, maintenance outcomes and repeated failures,
    empty spill heaps retaining index allocation, and the database/catalog size
    gap. These measurements do not identify files safe to delete.
  • db prune --maximum-search-relation-bytes and the corresponding MCP field
    expose an explicit derived-search byte allowance, capped at 64 GiB.

Cleanup work remains bounded. Logical deletion, online B-tree compaction and
heap rewriting are separate operations; installing this release does not
automatically reclaim all previously allocated database files.

Code intelligence and architecture

  • Rust self receivers resolve nominal ownership across split implementation
    files, parent modules and supported aliases. Ambiguous or unknown receivers
    remain unresolved.
  • Batched source windows share one bounded source capture tied to the expected
    generation. Edited files, cancellation and generation changes remain explicit.
  • Embedding and reranking clients reuse bounded HTTP transports with shared
    origin admission, queue deadlines and foreground capacity.
  • CLI model bridges deliver prompts while draining bounded output, preserving
    backend rejection when a process exits early and rejecting successful exits
    when prompt delivery failed.
  • SCIP overlays use a common source-verified replacement plan for memory and
    PostgreSQL spill construction, with bounded fenced batches and deterministic
    reduction.
  • Project configuration and structural-summary workflows have clearer crate
    ownership. Dependency-direction and cycle checks enforce those boundaries.
  • Extractor cache invalidation includes the complete lockfile, workspace
    manifests, pinned compiler and relevant build configuration.

Dependency updates

  • Rust compiler and minimum supported Rust version: 1.98.1.
  • Sole native Tree-sitter runtime: 0.27.0.
  • All 41 direct Arborium grammar pins: 2.18.2.
  • Published ABAP grammar/support bindings: 31.0.0. A minimal local facade
    reexports 0.27 types to bindings still requesting 0.26; it contains no old
    native parser or conversion code.
  • Managed ParadeDB and pg_search: 0.25.6, pinned by immutable image digest.
    The managed image contains PostgreSQL 18.6 and pgvector 0.8.4;
    pgvector 0.8.6 remains the external-service recommendation.
  • Updated compatible direct and transitive Rust dependencies. The subsequent
    maintenance audit found no confirmed abandoned package requiring removal.
    Maintenance advisories cover direct and transitive dependencies, and yanked
    packages now fail the dependency gate.

Database compatibility and upgrade

Append-only migration 41 admits generation digest V16. Migration 42 adds
resumable retirement and bounded maintenance telemetry. Earlier migration
checksums remain unchanged. Schema 42 and pg_search 0.25.6 require a
matching binary; old attached processes cannot hot-load these changes.

Start with the resumable project upgrade:

cartograph upgrade --apply --project-path <PATH> --json

If reconciliation requests a managed-database upgrade, create and verify the
reported backup, ensure sufficient free space, quiesce project writers, and use
the exact confirmed db upgrade operation. Resume the same upgrade command
afterward and require completed: true. Do not manually restart a stopped
rollback container against a possibly newer extension catalog. Reopen agent
hosts when required and verify fresh status plus a real indexed query.

Existing storage backlogs need bounded pruning after the matching runtime is
running. Measure allocation afterward before deciding on separately confirmed
compaction or restore. Never delete PostgreSQL data files by filename.

Cartograph remains a native Rust, PostgreSQL-only executable. Native archives
do not bundle PostgreSQL, ParadeDB, pgvector, a database or a container image.
There is no SQLite runtime, importer, optional feature or fallback.

Full changelog: v2.1.27...v2.1.28