Jon Chery
7a93a92c68
feat(P04): Phase 04 verification script + finalize_evidence URLError fix (T-4.4)
...
---ci---
phase: 4
milestone: v1.0
status: execute
persona: lead-developer
task: T-4.4
requirements:
covered: [REQ-10, REQ-12]
review:
p0: 1
p1: 0
p0_items:
- id: P0-001
location: scripts/finalize_evidence.py _request()
issue: urllib.error.URLError (connection refused, DNS, timeout) was uncaught and stack-traced instead of returning clean JSON
severity: P0 (the pipeline would crash on a Gitea outage instead of writing a clean failure event)
fix: catch URLError in _request(); return (0, 'URLError: <reason>') so callers report cleanly
---/ci---
Wave 2, task T-4.4. scripts/verify_phase04.sh checks: (1) typecheck; (2)
pipeline.yml structure (3 inputs + 4 jobs + correct if: conditions +
finalize.needs=prod-gate); (3) pipeline.yml references all 5 core scripts
+ branch-pin doc; (4) issue-to-contract.yml structure (issues[opened] +
parse-and-trigger); (5) issue-to-contract.yml references (l3b_agent_stub
+ dispatch endpoint + contract-ref + issue number + GITEA_TOKEN +
new_branch); (6) finalize_evidence.py --help + missing file + missing
token (all exit 1 clean, no stack trace); (7) finalize_evidence.py
dead-host dry-run (exit 1, no stack trace). All 12 checks PASS.
The dead-host check caught a P0: finalize_evidence.py did not catch
urllib.error.URLError, so a connection-refused would stack-trace in the
pipeline. Fixed by catching URLError in _request() and returning
(0, 'URLError: <reason>') so callers report a clean JSON failure.
2026-07-21 13:40:50 +00:00
Jon Chery
3bcebd8d14
feat(P04): add finalize_evidence.py helper for D-028 state persistence (T-4.1)
...
---ci---
phase: 4
milestone: v1.0
status: execute
persona: backend-engineer
task: T-4.1
requirements:
covered: [REQ-10]
---/ci---
Wave 1, task T-4.1. Adds scripts/finalize_evidence.py, a stdlib-only helper
that uploads a local audit.json to the acdl-evidence Gitea repo via the
file-contents API. It GETs the existing file to discover its sha (update
mode) and falls back to create mode on 404, then PUTs/POSTs the base64-encoded
content with the Authorization: token <token> header. This is the per-stage
state-persistence mechanism (D-028) used by the pipeline jobs between
re-dispatches, and the finalize-step writer (D-029).
2026-07-21 13:37:51 +00:00
grimacing
3ea36ef3ab
ship: phase-03 l2-modules-and-core-scripts (v1.0.3)
...
Squash merge of phase/03-l2-modules-and-core-scripts; 4 L2s + 5 core scripts; verify_phase03.sh green.
2026-07-21 13:32:21 +00:00
grimacing
00d0043866
ship: phase-02 l1-modules (v1.0.2)
...
Squash merge of phase/02-l1-modules into milestone/v1.0-initial; 8 L1 stub modules created; verify_phase02.sh green.
2026-07-21 13:18:12 +00:00
Jon Chery
b953fd4a8e
docs(P01): complete repo-scaffolding phase
...
---ci---
phase: 1
milestone: v1.0
status: complete
requirements:
covered: [REQ-01, REQ-09]
partial: [REQ-10, REQ-12]
---/ci---
Squash merge of phase/01-repo-scaffolding into milestone/v1.0-initial.
Phase 01 ships the three-repo scaffold (acdl, acdl-contracts, acdl-evidence),
the placeholder index.html on acdl-evidence (D-012/D-016 raw-URL substitute
for unsupported Gitea Pages), the qa + prod branches on acdl-contracts
(D-013 stand-in for unsupported Gitea environments), the workflow skeletons
(pipeline.yml + issue-to-contract.yml), and the idempotent setup + verify
scripts. REQ-10/12 remain partial pending Phase 04 full implementation.
2026-07-21 13:10:50 +00:00