omnigraph/crates
aaltshuler ae39049267 feat(schema): enum widening + enum→String migration (Safe path)
Add a ChangeEnumConstraint migration step and detect enum value-set
deltas in the planner before the generic prop-type-change rejection.
This commit lands the Safe (metadata-only) cases:

- widen (add allowed variants): every existing row is still valid, so
  it's a no-code, no-scan change.
- enum→String (loosen to a free string): every enum value is a valid
  String, so likewise Safe.

Enums are stored physically as Arrow String, so these are catalog-only
changes — no table rewrite, the manifest version doesn't advance, and
apply rides the metadata-only path (handled as a no-op in the step
loop). The CLI `schema plan` renderer shows the step (with code+tier
when present). The new variant's diagnostic() resolves its attached code
so apply/render derive the tier from one source of truth.

Validated tightenings (narrow, String→enum) deliberately still fall
through to UnsupportedChange here; they're enabled in the next commit
together with the apply-time row scan, so we never accept a tightening
we can't validate against existing data.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 23:51:04 +01:00
..
omnigraph feat(schema): enum widening + enum→String migration (Safe path) 2026-05-25 23:51:04 +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): enum widening + enum→String migration (Safe path) 2026-05-25 23:51:04 +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