The repo pins `@altimateai/altimate-core` 0.5.1. Versions 0.6.0 and 0.7.0 shipped correctness fixes with consumer-visible behavior changes (lineage edges, PII exposures, stricter migration safety verdicts, new `unbalanced_quote` safety rule, validate/transpile/equivalence fixes) plus one type-surface addition (`PiiColumnAccess.query_targets`).
Integrating the new engine also surfaced consumers still reading legacy (pre-native-core) output shapes:
- `altimate_core_migration` tool reads `data.risks` (engine returns `findings`/`safe`/`overall_risk`) — any migration, including `DROP COLUMN`, renders "Migration: SAFE"; empty dialect string crashes `Schema.fromDdl` and also renders SAFE.
- `altimate check --checks safety` ignores `data.threats` (real ThreatFinding shape), collapsing real threats into a generic warning.
- `altimate check --checks pii` reads `column_name`/`pii_type`, emits "PII detected: unknown", and misassigns the column NAME to the numeric column-position field.
- `altimate_core_track_lineage` tool reads flat `data.edges`; engine returns `queries[].edges` + `impact_map` — always reports 0 edges.
Upgrade the pin, sync all consumers to the real contract shapes, surface `query_targets`, and lock behavior with real-engine tests.
The repo pins `@altimateai/altimate-core` 0.5.1. Versions 0.6.0 and 0.7.0 shipped correctness fixes with consumer-visible behavior changes (lineage edges, PII exposures, stricter migration safety verdicts, new `unbalanced_quote` safety rule, validate/transpile/equivalence fixes) plus one type-surface addition (`PiiColumnAccess.query_targets`).
Integrating the new engine also surfaced consumers still reading legacy (pre-native-core) output shapes:
Upgrade the pin, sync all consumers to the real contract shapes, surface `query_targets`, and lock behavior with real-engine tests.