Skip to content

v2.1.20

Choose a tag to compare

@github-actions github-actions released this 15 Aug 10:05
· 15 commits to main since this release
Immutable release. Only release title and notes can be modified.
v2.1.20
83ca658

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 bounded extraction_invalid_span or
    extraction_parser_stopped degraded-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.
  • maxGenerationBytes is 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
    failureDetail fields.

Upgrade

Use the resumable project upgrade:

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

Require 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