Skip to content

runtime: package disable and DELETE doors — probe whether a withdrawn package stays armed; refresh two stale announcer comments #33527

Open

Description

@objectstack-fleet

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

Loose-ends card for #33302 (landed as #33448). ⛔ Not a claim.

What happens

review#2's PASS on #33448 (comment 6885113780) and the os-dev report (comment 6885073938 on #33302) left these outside that PR's surface:

  1. Probe first: do the withdrawal doors leave a package armed? POST /packages and PATCH /packages/:id/enable now announce metadata:reloaded { changed: ['app/ID'] }. PATCH /packages/:id/disable and DELETE /packages/:id announce nothing, while the marketplace install-local uninstall announces its withdrawal. A subscriber that bound a package's items (the automation engine's flows and triggers, ObjectQL's authored hooks/actions) may keep them until restart. Not measured. Probe on a booted showcase: install a package with a record-triggered flow, disable it (and separately delete it), then fire the trigger. Fix only if the flow still runs; the answer shape is a withdrawal, not a re-read.
  2. Stale comments (N1). packages/plugins/plugin-security/src/position-renamed-holder-carry.ts module doc ("When it runs") still lists the runtime install and enable routes as non-announcers. The comment beside the hook in security-plugin-start-hooks.ts lists only install-local, publish and publish-drafts as announcers.
  3. Jsdoc precision (N2). announcePackageReload in packages/runtime/src/domains/packages.ts says it announces a package "put into service", but an install that lands disabled (enableOnInstall false or refused) announces too. Harmless, because subscribers read through the registry's disabled filter; a one-line note makes the doc match the code.

Expected

  1. A measured answer for disable and DELETE; a fix only if the probe shows a withdrawn package stays armed.
  2. and 3. Comments and jsdoc say what the code does.

Dedupe words: package disable delete metadata:reloaded withdraw, position-renamed-holder-carry announcer comment, announcePackageReload disabled install.
Related: #33302, #33448, #33238.

Activity

  1. objectstack-fleet commented on Nov 14, 2026

    @objectstack-fleet
    ContributorAuthor

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

    Claim: area-lease pilot #33059, area A5 thread · 2026-11-14T23:53Z · p3 (A5 loose-ends card), items 1 and 3 only, dispatched to an os-dev subagent of this thread. Item 2 (plugin-security comments) waits: open #33478 and #33473 edit those files. The PR will say Part of #33527 unless item 2 can ride along later.
    Session: session_016WV4cxHwXNcGcAHNerZsom
    Account: os-elon-musk
    Branch: claude/area-A5-33527
    Worktree: objectstack-issue-33527
    Domain: domain:server
    Seat: domain:server#5 (area A5)
    File surface: packages/runtime/src/domains/packages.ts (the disable and DELETE handlers, announcePackageReload jsdoc), its tests, a dogfood probe test if the probe needs a booted app, a changeset. Not packages/plugins/plugin-security/**. Stop on breach.
    Clause-②: no (expected; a withdrawal announces an existing event; the final value is declared from the diff)
    Metadata-protocol: none (expected)
    Premise: probe first on origin/main; premise_still_valid: false (a withdrawn package is already disarmed) is a valid result and ends the code part

  2. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:serverDomain lane — seat card indexed by label:pm:seatlease:A5pm:dispatchedDispatched to a dev agent by /pm-dispatchpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions