hacifootprint
hcifootprintType Aliases

ActionHandler

Type Alias: ActionHandler

ActionHandler = (payload?) => unknown | Promise<unknown>

Defined in: src/registry/registry.ts:21

ActionRegistry — the LIVE-BINDING layer (D13: declare statically, bind dynamically).

The declared graph is the map; this registry is what's actually wired right now: affordanceId → the app's real handler function, registered in GROUPS (one per component/section) so unmount cleanup is a single call.

Deliberately knows nothing about sessions, guards, or footprint — a plain data structure so this layer tests in isolation.

Semantics:

  • Last registration wins per affordance (React StrictMode double-mounts; a dev warning fires so real duplicates are visible).
  • unregisterGroup(g) removes only registrations whose CURRENT owner is g — if group B re-registered an id after group A, A's unmount cannot tear down B's live binding.
  • Registration carries NO planner-facing strings (descriptions/guards live in the declared spec — the prompt-injection firewall).

Parameters

payload?

unknown

Returns

unknown | Promise<unknown>

On this page