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 usagereports 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-bytesand 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
selfreceivers 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> --jsonIf 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