Skip to main content
1.29.3v1.29.3RSS

v1.29.3 — Update platform: bump @saas-factory-live/shell to 14.91.0

Release Notes

Platform update → v14.91.0. This bump carries shell-adoption migrations: edit package.json to pin "@saas-factory-live/shell" at the EXACT version "14.91.0" (no ^ or ~ range — the pin must not float onto future shells). THEN delete package-lock.json (do NOT hand-edit it) so the pipeline's npm install re-resolves transitive deps — leaving the stale lockfile pins use-sync-external-store below 1.4.0, which Next 16 Turbopack cannot resolve ("Can't resolve 'use-sync-external-store/shim/with-selector.js'") and fails the build. ALSO grep the repo's test files for the OUTGOING shell version written as a string literal (the exact version currently pinned in package.json) and update every such literal to "14.91.0" in the same diff — a test that hardcodes the previous shell version goes red on this bump by construction. Where a test's INTENT is "the pin must be exact (no ^/~)", prefer rewriting the assertion to check the FORMAT (e.g. /^\d+.\d+.\d+$/ and equality with the package.json value) instead of any hardcoded version, so future bumps can never trip it again. SNAPSHOT GATE (required check): after updating the pin and installing, run node scripts/check-migration-snapshots.mjs if the repo has it. If it fails reporting that drizzle-kit generate is NOT a no-op because the shell bump added platform tables/columns (schema.ts ahead of the latest snapshot), refresh the snapshot IN THIS SAME DIFF per the gate's stale-snapshot recipe: run npx drizzle-kit generate, keep ONLY the emitted meta/NNNN_snapshot.json renamed to the LATEST journal entry's idx, and DISCARD the emitted .sql and its journal entry — that DDL is applied by the shell's platform migration stream and must NEVER be committed as a local migration (it manufactures "already exists" deploy deaths). NEVER resolve a failing snapshot gate by reverting or downgrading the shell pin — that silently un-ships this platform update. ALSO apply the migration requirements provided in the implementation spec (Required + Recommended). READ-BEFORE-WRITE — treat already-satisfied items as no-ops.