Skip to content

Two catalog action handlers are registered but never declared — ADR-0110 D3 refuses both at dispatch, on every boot #71

Description

@os-warren

Every boot of this app logs:

WARN [action-governance] registered handlers with NO declaration — these are REFUSED at
dispatch (ADR-0110 D3) and there is no opt-out; declare each one with `defineAction`, or
drop the registration if nothing should invoke it over HTTP
{"count":2,"handlers":["global:duly_catalog_apply","global:duly_catalog_sync"]}

src/actions/register-handlers.ts registers handler bodies for duly_catalog_apply and duly_catalog_sync; no defineAction metadata declares either. Under ADR-0110 D3 an undeclared handler is refused at dispatch with no opt-out, so both are dead over HTTP — the handler code exists, runs in-process if called directly, and cannot be invoked through the API surface.

Same shape as #68, one layer over: pnpm validate, pnpm typecheck, pnpm test and pnpm build all exit 0, and the only channel that reports it is the boot banner's diagnostics block.

What needs deciding

Whichever way this goes, it is a two-line change plus a test — but the two ways are opposite:

  • Declare them with defineAction (+ placement, labels, i18n bundle entries) if catalog apply/sync are meant to be callable — in which case there is a follow-on question about which surface exposes them and who may run them.
  • Drop the registrations if they were only ever meant to run from the in-process catalog path, in which case the handler bodies should move behind whatever actually calls them.

Worth checking test/catalog-instantiate.test.ts and test/catalog-action-placement.test.ts first: if either calls these handlers directly, that is a green test over a surface that is refused in production — the same test-side-bind false green test/dispatch-wiring.test.ts exists to avoid.

Found while booting the app to verify #68. Not touched there — out of that card's scope.


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

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