Skip to content

cli: capsule library migrate drives Workspace::migrate_unsigned_sidecars #456

Description

@justin13888

Summary

Workspace::migrate_unsigned_sidecars (S-D24, PR #455) is the core verb that admits a pre-signed-path library's unsigned sidecars as signed assets. It has no CLI driver yet: its only call sites are its tests. A user with such a library currently sees Workspace::open warn about unmigrated sidecars and has no command to run.

Deliverable

  • capsule library migrate [--passphrase-stdin] [--retain-days N] (default retention 30, the value capsule-cli/src/demo.rs uses) that opens the workspace, resolves the default album at open exactly as the other verbs do (capsule-cli/src/lib.rs ensure_album at open), calls Workspace::migrate_unsigned_sidecars(&UnsignedMigrationOptions { fallback_album, trash_retain_days }), and prints the UnsignedMigrationReport (migrated / trashed / stacks / skipped with each MigrationSkip reason), with help text in locales/ per the i18n rule.
  • capsule library open/status (or the existing verb that reports library state) surfaces Workspace::unmigrated_sidecars() so the count is visible before the user runs the migration.
  • A CLI-surface artifact update (mise run cli-surface).

Why not in PR #455

PR #450 (S-B17) owns capsule-cli/src/{lib.rs, cli/commands.rs, cli/help.rs} in the same run and moves help text into catalogs; a Migrate arm there would have conflicted on all three files. Recorded as decision 11 in PR #455.

Refs #412, #455.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions