Checkpoint — DOT agent_api Contract / Dispatcher 2026-06-04
Checkpoint — DOT agent_api Contract / Dispatcher (short SSOT)
Date: 2026-06-04 · Macro: DOT_AGENT_API_CONTRACT_DISPATCHER_TRUE_DRYRUN_UI_REGISTRATION Final status: PARTIAL — all safe branches LIVE; true DRY_RUN blocked on a missing agent_api invocation endpoint. Execution mode: EXECUTION_MODE. RO=query_pg(context_pack_readonly); RW=ssh contabo→docker exec -i postgres psql -U directus; KB=upload_document; staging=/opt/incomex/docs/mcp-writes/dot-agent-api-contract-2026-06-04/.
Live mutation: YES (birth-free)
birth_registry 1,163,392 before == after across the committed apply + write test (session-start→apply drift 1,158,336→1,163,392 was background, excluded from the local guard). trigger_guard_alerts=129 unchanged. Additive only. MCP read-back PASS.
Runner pattern status
9-rule Runner Safety Contract extracted from iu-cutter-v0.6 / dot_iu_command_run / dot-hc-executor and reused. Only the execution body is non-reusable (agent_api has no endpoint).
agent_api contract status: LIVE
dot_agent_api_contract generic registry (keyed by dot_code; CHECKs: no_mutation_assertion=true, output_namespace LIKE 'DRYRUN-NS:%', mode=DRY_RUN⇒endpoint_ref NOT NULL). Pilot pair bound: DOT_KG_EXPLAIN (PLAN_ONLY producer) + DOT_KG_EXPLAIN_VERIFY (VERIFY_ONLY verifier), endpoint_ref NULL.
Dispatcher status: LIVE
fn_process_agent_api_dispatch — generic, fail-closed, cannot execute a DOT, never writes DRY_RUN/REAL_RUN. 5/5 refusals proven (REAL_RUN, DRY_RUN-no-endpoint, unknown-dot, no-correlation, non-dry-run runtime).
KG binding status: complete
Fixture FIXTURE:dot:kg:explain:v1 + output ns DRYRUN-NS:dot:kg:explain + producer/verifier schemas all bound. Only the live endpoint is missing.
No-execute test status: PASS
2 prepared SIMULATED_DRY_RUN runs+components; idempotent (re-call same UUID, 0 rows); births unchanged; pilot usage_count/last_executed NULL; 0 DRY_RUN/0 REAL_RUN; 0 events.
True dry-run result: NOT EXECUTED — exact blocker
No agent_api invocation endpoint exists (endpoint_ref NULL; host dispatcher grep empty). Faking = MOCK = forbidden. 0 DRY_RUN rows.
v5 / UI status: LIVE / patch-ready
5 v5 views live. dot:kg: runner_contract_missing → plan_only_tested (contracts 2, endpoints 0, dispatcher true, prepared_obs 2). job:cut: verified_candidate preserved. Invariant: verified_candidates_v3 = only job:cut. 5 /process-discovery/* routes patch-ready (no Nuxt math; verified badge only from v3; operator-gated deploy).
job:cut registration prep: DONE (owner pending)
verified_candidate, 8 members, VERIFIED_PENDING_OWNER, owner_missing. Registration-readiness packet authored; no birth/canon/approval. Only owner blocks.
dot:kg owner/event prep: DONE (sequenced)
Chain: endpoint → real run → owner registration → 10-law-def split → process.* activation. 7 process.* events all inactive (do-not-activate this macro).
D1/D2 expansion readiness: DONE
KG D1 cluster refinement + dot-kg D2 SOP expansion + family diagram identified; runner-free, owner-free.
Next macro
PRIMARY DOT_AGENT_API_PLAN_ONLY_ENDPOINT_IMPLEMENTATION. Parallel: PROCESS_DISCOVERY_V5_UI_DEPLOY · JOB_CUT_PROCESS_REGISTRATION_CANDIDATE_PREP · INFORMATION_PIECE_D1_D2_EXPANSION_ON_KG_DOT.
Exact blocker
A registered, no-mutation agent_api invocation endpoint for DOT_KG_EXPLAIN(+_VERIFY) consuming FIXTURE:dot:kg:explain:v1, writing only to DRYRUN-NS:dot:kg:explain, returning a verifier-checkable output — bound as dot_agent_api_contract.endpoint_ref, mode→DRY_RUN. No engineering blocker on contract/dispatcher/observation/v5.
Artifacts
Apply /opt/incomex/docs/mcp-writes/dot-agent-api-contract-2026-06-04/v5_apply.sql · Rollback …/v5_rollback.sql · Report dir knowledge/dev/reports/architecture/dot-agent-api-contract-dispatcher-dryrun-ui-registration-2026-06-04/ (docs 00–15).
Continues checkpoint-dot-runner-dryrun-registration-readiness-2026-06-04.md.