KB-2E24
C1 W7 apply — 03 handler binding proof (NOT EXECUTABLE; no manual SQL) 2026-06-23
3 min read Revision 1
c1-legow7handler-bindingnot-executableno-manual-sql
03 — Handler binding proof (STEP 4) — NOT EXECUTABLE (no manual SQL substituted)
Target: flip apr_action_types.authorize_build_step.handler_ref
from unimplemented → dot-apr-execute:authorize_build_step, via a DOT-approved path only
(file 05 PATH 1 = operator governed migration; PATH 2 = governed update_item APR, documented UNRELIABLE).
State (fresh-read)
- old
handler_ref=unimplemented(confirmed live, file 01 §B). - target
handler_ref=dot-apr-execute:authorize_build_step. - Ordering invariant: binding may only follow a successful handler deploy (STEP 1). STEP 1 = NOT EXECUTABLE (file 02) ⇒ binding is not reachable even before the channel question.
Path availability
| path | mechanism | available here? | why |
|---|---|---|---|
| PATH 1 (primary) | operator governed migration runner (_dot_origin='MIGRATION', the path that bound all 4 working handlers) |
NO | no migration-runner tool; agent env has no governed write/exec channel |
| PATH 2 (alt, pure-DOT) | governed update_item APR (PATCH /items/apr_action_types/…) |
NO + unreliable | needs the same APR propose/approve/execute channel (absent); and directus_fields has 0 rows for apr_action_types ⇒ Directus drops the unregistered handler_ref on write (would persist nothing) |
What was explicitly NOT done (anti-violation)
query_pgis read-only — it cannot runUPDATE apr_action_types SET handler_ref=…. No update was attempted.directus_update('apr_action_types', …)was available but deliberately not used: a direct Directus PATCH outside a governed APR is the forbidden "manual Directus" path (HARD LOCKforbidden-operator), and it is the UNRELIABLE PATH 2 (field-drop). Using it would be a non-DOT manual write.- No raw
psql … UPDATE …(no shell/psql tool exists here anyway).
⇒ No manual binding SQL was executed ⇒ GOVERNED_C1_DRYRUN_REJECT_MANUAL_BINDING_SQL does NOT fire.
Result
STEP 4 = NOT EXECUTABLE (operator/governed-migration step; also gated behind STEP 1)
- old handler_ref:
unimplemented· new handler_ref: unchanged (unimplemented). - binding command/path used: none (no DOT-approved migration runner reachable; no ad-hoc SQL substituted).
- authority approval / transaction / readback: n/a (nothing applied).
- rollback command: n/a (nothing applied; fail-closed state intact).
- why not ad-hoc SQL: forbidden by macro HARD LOCK; PATH 1 governed migration is the path of record and is an operator step.
Binding remains a later, owner-authorized operator governed-migration step — see file 07 blockers.