KB-78CD

Macro-2 Rejected-Channel Register — R2-B2 (2026-06-19)

4 min read Revision 1
laws-newR2-B2macro-2channelrejected-channelnon-authorizing2026-06-19

Macro-2 Rejected-Channel Register — R2-B2

Date: 2026-06-19 · Workstream: R2-B2-MACRO-2-OWNER-DECISION-PREREQ-CLOSURE-READINESS-2026-06-19 (Deliverable 12 of 45) · Editorial revision: rev1 Class: rejected/deferred channel register · READ-ONLY · NON-ENACTING · NON-AUTHORIZING · NO channel selected · NO write performed.

Metadata convention. Editorial revision (rev1) only. AgentData storage revision/content_length authoritative at read time; not pinned here.

Rejection lock. Records which channels are rejected as standing channels and which are future-gated (not candidates) — with reasons. It rejects/defers as classification only; it selects nothing and forecloses no future Owner choice.


0. Status and non-authorization

STATUS: PASS — engineering / classification. A register of the rejected and future-gated channels, with fresh-evidence reasons. It selects nothing.

Engineering PASS ≠ authority PASS. Default disposition: HOLD. No channel selected; no install/enable; no DB write/DDL/DML; no TD; no blocker resolved; v0.1 not overwritten; v0.2 not authority.

Evidence basis — FRESH_READONLY_EVIDENCE (2026-06-19) + INHERITED_KB_EVIDENCE. Reading discipline: main process, no reader-agents.


1. Purpose

State, separately from the candidates, which channels are out of contention now and why — so the Owner's choice is bounded to the live candidates.


2. Sources / evidence read

Deliverable 6 (channel ballot); the inspect-producer TD-prep §11 (manual one-shot reject; B5 separation); the fresh RQ-ledger. Read directly, main process.


3. Accepted baseline (carried)

manual one-shot = rejected as a standing channel; pg_cron + job_queue = risky/future-gated.


4. Rejected / future-gated register

Channel Classification Reason (FRESH 2026-06-19) Could it return?
manual one-shot rejected as standing channel the 2026-03-21 SSH+docker exec pattern; violates Điều 32 §2.1 (no manual SQL / no curl bypass); not testable/replaceable/rollback-able as a block; vehicle of the fused INSERT only as B5 — a separate, bounded, Owner-approved one-time backlog pass through the same fail-closed contract (never the fused shortcut)
pg_cron future-gated (not a candidate now) extension absent (RQ-4); installing it is a net-new infra write yes, if the Owner approves an extension install (separate gate)
job_queue worker future-gated (not a candidate now) queue.worker.enabled=false, queue.job_substrate.enabled=false (RQ-13); event_outbox 215,607 undrained (RQ-8) — the "queue nobody drains" failure mode is already present yes, if the Owner enables + proves draining (separate gate)

Reading. Rejection/deferral is classification, not foreclosure — the Owner may still later open pg_cron or job_queue behind their own gates; manual one-shot stays rejected as a standing channel (its only legitimate residual form is B5).


5. Result

manual one-shot rejected as standing; pg_cron + job_queue future-gated; the live candidate set is host cron + agent-api (Deliverables 6–9). No channel selected.


6. Owner-gated future work

Re-opening pg_cron/job_queue (install/enable) or running a one-time B5 pass are all separate Owner-gated acts; forbidden now.


7. What remains unresolved

  • Candidate set bounded to host cron + agent-api; pg_cron/job_queue future-gated; manual one-shot rejected.
  • Blockers — all OPEN.

8. Ready for GPT/Codex review

Yes — as the rejected-channel register.

Core rule: manual one-shot rejected as standing (B5 = its only residual form); pg_cron + job_queue future-gated; no channel selected; no foreclosure of a future Owner-gated choice.

Default disposition: HOLD. Engineering PASS ≠ authority PASS. All blockers remain OPEN.

Back to Knowledge Hub knowledge/dev/laws-new/newlaws/consolidation/macro2-rejected-channel-register-r2-b2-2026-06-19.md