Phase A — Hard Gate 0 + Baseline + Backup
Hard Gate 0 — Write channel probe
| check |
result |
ssh contabo reachable |
✓ |
docker exec postgres works |
✓ |
psql -U workflow_admin -d directus works |
✓ |
SELECT 1 channel_probe |
1 |
BEGIN; CREATE TEMP TABLE; INSERT; SELECT; ROLLBACK; |
DDL+DML OK, ddl_dml_ok=1 |
Baseline read of current Điều 39 case
| field |
value |
cut_request_id |
c7133284-a579-4266-aed8-c91f75a22283 |
status |
cut_failed |
copy_staging_record_id |
e08d627f-e802-4a70-8262-9c7bf7c0a21a |
manifest_staging_record_id |
5ef349ac-830f-4851-be0a-bcca12bbb1f2 |
manifest_digest |
9ad8ad53c225ac262cc5f9f4ecddd358 |
cut_run_id |
c42ebc50-20eb-459e-9099-eb46638f63b1 (LEGACY fake state) |
cut_done_at |
2026-05-27 05:45:54.928814+00 (LEGACY fake state) |
cut_verified_at |
NULL |
completed_at |
NULL |
mark_verdict |
approved |
manifest lifecycle_status |
approved |
The fact that cut_run_id and cut_done_at are non-NULL while status='cut_failed' is the failure-state bug — fn_cut_apply (pre-fix) wrote these unconditionally after the alias returned a refusal.
Gates at entry
| key |
value |
iu_core.composer_enabled |
false |
queue.job_substrate.enabled |
false |
queue.heartbeat.enabled |
true |
queue.dlq.replay_enabled |
false |
Counts at entry
| metric |
value |
iu_total (public.information_unit) |
200 |
iu_dieu39_count (doc_code DIEU-39%) |
0 |
iu_vector_sync_point count |
152 |
event_outbox count |
139900 |
production_documents |
absent |
Function md5 at entry
| function |
md5 |
fn_cut_apply |
ce488b884200893e38ffb17bca4baceb |
fn_cut_mark_staged_file |
e85065acb9996623e0ef1f654d991df6 |
fn_cut_request_transition |
c392d3e156159852a97889df1af04165 |
fn_iu_create |
dcade99af1ef096892748c9f14082e11 |
fn_iu_cut_from_manifest |
c5d556bc22cc2d255c0484b5a969ebc5 |
fn_iu_cut_preflight_validate |
914e26d61de0de914408af5cdc679c07 |
fn_iu_op_cut |
66b813e50205448eb01170aebec614df |
fn_iu_op_verify_mark |
bf20bd1929998073865808d17b1dd648 |
fn_iu_verify_mark |
c9c0553f3184bfaa3f2ee5488b5ff46c |
pg_dump backups (single TX migration window)
| dump |
size B |
md5 |
pre /tmp/pre_verify_approve_cut_gate_fix.dump |
84,391,933 |
0578a9f58820b29c50f8c3d1c089c9f3 |
post /tmp/post_verify_approve_cut_gate_fix.dump |
84,397,741 |
2a454fda2be1f54528aa76991c48d74e |
| delta |
+5,808 B |
— function bodies only |