Skip to content

fix(schema): Schema-Drift-Audit + Behebung der High/Mittel-Drift#24

Merged
dbt-bossert merged 1 commit into
mainfrom
claude/schema-drift-audit
Jun 15, 2026
Merged

fix(schema): Schema-Drift-Audit + Behebung der High/Mittel-Drift#24
dbt-bossert merged 1 commit into
mainfrom
claude/schema-drift-audit

Conversation

@dbt-bossert

Copy link
Copy Markdown
Collaborator

Systematischer Abgleich der Toolkit-Typen/Editoren gegen den portal-Flow-Vertrag — plus Behebung der gefundenen High/Mittel-Drift. Vollständiger Report: plans/schema-drift-audit.md.

Behobene Drift (Kernlogik)

  • NumberUIElement (HOCH, Datenverlust): Modell, Editor und Normalisierung auf den portal-Vertrag minimum/maximum/default umgestellt. Vorher nutzte der Toolkit min/max/step/default_value (portal-unbekannt), und normalizeUtils wandelte importiertes defaultdefault_value ohne Rück-Mapping → Default-/Grenzwerte gingen beim Round-Trip verloren. normalizeUtils migriert jetzt Alt-Exporte beim Import; step (kein portal-Feld) entfernt.
  • SingleSelection (HOCH, ungültiges JSON): Der aktive Enhanced-Editor schrieb BUTTONGROUP statt BUTTON_GROUP → korrigiert.
  • KeyValueList: type um COUNTER_BAR ergänzt (Schema kennt COUNTER_BAR + TABLE).
  • FieldText / Table: align/unit bzw. hide_index_column ergänzt (Round-Trip-Erhalt + spätere Editierbarkeit).
  • Doku: Page.layout-Kommentar verweist auf pageLayouts.ts als Single Source of Truth.

Bewusst aufgeschoben (im Report begründet)

  • Boolean-type/options und String-default_value/placeholder/multiline/pattern sind toolkit-erfunden — Entfernung ist eine sichtbare Feature-Reduktion und braucht Produkt-Sign-off (kein Datenverlust, portal ignoriert sie).
  • RCO-Context LIST, FileUIElement id_field_*-Vertrag, caption_field_id vs name_element, preferred_position vs display_position → erst mit portal verifizieren.
  • Einige Befunde sind portal-seitig (YAML hinkt GraphQL/readme hinterher).

Test

  1. npm test grün (137; +3 numberNormalization.test.ts), npm run build ohne TS-Fehler.
  2. Flow mit Number-Element (min/max/default) importieren → exportieren: minimum/maximum/default bleiben erhalten (vorher Verlust).
  3. SingleSelection auf „Button Gruppe" stellen → Export enthält BUTTON_GROUP.

Labels

Refactoring, Fix

🤖 https://claude.ai/code/session_01D2Pc4cAexeqUFrM1YonaJL


Generated by Claude Code

Audit-Report unter plans/schema-drift-audit.md. Behobene Drift:

- NumberUIElement: Modell/Editor/Normalisierung auf den portal-Vertrag
  (minimum/maximum/default) umgestellt. Vorher min/max/step/default_value -
  portal-unbekannt; default ging beim Round-Trip verloren. normalizeUtils
  migriert Alt-Exporte beim Import. Test: numberNormalization.test.ts.
- SingleSelection: Enhanced-Editor schrieb ungueltiges BUTTONGROUP statt
  BUTTON_GROUP.
- KeyValueList.type um COUNTER_BAR erweitert.
- FieldText.align/unit und Table.hide_index_column ergaenzt (Round-Trip-Erhalt).
- Page.layout-Kommentar auf pageLayouts.ts als SSoT verwiesen.

Aufgeschobene/portal-seitige Befunde sind im Audit-Report dokumentiert.
@dbt-bossert
dbt-bossert merged commit af3b371 into main Jun 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants