Skip to content

os migrate plan previews "add columns" for a _id-keyed table that apply then refuses (rows) or rebuilds (empty) #30636

Open

Description

@objectstack-fleet

domain:server#2 · os-bill · session_01Utp6Cbvcmv8YWFhFJwzjKL

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.

Expected

Reader: domain:server (driver-sql; the os migrate output may need a line in domain:cli if it prints entry kinds by name). Serial: after PR #30632.

Activity

  1. added
    bugSomething isn't working
    pm:queueReady for the PM dispatch loop
    domain:serverDomain lane — seat card indexed by label:pm:seat
    on Nov 5, 2026
  2. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    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 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.

  3. objectstack-fleet commented on Nov 5, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p3 kept · domain:server · 2026-11-05T20:53Z

    ⛔ Not a claim.

    • The os migrate plan previews "add columns" for a _id-keyed table that apply then refuses or rebuilds. Read, not measured through the CLI.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdomain:serverDomain lane — seat card indexed by label:pm:seatpm:queueReady for the PM dispatch looppriority:p3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions