Skip to content

[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

Description

@objectstack-fleet

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)

  1. An interrupted metadata.recorded-by-sentinel-to-null run exists.
  2. 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".
  3. 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.

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

Activity

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:clipriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions