v2.1.20
Cartograph v2.1.20
Cartograph v2.1.20 fixes two indexing failures reported against v2.1.18. Slang
grammar-recovery nodes can no longer create invalid durable spans, and large
many-crate Rust workspaces select the existing PostgreSQL streaming path before
exhausting the in-process generation bound. This resolves
issue #139 and
issue #140.
This release supersedes the tag-only v2.1.19 candidate. All four v2.1.19 native
builds passed, but publication stopped before creating a GitHub release because
the release-note guard mistook an ordinary inflected word for an unfinished-note
marker. v2.1.20 makes that guard token-aware and adds a workflow regression
contract while preserving the signed v2.1.19 tag.
Slang span and partial-file recovery
- Missing or zero-width C-family declarator nodes are rejected before symbol
creation. Ordinary Slang modules with imports, parameter blocks, resources,
and multiple shader entry points retain valid durable spans. - An invalid recovery span or a parser stop without cancellation now retains an
empty partial file and a boundedextraction_invalid_spanor
extraction_parser_stoppeddegraded-file reason. The remaining files can
still publish as one complete immutable generation. - Cancellation, unavailable or mismatched grammars, invalid configuration, and
modeled-output exhaustion remain fatal rather than being silently hidden.
Streaming large Rust workspaces
generationStorage: "auto"now selects PostgreSQL spill at 64 Cargo
manifests, in addition to the existing 10,000-file, 64 MiB source, and 16x
expansion signals. A workspace at the reported approximately 100-crate scale
therefore resolves and reduces in bounded batches instead of retaining the
entire generation in memory.maxGenerationBytesis explicitly documented as a Cartograph-process bound,
not the managed PostgreSQL container's 2 GiB memory limit.- Direct text and JSON errors now name the limit, scope, and safe next action.
MCP admin jobs expose the same credential-safe guidance through additive
failureDetailfields.
Upgrade
Use the resumable project upgrade:
cartograph upgrade --apply --project-path <PATH> --jsonRequire completed: true. Restart or reopen an attached agent host only when
the report says restartRequired: true; a process that was already attached
cannot hot-load the new native child.
Cartograph v2.1.20 remains native Rust and PostgreSQL-only. It does not bundle
PostgreSQL, ParadeDB, pgvector, a database, or a container image, and it has no
SQLite runtime, importer, optional feature, or fallback.
Full changelog: v2.1.18...v2.1.20