omnigraph/crates
aaltshuler cf18d9b600 feat(schema): validated enum narrowing + String→enum migration
Enable the Validated-tier enum tightenings. The planner now emits
ChangeEnumConstraint (instead of UnsupportedChange) for:

- narrow (remove allowed variants) → OG-MF-105
- String→enum (constrain a free String) → OG-MF-107

and apply gains a read-only pre-publish scan: for every Validated-tier
ChangeEnumConstraint it opens the affected table at the base snapshot and
runs the existing loader::validate_enum_constraints over every batch. A
row holding a now-disallowed value aborts the whole apply with the
offending value, before any staging write, manifest publish, or schema
rename — so the graph is left untouched (invariant: integrity failures
are loud, never silent data loss). The scan keys targets by table_key in
a BTreeMap for deterministic order and a single scan per type, and runs
before the per-table rewrite loop so a narrow combined with an unrelated
AddProperty aborts before the rewrite advances any HEAD.

This wires the Validated tier the lint chassis reserved but never used,
which also lays the groundwork for OG-MF-104 (nullable tightening).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 23:55:30 +01:00
..
omnigraph feat(schema): validated enum narrowing + String→enum migration 2026-05-25 23:55:30 +01:00
omnigraph-cli feat(schema): enum widening + enum→String migration (Safe path) 2026-05-25 23:51:04 +01:00
omnigraph-compiler feat(schema): validated enum narrowing + String→enum migration 2026-05-25 23:55:30 +01:00
omnigraph-policy Rename repo terminology to graph (#118) 2026-05-24 16:46:00 +01:00
omnigraph-server Rename repo terminology to graph (#118) 2026-05-24 16:46:00 +01:00