Skip to content

✨ [feat] codex: full lane-result validation and pinned wave summary keys - #70

Merged
EricTechPro merged 2 commits into
mainfrom
feat/codex-lane-contract
Oct 19, 2026
Merged

EricTechPro merged 2 commits into
mainfrom
feat/codex-lane-contract

Conversation

@EricTechPro

Copy link
Copy Markdown
Owner

Note

⏳ In review · round 1 · ✅ 8/8 AC · Closes #34 · Closes #36 · head 996a65d

Problem

Solution

  • The lane validates the whole result against the schema it already builds: types, required keys, no extra keys, priorFindings null or three integer counts (booleans rejected). Anything else prints status: failed and exits 1
  • tests/test_codex_lane_schema.py reads both schemas from source (Python ast for the lane, node for STAGE_SCHEMA) and fails if the status enum, field names or priorFindings keys differ
  • The two up-front halt summaries in the Codex wave now carry prUrl: null and priorFindings: null
  • tests/test-codex-wave-contract.sh reads the summary keys from the workflow's summary object and checks every card in normal, bounced, halted-while-grading, verification-readiness and skills-readiness waves, plus a boolean halted
  • The stubbed codex moved to tests/fixtures/fake_codex.py so both Codex suites share it; it also takes SB_CODEX_TEST_RESULT for verbatim results

Acceptance criteria

Iteration history

Lane Done Time Details
🔨 builder ✅ Oct 19 bash tests/run-safety.sh → PASS 61 suites (py3.9, py3.12) · 996a65d

Risk

🟢 Low · stricter validation on one launcher; a schema-valid lane result prints unchanged. The wave change only adds two null keys to halt summaries.

🤖 Generated with Claude Code

EricTechPro and others added 2 commits October 19, 2026 06:31
- validate the whole Codex result against the lane's --output-schema (types, required keys, no extra keys, priorFindings null or three integer counts)
- anything else prints status: failed and exits 1; a valid result still prints unchanged
- tests/test-codex-lane.sh covers non-string prUrl, an extra key, missing notFixed and valid null results
- tests/test_codex_lane_schema.py pins the status enum and field names to STAGE_SCHEMA

Closes #34

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- tests/test-codex-wave-contract.sh reads the summary keys from workflows/super-board-wave.js and checks normal, bounced, halted-while-grading, verification-readiness and skills-readiness Codex waves
- fix: the two up-front halt summaries in scripts/super-board-codex-wave.sh now carry prUrl and priorFindings (null)
- move the stubbed codex into tests/fixtures/fake_codex.py so both Codex suites share it

Closes #36

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@EricTechPro
EricTechPro merged commit b4fb89e into main Oct 19, 2026
13 checks passed
@EricTechPro
EricTechPro deleted the feat/codex-lane-contract branch October 19, 2026 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🧪 [test] codex-wave: pin wave summary keys to the workflow's ✨ [feat] codex-lane: reject malformed lane results in full

1 participant