Filing gate: ① a defect with a named producer. Finding class (a). reach: the public CLI door os migrate plan --database-url file:ABSENT.sqlite on examples/app-crm: a dry run before the first boot, which is how an operator previews a new deployment.
The measurement is #20768's dev's (os-dev-report 5907461577 on #20768, out_of_scope_findings[0]). It was taken three times at three heads (6434aeeff6, eacb87eed0, c5ae3a6f8e, PR #20818's head), with the stack captured for the sys_migration line. The at-tier review of PR #20818 (record 5907707282) read the sys_migration source against the code.
Filed by the domain:engine execution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY, os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
What happens
os migrate plan on a database file that does not exist yet prints these lines on stderr. It printed 7 at base 96e724475c and prints 6 at PR #20818's head:
table named in [sql-driver] DATABASE_ERROR … no such table |
lines |
reader |
sys_metadata |
4 |
not traced: only the sys_migration stack was captured |
sys_metadata_activation |
1 |
not traced |
sys_migration |
1 |
the adr-0104-value-shapes read by ObjectQL.announceOpenMigrationGates at kernel:bootstrapped (packages/objectql/src/engine.ts, which calls readMigrationFlagVerified directly) |
The dry run defers the DDL, so these tables are never created, and the boot then reads them. Each read is refused, the refusal is logged at warn, and the plan's own answer is still right: running the same plan on a booted file prints 0 lines.
It is the same false-alarm family as #20648 (a paged ledger read) and #20768 (the first boot's pre-DDL question, served by PR #20818). This is a third door. PR #20818 demotes only the driver's own pre-DDL question, so these reads keep their warn.
Scope for whoever takes it (⛔ not a ruling)
Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:
Dedupe words: migrate plan absent database DATABASE_ERROR · os migrate plan new database no such table sys_metadata · announceOpenMigrationGates deferred DDL missing ledger · dry run plan before first boot warn noise
Generated by Claude Code
Filing gate: ① a defect with a named producer. Finding class (a).
reach:the public CLI dooros migrate plan --database-url file:ABSENT.sqliteonexamples/app-crm: a dry run before the first boot, which is how an operator previews a new deployment.The measurement is #20768's dev's (
os-dev-report5907461577 on #20768,out_of_scope_findings[0]). It was taken three times at three heads (6434aeeff6,eacb87eed0,c5ae3a6f8e, PR #20818's head), with the stack captured for thesys_migrationline. The at-tier review of PR #20818 (record 5907707282) read thesys_migrationsource against the code.Filed by the
domain:engineexecution seat 1 (session_01DEvba2nBuD4tWzfq8r8NFY,os-support-ai). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.What happens
os migrate planon a database file that does not exist yet prints these lines on stderr. It printed 7 at base96e724475cand prints 6 at PR #20818's head:[sql-driver] DATABASE_ERROR … no such tablesys_metadatasys_migrationstack was capturedsys_metadata_activationsys_migrationadr-0104-value-shapesread byObjectQL.announceOpenMigrationGatesatkernel:bootstrapped(packages/objectql/src/engine.ts, which callsreadMigrationFlagVerifieddirectly)The dry run defers the DDL, so these tables are never created, and the boot then reads them. Each read is refused, the refusal is logged at warn, and the plan's own answer is still right: running the same plan on a booted file prints 0 lines.
It is the same false-alarm family as #20648 (a paged ledger read) and #20768 (the first boot's pre-DDL question, served by PR #20818). This is a third door. PR #20818 demotes only the driver's own pre-DDL question, so these reads keep their warn.
Scope for whoever takes it (⛔ not a ruling)
DATABASE_ERRORlines where nothing is wrong. Either a table that the dry run has deferred is not read, or a refusal for such a table reaches no warn channel.[sql-driver] DATABASE_ERROR … no such table: sys_migrationon the warn channel: the engine's migration-gate read runs before the table is created #20768's triage direction applies by analogy: prefer "not asked"; otherwise recognise the refusal with the one missing-table predicateisMissingTableError. ⛔ No second message regex. ⛔ Don't demote every refused read.Dedupe
mcp__github__search_issues, repo-scoped, open and closed, in the act that filed this card:[sql-driver] DATABASE_ERROR … no such table: sys_migrationon the warn channel: the engine's migration-gate read runs before the table is created #20768 (open) is the first boot, not the plan door. 17.5.0: every boot of a database created on 17.4 prints "Paged read of 'sys_migration' is NOT deterministic" for the platform's own primary-key lookup #20648 is closed, a different read. cli/driver-sql:os migrate plan自称 dry-run,却仍会在全新项目上创建空数据库文件(#6469 的残余写副作用) #6743 and fix(cli,runtime): os dev / os start / os migrate 解析出三个不同的默认数据库 —— migrate plan 因此在自己刚建的空库上报告全量 drift #6469 are closed and about the plan creating the file and resolving the path. loadMetaFromDb 用 /no such table/i 正则判「良性首启」,其余 sys_metadata 读失败吞成 console.warn + loaded:0 —— isMissingTableError 的手抄第二份 #5841 and sys_metadata 不可用被 mapDataError 的 unknown-object 启发式误报成 404 OBJECT_NOT_FOUND,且 404 属「预期状态」因而一行日志都不留 #5462 are closed sys_metadata classifications. None is this.os migrate planagainst a remote Turso datasource performs the DDL and the canonical backfill it was meant to preview, and prints no pending work #19823 is closed (remote Turso deferred DDL). [17.0.0-rc.0] os migrate apply: no occupancy/lock detection for SQLite, and boot-time DDL runs before the confirmation prompt #3917 and unique 索引迁移在启动时静默执行 DDL,os migrate plan 看不到 —— 运维无预检手段 #3728 are closed. None is this.Dedupe words:
migrate plan absent database DATABASE_ERROR·os migrate plan new database no such table sys_metadata·announceOpenMigrationGates deferred DDL missing ledger·dry run plan before first boot warn noiseGenerated by Claude Code