diff --git a/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/final-fix-report.md b/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/final-fix-report.md index e9e38cc..ed34dc5 100644 --- a/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/final-fix-report.md +++ b/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/final-fix-report.md @@ -53,3 +53,10 @@ Follow-up 2 focused verification: 4 files, 95 tests passed; `npm run typecheck`; Migration code commit: `bee2b3d` Verification: migration self-test passed; authenticated live `--dry-run` against the configured PocketBase reported every collection/index already present and ended with `DRY RUN. No schema changes written.`; `git diff --check` passed. No live writes were made. + +## Migration normalizer follow-up + +The comparison now treats backtick-quoted, double-quoted, and safely unquoted SQLite identifiers as equivalent. It tokenizes around double/backtick identifiers and preserves single-quoted literals exactly, so a literal near-miss remains a real replacement. Self-tests cover all identifier styles and a changed single-quoted predicate literal. + +Normalizer code commit: `1a97d7d` +Verification: migration self-test passed; authenticated live `--dry-run` reported all indexes already present and no changes; `git diff --check` passed. No schema apply was performed. diff --git a/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/progress.md b/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/progress.md index f7d67d4..0a22fc1 100644 --- a/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/progress.md +++ b/.superpowers/sdd/2026-09-18-hybrid-delivery-note-ingestion/progress.md @@ -187,3 +187,7 @@ Migration idempotency follow-up: dispatched at base d12ca92 Migration idempotency follow-up: code complete (semantic-normalized index comparison and PocketBase variant self-tests; commit bee2b3d) Migration idempotency follow-up: verification passed — migration self-test; authenticated live dry-run reports every collection/index already present and no writes; git diff --check Ruling: CREATE INDEX definitions are compared after case, whitespace, quoting, and punctuation normalization while preserving uniqueness, columns, and WHERE predicates — cost if wrong: formatting-only schema drift no longer causes repeated dry-run reconciliation, but semantic index changes still replace the stored definition. +Migration normalizer follow-up: dispatched at base 485443a +Migration normalizer follow-up: code complete (backtick/double-quote/unquoted identifier equivalence with single-literal preservation; commit 1a97d7d) +Migration normalizer follow-up: verification passed — migration self-test; authenticated live dry-run reports all indexes already present/no changes; git diff --check +Ruling: identifier quote style is formatting, but single-quoted WHERE literal contents remain semantic — cost if wrong: a literal-sensitive index definition could be silently accepted or repeatedly replaced.