474654b1c1
Production GET /api/cv/outline returned 500 "Unknown column 'c.LongTailJson'". CareerProfiles is reconciler-owned, but the reconciler's CREATE TABLE (both the SQLite and MySQL branches) only listed Id, OwnerUserId, ProfileJson, Version, CreatedAtUtc, UpdatedAtUtc. LongTailJson was added to the CareerProfile model in Phase 3 but neither CREATE was updated and no column-repair existed, so: - existing databases (prod): the MySQL CREATE is guarded on !HasMySqlTable, so it never runs once the table exists, and nothing adds the column -> LoadStructuredAsync selects a column that isn't there. - fresh databases: the CREATE itself omitted the column, so even a brand new MariaDB/SQLite was missing it. The 420 tests never caught this because they build tables from the EF model, not the reconciler DDL. The release audit missed it because it never exercised /api/cv/outline. Add LongTailJson to both CREATE statements and add an additive repair (EnsureColumn / EnsureMySqlColumn) for existing tables. DEFAULT '' backfills existing rows and matches the non-nullable model property. This is the sanctioned reconciler repair path, not a manual ALTER, and preserves existing data (ADD COLUMN is non-destructive). Verified on a real MariaDB 11 container: an existing 6-column CareerProfiles gains LongTailJson on startup (repair path), a fresh DB gets it from the CREATE (longtext), and GET /api/cv/outline returns 200. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>