v2.1.23
Cartograph v2.1.23
Cartograph v2.1.23 aligns OpenAI-compatible endpoint probing with live model
clients, makes the optional biomarker lifecycle explicit and non-blocking, and
bounds dead-code evidence early enough for large graphs while isolating digest
sections. This resolves
issue #147,
issue #148, and
issue #149.
Consistent model endpoints
- Doctor's model-catalog probe now uses the shared endpoint normalizer used by
embedding and reranking clients. An endpoint already ending in/v1
requests/v1/modelsinstead of the invalid/v1/v1/modelspath. - Known OpenAI-compatible operation suffixes are normalized through the same
bounded URL builder, so doctor, smoke, embedding, and reranking retain one
path contract without exposing credentials or relaxing loopback/TLS policy.
Explicit biomarker lifecycle
- Biomarker stats, ranked/symbol reads, verbose status, and inline status
rollups no longer trigger whole-generation detector computation. Before a
complete exact relation exists they return a typednot_computedstate;
rollups preserve the rest of status and return an empty biomarker array, and
review-risk does not mislabel that absence as a ready zero-finding lens. cartograph admin biomarkers-refreshis a working dry-run-first boundary.
Execute mode requires--no-dry-run --confirmand accepts a bounded
--timeout-ms; MCP uses the equivalentdryRun,confirm, andtimeoutMs
fields. Validation and timeout failures carry actionable safe messages.- The stored relation remains generation- and input-fingerprint-fenced.
Indexing continues to publish canonical graph facts without silently
computing this optional derived relation.
Bounded dead-code and resilient digest
- The deterministic dead-code query filters and materializes a
PageRank-prioritizedmaxCandidatesorphan window before outgoing-edge
aggregation and source lookup. Framework, entry-point, public-container,
test, and fixture exemptions remain inside that pre-enrichment boundary. - A PostgreSQL statement timeout is now surfaced as the typed
dead_code_query_timeouterror with bounded retry guidance instead of a
generic tool failure. - Digest preserves all successful concurrent sections when one section times
out or is unavailable.sectionStatusreports each outcome, failed sections
receive safe empty/null fallbacks, anddegradedidentifies a partial digest.
Upgrade
Use the resumable project upgrade:
cartograph upgrade --apply --project-path <PATH> --jsonRequire completed: true. This release adds no database migration or generation
digest change. 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.23 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.22...v2.1.23