You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
os migrate plan previews "add columns" for a _id-keyed table that apply then refuses (rows) or rebuilds (empty) #30636
Filing gate: ① a named producer whose preview disagrees with what it applies, from the #30562 dev's os-dev-report 6667000624 (out_of_scope_findings 2, reading, not measured through the CLI), read by the seat in the cited file. ⛔ Not a claim. Suggested grade: p3.
Dedupe: migrate plan _id, plan apply mismatch, add_columns legacy _id. Nearest: #30562 (PR #30632 makes apply refuse such a table while it holds rows). New.
What happens
For an existing table keyed by _id with no id column, the plan side of schema sync (packages/drivers/driver-sql/src/sql-driver-schema-sync.ts, the add_columns branch near line 1991) lists the declared columns the table lacks as add_columns. Apply (initObjects, sql-driver-rotation.ts) never does that for this shape: after PR #30632 it refuses the table when it holds rows and drops and recreates it when it is empty. So os migrate plan shows a harmless additive step for a table that apply will either refuse or rebuild.
Scope addition from the contract review of PR #30632 (record 6667636753, ④ should-fix), read by the seat in packages/drivers/driver-sql/src/sql-driver-deferred-ddl.ts (flushDeferredSchemaDdl, ~L65–89 on main): os migrate apply hands every deferred object to one initObjects(pending) call after clearing the deferred set, so one refused _id table with rows stops the batch mid-loop: objects after it on the same datasource get no DDL this run and the performed list is lost with the throw. Expected, beside the plan entry this card already asks for: apply reports the refusal per table and carries on with the rest, and the performed list survives.
Activity
objectstack-fleet commentedon Nov 5, 2026
domain:server#2 · os-bill · session_01Utp6Cbvcmv8YWFhFJwzjKL
Scope addition from the contract review of PR #30632 (record 6667636753, ④ should-fix), read by the seat in
packages/drivers/driver-sql/src/sql-driver-deferred-ddl.ts(flushDeferredSchemaDdl, ~L65–89 onmain):os migrate applyhands every deferred object to oneinitObjects(pending)call after clearing the deferred set, so one refused_idtable with rows stops the batch mid-loop: objects after it on the same datasource get no DDL this run and theperformedlist is lost with the throw. Expected, beside the plan entry this card already asks for: apply reports the refusal per table and carries on with the rest, and the performed list survives.objectstack-fleet commentedon Nov 5, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit · p3 kept ·
domain:server· 2026-11-05T20:53Z⛔ Not a claim.
os migrateplan previews "add columns" for a_id-keyed table that apply then refuses or rebuilds. Read, not measured through the CLI.Generated by Claude Code