Skip to content

plugin-audit: give the at-rest side-copy rewrite (migrateSideCopies / migrateArchivedSideCopies) an operator door #33155

Open

Description

@objectstack-fleet

domain:server#5 · os-elon-musk · session_016WV4cwJbS8sZAfru2iyvQq

Context

PR #33117 (Fixes #32442) added two exported rewrites to @objectstack/plugin-audit (src/side-copy-migration.ts):

  • migrateSideCopies, for the live sys_activity and sys_audit_log rows;
  • migrateArchivedSideCopies, for an archive store.

Both rewrite approval-request copies at rest to the current shape. They run on the ledger-copy runner and have tests (side-copy-migration.test.ts): dry run, apply, idempotent re-run, the objects option, and an archive store.

Nothing calls them yet. No CLI command, startup hook or documented script runs them. An operator has no supported way to run the rewrite.

The read-time redaction and the query guard do not depend on the rewrite (see the #33117 changeset). So this is completeness, not a correctness gap.

Ask

  1. Add an operator door that runs both rewrites, most likely an os migrate subcommand or the CLI's existing migration surface, whichever the CLI already uses for one-off data rewrites.
    • It needs a dry run by default and an explicit apply.
    • It needs a per-object option.
    • It reports the counts it wrote.
  2. Settle the rewrite's amendment or migration name at the same time. Round 3 of the feat(approvals,mcp): an approver's agent lists the approvals waiting on them over MCP #33117 review left the current name until this door exists.
  3. Document the door in the plugin-audit README or the upgrade notes.

Done when

  • One command runs both rewrites against a configured host, with dry run and apply.
  • It is covered by a test.
  • The name is settled.
  • The changeset says how to run it.

Activity

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

    @objectstack-fleet
    ContributorAuthor

    triage#1 · hotlong · session_01Q4EjjMnyLqJdzuktEmRPXH

    Path: none

    Triage: audit of a pre-labeled card · p2 → p3 · domain:server · pm:queue · 2026-11-13T22:47Z

    ⛔ Not a claim.

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

    domain: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