KB-65C6

Phase 2 — Regression Matrix

5 min read Revision 1
dieu45phase2regressionmatrix2026-05-26

Regression Matrix — Phase 2 vs Phase 1 baseline

Object counts

Surface Phase 1 post Phase 2 post Δ Note
public tables (BASE TABLE) 271 271 0 No new table
public views 55 55 0 No new view
public routines 515 520 +5 Phase 2 new functions
dot_config keys 94 98 +4 Phase 2 new keys
queue.* keys 8 12 +4
queue_heartbeat rows 0 1 +1 Passive marker
job_queue rows 0 0 0
job_dead_letter rows 0 0 0
event_outbox rows 133,784 (baseline) 134,803 +1,019 0 rows with phase2* actor or canonical_address — pure background traffic
iu_route_worker_cursor rows 1 1 0
iu_vector_sync_point rows 152 152 0
information_unit rows 175 175 0
production_documents absent absent 0

Phase 1 substrate intact

All Phase 1 objects still present and unchanged at definition level:

Tables: job_queue, job_dead_letter, queue_heartbeat Views: v_queue_health, v_job_queue_backlog, v_job_dead_letter_summary Functions (Phase 1): fn_job_enqueue, fn_job_claim, fn_job_ack, fn_job_fail_or_retry, fn_job_move_to_dead_letter, fn_job_queue_updated_at (trigger), fn_queue_heartbeat_tick, fn_queue_stale_check Triggers: 2 (fn_job_queue_updated_at on job_queue, queue_heartbeat updated_at trigger) Constraints: 8 unique CHECK constraints on Phase 1 tables (verified by name) — unchanged.

event_outbox unchanged

Check Status
pg_constraint CHECK constraint names 9 — unchanged
event_outbox_safe_payload_check definition unchanged (denylist mirrored to job_queue/job_dead_letter in Phase 1)
Row count delta +1,019 background only
Rows with actor_ref matching %phase2% 0
Rows with canonical_address matching %phase2% 0
Latest created_at from background traffic 2026-05-26 13:30:18 (predates Phase 2 mig commit at 13:52)

iu_route_worker_cursor frozen

worker_name='iu_outbound_default':

  • baseline last_run_at = 2026-05-22 11:31:41.928657+00
  • post-Phase 2 last_run_at = 2026-05-22 11:31:41.928657+00
  • Unchanged. Silent gap still ~96h+. (Phase 3 is responsible for restoring real worker activity OR explicitly retiring this row.)

pg_extensions

{btree_gist 1.7, pgcrypto 1.3, plpgsql 1.0, postgres_fdw 1.1} — unchanged. No pg_cron installed.

MARK/CUT alias surface unchanged

fn_iu_op_* 5 aliases present: fn_iu_op_cleanup_dry_run, fn_iu_op_cut, fn_iu_op_mark_file, fn_iu_op_verify_cut, fn_iu_op_verify_mark. None modified by Phase 2.

Gate states at exit

Gate Pre Phase 2 Post Phase 2 Note
queue.job_substrate.enabled false false Worker substrate kept inert
queue.worker.enabled false false No worker started
queue.notify.enabled false false No NOTIFY emission
queue.heartbeat.enabled false true Phase 2 governance armed (no daemon)
queue.lease.reaper_enabled (absent) false Default off
queue.lease.reaper_dry_run_only (absent) true Safety default
queue.dlq.replay_enabled (absent) false Default off
queue.runtime.phase (absent) phase2_governance Marker

Forbidden list audit (15/15 honored)

  1. No pg_cron install — confirmed
  2. No worker/daemon/cron started — confirmed
  3. No event_outbox traffic from Phase 2 — confirmed (0 rows)
  4. No event_outbox schema change — confirmed (9 CHECKs intact)
  5. No event_outbox row mutation — confirmed
  6. No event_type_registry widening — confirmed (no DDL touched it)
  7. No iu_sql_event_route CHECK widening — confirmed
  8. No Qdrant touch — confirmed
  9. No production_documents touch — confirmed (absent throughout)
  10. No fn_iu_op_* MARK/CUT alias change — confirmed
  11. No START-HERE change — confirmed (no file edits)
  12. No Điều 45 law text change — confirmed
  13. No customer/email/MOT runtime — confirmed
  14. No queue.worker.enabled=true flip — confirmed (kept false durably)
  15. No queue.job_substrate.enabled=true durable flip — confirmed (only inside rolled-back proof TX)

Verdict

Regression PASS. Phase 1 substrate intact, no worker started, no schema widening, no payload-key vocab widening, no MARK/CUT touch, no event_outbox schema mutation, all forbidden categories honored. Silent gap NOW visible via v_queue_health and fn_queue_stale_check — risk surface closure delivered as scoped.

Back to Knowledge Hub knowledge/dev/laws/dieu44-trien-khai/v0.6-dieu45-phase-2-heartbeat-activation-lease-governance/06-regression-matrix.md