host
4c38e3c452
audit: wire pushback gate to hard merge gate and hash-chain ledger (gap 1)
...
Track 3 decisions (audit_pushback) now really block the server merge
endpoint and really land on the track 4 hash chain, via the new
cloud/audit_wiring.py translation layer:
- POST /tasks/{id}/merge ANDs the chain pushback block
(merge_blocked/release_blocked/blocked_by=audit_pushback/round/
failed_checks, replayed per module+contract version) with the
hard gate's five checks in every gate mode; either side blocks
-> 409, status unchanged, audit_pushback_blocked appended to
merge_gate.blocks. Ledger reads that fail (other than a missing
audit_ledger table) fail closed to 409.
- Every pushback/fix/re-audit/rebuild/escalation step is written
to the ledger with track 3 fields authoritative and track 4
storage authoritative; CONDITIONAL maps to fail at the boundary
with the original preserved, history never rewritten.
- Hard-gate 409 blocks codes feed pushback packages machine-first
(branch protection survives as its own extra check).
- Re-audit QA guard: a claimed pass with un-rerun or failed QA
links never reaches the chain.
- Track 4 compat: one audit_wiring_event action for escalation /
blocked-quota / audit-sample kinds, counted in the timeline.
- Resolved tension (documented in audit_wiring.py): a meta-review
correction to fail re-blocks at once, but a correction to pass
does NOT unblock by itself -- track 3 schedules a re-audit,
it does not release the gate; track 4 failure counts still use
effective verdicts, so the two views may disagree while a
re-audit is pending.
Tests: cloud/tests/test_audit_wiring.py (18 items), incl. a real
HTTP end-to-end chain (fail -> 409 -> fix -> re-audit pass ->
200) and a separate QA-link chain test.
2026-11-04 20:55:49 +00:00
..
2026-11-04 18:02:22 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:01:44 +00:00
2026-10-26 16:27:42 +08:00
2026-10-26 16:47:55 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-11-04 20:54:50 +00:00
2026-11-04 18:02:10 +00:00
2026-11-04 18:02:22 +00:00
2026-11-04 18:02:22 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:22 +00:00
2026-11-05 02:54:22 +08:00
2026-11-04 18:02:23 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:02:23 +00:00
2026-11-04 20:54:50 +00:00
2026-11-04 20:55:49 +00:00
2026-10-30 00:49:03 +08:00
2026-10-28 12:12:10 +08:00
2026-10-30 01:55:59 +08:00
2026-10-27 15:53:50 +08:00
2026-11-04 20:54:04 +00:00
2026-10-29 00:19:30 +08:00
2026-10-27 16:27:50 +00:00
2026-10-27 15:53:50 +08:00
2026-10-29 07:01:57 +08:00
2026-11-04 20:54:04 +00:00
2026-10-29 05:27:22 +08:00
2026-11-04 20:54:04 +00:00
2026-11-01 09:06:28 +00:00
2026-11-01 08:16:48 +00:00
2026-10-29 06:32:38 +08:00
2026-10-30 01:32:35 +08:00
2026-10-28 08:57:05 +00:00
2026-11-04 18:01:44 +00:00
2026-10-30 05:11:06 +08:00
2026-11-04 20:54:05 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-26 03:23:06 +08:00
2026-10-26 01:32:57 +08:00
2026-11-04 18:01:44 +00:00
2026-10-26 10:26:21 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 18:02:20 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 02:53:46 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 06:32:38 +08:00
2026-10-29 16:45:07 +08:00
2026-10-27 10:56:08 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-26 08:39:57 +08:00
2026-10-28 03:43:02 +08:00
2026-11-04 20:53:46 +00:00
2026-10-30 04:05:00 +08:00
2026-11-01 09:06:28 +00:00
2026-10-30 01:32:35 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 15:39:55 +08:00
2026-10-30 07:15:05 +08:00
2026-10-28 10:13:40 +00:00
2026-10-29 04:40:47 +08:00
2026-11-04 20:54:04 +00:00
2026-10-30 14:46:11 +08:00
2026-10-27 19:10:49 +00:00
2026-10-26 01:23:21 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 12:58:41 +08:00
2026-11-04 18:01:44 +00:00
2026-10-27 15:35:23 +00:00
2026-10-29 16:45:07 +08:00
2026-10-26 16:27:42 +08:00
2026-10-26 16:27:42 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:53:46 +00:00
2026-10-26 07:42:14 +08:00
2026-10-27 15:35:23 +00:00
2026-10-29 15:31:07 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 12:42:19 +08:00
2026-10-29 06:32:38 +08:00
2026-11-04 18:02:21 +00:00
2026-10-27 14:12:28 +08:00
2026-10-27 14:12:28 +08:00
2026-11-04 18:02:22 +00:00
2026-11-01 09:06:28 +00:00
2026-11-01 09:06:28 +00:00
2026-11-04 17:30:07 +01:00
2026-11-01 09:06:28 +00:00
2026-11-01 08:34:13 +00:00
2026-10-28 22:49:06 +08:00
2026-10-26 03:23:06 +08:00
2026-10-26 16:47:55 +08:00
2026-10-26 15:20:02 +08:00
2026-11-04 20:54:04 +00:00
2026-10-27 19:10:49 +00:00
2026-10-26 17:01:47 +08:00
2026-10-29 17:46:12 +08:00
2026-10-30 04:15:54 +08:00
2026-10-28 10:12:57 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 04:18:09 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 05:11:06 +08:00
2026-10-27 19:10:49 +00:00
2026-10-28 11:09:29 +08:00
2026-11-04 20:54:50 +00:00
2026-10-30 02:46:37 +08:00
2026-10-27 05:40:30 +08:00
2026-10-27 01:44:53 +08:00
2026-11-02 03:30:57 +00:00
2026-11-01 19:01:39 +00:00
2026-11-02 03:30:57 +00:00
2026-11-02 03:30:57 +00:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:01:44 +00:00
2026-11-04 18:02:21 +00:00
2026-11-04 18:01:44 +00:00
2026-10-29 05:41:35 +08:00
2026-11-04 20:54:33 +00:00
2026-11-04 17:11:23 +01:00
2026-10-26 23:17:25 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-27 15:35:23 +00:00
2026-10-26 16:47:55 +08:00
2026-10-26 06:46:20 +08:00
2026-11-04 20:54:04 +00:00
2026-10-29 23:16:01 +08:00
2026-10-30 14:46:11 +08:00
2026-10-27 15:35:23 +00:00
2026-10-30 07:15:05 +08:00
2026-10-30 07:08:51 +00:00
2026-11-04 20:54:50 +00:00
2026-11-04 20:54:50 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:33 +00:00
2026-11-04 20:53:46 +00:00
2026-10-27 16:37:28 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 06:33:25 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:55:49 +00:00
2026-10-27 04:30:43 +08:00
2026-10-27 04:40:11 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00
2026-10-30 05:11:06 +08:00
2026-10-30 02:25:48 +08:00
2026-10-30 00:39:13 +08:00
2026-10-28 11:14:10 +08:00
2026-10-28 11:25:17 +08:00
2026-11-04 20:54:04 +00:00
2026-10-29 06:32:38 +08:00
2026-11-04 20:53:46 +00:00
2026-10-28 04:56:22 +08:00
2026-10-27 16:37:28 +00:00
2026-10-28 05:36:18 +08:00
2026-10-28 06:10:02 +08:00
2026-10-28 04:33:20 +08:00
2026-10-30 05:11:06 +08:00
2026-11-04 18:02:20 +00:00
2026-10-30 14:46:11 +08:00
2026-11-04 20:54:04 +00:00
2026-10-30 01:16:49 +08:00
2026-11-01 14:15:54 +00:00
2026-11-01 14:15:54 +00:00
2026-10-30 01:16:49 +08:00
2026-11-04 20:53:46 +00:00
2026-10-26 06:46:20 +08:00
2026-10-27 14:12:28 +08:00
2026-11-04 20:53:46 +00:00
2026-10-28 11:25:17 +08:00
2026-10-30 14:46:11 +08:00
2026-10-30 01:38:01 +08:00
2026-11-04 20:54:04 +00:00
2026-11-04 20:54:04 +00:00