v2.1.27
Cartograph v2.1.27
Cartograph v2.1.27 adds first-class Ada/SPARK and VHDL code intelligence,
improves the precision of Rust numerical hazards, and makes the whole-generation
biomarker refresh timeout explicit and large-project capable.
Ada, SPARK, and VHDL
- Ada
.adb,.ads, and.adafiles use a pinned native grammar and a
dedicated bounded walker for packages, subprograms, types, objects, calls,
andwith/usecompilation context. SPARK source uses this Ada mode. - VHDL
.vhdand.vhdlfiles extract entities, architectures, packages,
functions/procedures, components, types, signals/constants/variables, calls,
instantiations, andlibrary/usecontext. - Basic identifiers are canonicalized case-insensitively. Ada and VHDL imports
resolve by declared compilation-unit name rather than a filename guess;
declaration files win over bodies, and duplicate unit declarations remain
unresolved instead of choosing one. - The production registry now contains 132 modes: 66 pinned grammar-backed
modes and 66 bounded custom/scanner modes. The frozen 73-language,
163-extension v1 boundary is unchanged.
Numerical-analysis precision
- Epsilon literals and epsilon/tolerance-named bounds still produce
absolute_only_tolerance; generalabs(x) <= boundcontainment and
magnitude predicates are retained asnone_observedevidence instead. - Finite numeric
clamp,min, andmaxguard sites remain queryable without
being counted asnan_ordering_unknownhazards. asin,acos, log, and square-root calls recognize direct guards and
same-block immutable clamp/floor bindings. Guarded sites retain explicit
non-finite/input-provenance unknowns, while unguarded calls remain hazards.
This resolves #154 without suppressing numerical extraction or weakening the
static-evidence boundary.
Biomarker refresh timeout
databaseQueryTimeoutMsand the generated
--database-query-timeout-msflag now explicitly control the inner
PostgreSQL statement timeout forbiomarkers-refresh, from 1 ms through 30
minutes.- The old
timeoutMs/--timeout-msspelling remains an exclusive legacy
alias. Passing both is rejected. - Dry-run and execution output disclose the exact timeout and its source. The
generated CLI deadline automatically stays beyond the chosen database
deadline; MCP callers are told to provide a longer client deadline.
This resolves #153 while preserving dry-run-first and explicit-confirmation
mutation semantics.
Dependencies and storage contract
- The lockfile updates
combinefrom 4.6.7 to 4.6.8 andsynfrom 3.0.3 to
3.0.4, and adds exact-pinnedtree-sitter-ada0.1.0 and
arborium-vhdl2.18.1 grammar bindings. - Generation digest V15 fences Ada/VHDL resolver facts and the revised
numerical classification. Append-only migration 40 admits V15; unchanged
source indexed by an older binary is stale until a normal index publishes
current-contract facts.
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; an already-attached process cannot
hot-load the new binary.
Cartograph v2.1.27 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.26...v2.1.27