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
[finding] os migrate resume cannot complete a run: the CLI never composes the migration-plans registry, so every plan reads as unregistered and the remedy the refusal prints cannot be followed #21498
Filing gate: ① a defect with a named position, a finding of class (a). reach: was measured at a public door by the #21434 dev at aa4632235, and again at 34a0cd121e (os-dev report 5963586209, out-of-scope finding 2). Filed by the domain:cli seat, session_016GiHYRmLSNWTfbX9gVQkpz. ⛔ Not a claim. Reader who acts: triage grades and routes.
What happens (measured, public door)
An interrupted metadata.recorded-by-sentinel-to-null run exists.
os migrate resume --run RUN_ID --yes --json answers that the run "belongs to plan …, which no loaded package registers … Load the package that owns this migration and re-run".
The plan's owner, @objectstack/metadata-protocol, is already loaded by the CLI itself, so the prescribed remedy cannot be followed. resume's act mode completes no run at this door.
Why (read from source at origin/main)
The only registration of the migration-plans service is MigrationRecoveryPlugin: packages/runtime/src/migration-recovery-plugin.ts:71, (ctx as any)?.registerService?.('migration-plans', …).
That plugin is composed nowhere in packages/cli. The name appears only in a comment (packages/cli/src/index.ts:29) and a docblock (packages/cli/src/commands/migrate/resume.ts:45).
So recorded-by's in-process plans.register(plan) lands in its no-registry catch, and resume finds no plan for the run. The refusal sentence is at resume.ts:184.
For recorded-by, the practical recovery today is re-running --apply, which selects only the rows that still hold the sentinel.
Dedupe
MCP search_issues, repo-scoped, open and closed: 「migration-plans registry never composed in CLI, os migrate resume cannot complete run, no loaded package registers plan」 gave 15 hits.
Dedupe words: migration-plans registry never composed; resume no loaded package registers; MigrationRecoveryPlugin not composed in CLI; recorded-by plan unresumable.
Filing gate: ① a defect with a named position, a
findingof class (a).reach:was measured at a public door by the #21434 dev ataa4632235, and again at34a0cd121e(os-dev report5963586209, out-of-scope finding 2). Filed by thedomain:cliseat,session_016GiHYRmLSNWTfbX9gVQkpz. ⛔ Not a claim. Reader who acts: triage grades and routes.What happens (measured, public door)
metadata.recorded-by-sentinel-to-nullrun exists.os migrate resume --run RUN_ID --yes --jsonanswers that the run "belongs to plan …, which no loaded package registers … Load the package that owns this migration and re-run".@objectstack/metadata-protocol, is already loaded by the CLI itself, so the prescribed remedy cannot be followed.resume's act mode completes no run at this door.Why (read from source at
origin/main)migration-plansservice isMigrationRecoveryPlugin:packages/runtime/src/migration-recovery-plugin.ts:71,(ctx as any)?.registerService?.('migration-plans', …).packages/cli. The name appears only in a comment (packages/cli/src/index.ts:29) and a docblock (packages/cli/src/commands/migrate/resume.ts:45).recorded-by's in-processplans.register(plan)lands in its no-registrycatch, andresumefinds no plan for the run. The refusal sentence is atresume.ts:184.recorded-by, the practical recovery today is re-running--apply, which selects only the rows that still hold the sentinel.Dedupe
MCP
search_issues, repo-scoped, open and closed: 「migration-plans registry never composed in CLI, os migrate resume cannot complete run, no loaded package registers plan」 gave 15 hits.os migrate recorded-by --apply --jsonprints a second JSON document{"error":"EEXIT: 0"}and exits 1 after a completed run (the command's catch re-reports oclif's exit signal) #21434 (open) is the source card, with a different defect.os migrate plan/applycompose neither the host config nor PlatformObjectsPlugin — they diff a five-table subset and cannot apply the drift their own message names #12938 (closed) ismigrate plan/applycomposition of the host config.migrate plan/metacards on other subjects: [finding]os migrate planon examples/app-crm runs the app'sonEnablehook, which readssys_position/sys_permission_setthe plan never declares: 6 DATABASE_ERROR + 6 WARN lines on every plan #21054, spec: the root entry stops carrying the migration and conversion registries (about 1 MB of prose), so a console first screen no longer downloads os migrate text (the upstream payback of objectui#11088 D1) #20646, [finding]os migrate planagainst a database that does not exist yet prints 6[sql-driver] DATABASE_ERROR … no such tablewarnings: the dry run defers the DDL, then its boot readssys_metadata,sys_metadata_activationandsys_migrationanyway #20821, [finding] os migrate meta aborts at load on an object built with ObjectSchema.create that carries a retired key, although the refusal it prints tells the author to run os migrate meta #20696, fix(cli,runtime): os dev / os start / os migrate 解析出三个不同的默认数据库 —— migrate plan 因此在自己刚建的空库上报告全量 drift #6469, os migrate plan/apply never exit once a host config is composed — the process outlives its own "Graceful shutdown complete" (78 min, measured) #13027, cli/metadata:os migrate planstill creates.objectstack/metadata/on a fresh project (the residual half of #6743's dry-run write side effect) #7000, cli/driver-sql:os migrate plan自称 dry-run,却仍会在全新项目上创建空数据库文件(#6469 的残余写副作用) #6743, [P3]os migrate meta --storedskips flow rows — the finish line stops short of the one type that needs the executor registry #4454,os migrate plan/applyforever lists formula (virtual) fields as pending add_columns — the plan promises work apply can never do #3978,os migrate planomits the datetime storage-convergence work, so the plan understates what apply will do #3954, [17.0.0-rc.0] os migrate apply: no occupancy/lock detection for SQLite, and boot-time DDL runs before the confirmation prompt #3917, unique 索引迁移在启动时静默执行 DDL,os migrate plan 看不到 —— 运维无预检手段 #3728.None covers the resume registry.
Dedupe words: migration-plans registry never composed; resume no loaded package registers; MigrationRecoveryPlugin not composed in CLI; recorded-by plan unresumable.
Generated by Claude Code