feat: add D3 daily preview artifact acceptance slice#51
Conversation
Co-Authored-By: Codex <noreply@openai.com>
🤖 Codex PR Review🚫 Merge blocked: 2 serious issue(s) found in high-risk files ⚖️ Codex Review Arbitration🚫 block: Current finding 1 remains valid. The new workflow only triggers on six paths in 🚫 Blocking IssuesThese issues must be fixed before this PR can be merged: 1. 🟠 [HIGH] Logic in
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c255a80f76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| build_preview_bundle(report, repeat_output) | ||
| repeat_equal = all( | ||
| (output / name).read_bytes() == (repeat_output / name).read_bytes() | ||
| for name in ("manifest.json", "report.html", "report.json") |
There was a problem hiding this comment.
Rebuild the report for repeat-byte evidence
When the workflow is re-run for the same --as-of at different seconds, build_advisory_report stamps a new generated_at, so report.json and the manifest hashes differ; this check still records repeat_build_bytes=true because it only serializes the same in-memory report a second time. The acceptance evidence can therefore certify byte equality while two actual fixture builds are not byte-identical.
Useful? React with 👍 / 👎.
| - "scripts/d3_build_daily_preview_artifact.py" | ||
| - "scripts/d3_verify_daily_preview_artifact.py" | ||
| - "src/quant_advisor_research/preview_bundle.py" | ||
| - "src/quant_advisor_research/advisory_report.py" | ||
| - "tests/test_d3_daily_preview_artifact.py" |
There was a problem hiding this comment.
Include fixture CSVs in the PR path filter
When a PR changes examples/political_events.example.csv or examples/political_watchlist.example.csv, this workflow is skipped because the paths filter only lists workflow/script/src/test files, even though the build step consumes those two fixture files. That lets changes to the representative artifact inputs bypass the artifact upload/download/readback acceptance check.
Useful? React with 👍 / 👎.
Co-Authored-By: Codex <noreply@openai.com>
|
Concentrated closure completed at Addressed only the three D3 evidence findings:
Validation: focused D3+preview tests |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7bbf5c7772
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - "src/quant_advisor_research/preview_bundle.py" | ||
| - "src/quant_advisor_research/advisory_report.py" |
There was a problem hiding this comment.
Add transitive modules to the path filter
In the pull_request workflow path filter I checked, changes to transitive validation code such as src/quant_advisor_research/contracts.py do not trigger this job, even though preview_bundle.py imports validate_advisory_report from that module for build_preview_bundle()/read_preview_bundle() validation. A PR that only changes the contract/schema validation can therefore bypass the upload/download artifact acceptance; please include the transitive modules or broaden the src/quant_advisor_research/** filter.
Useful? React with 👍 / 👎.
Scope
D3-PR0 clean-slate, daily-only representative-fixture producer -> existing
qar.preview_bundle.v1-> isolated$RUNNER_TEMPdirectory -> GitHub Actions artifact upload -> independent download/readback evidence.Source of truth:
/Users/lisiyi/Documents/Codex/2026-07-14/ba-2/outputs/qar_vnext_d3_concrete_action_artifact_design_v1_2026-07-15.mdContract
report.json,report.html,manifest.json; canonical JSON; manifest SHA/source pair; relative links; repeat-build byte equality.5/ manifest contractmodel_recommendations.v5.Validation
python3 -m pytest: 284 passedpython3 -m compileall -q src scripts tests: passedactionlint .github/workflows/qar_vnext_d3_daily_preview_artifact.yml: passedgit diff --check: passedruffexecutable not installed)Real GitHub Actions artifact upload/download/readback evidence is required before merge; worker does not merge or poll after PR creation.
Base:
origin/main@c5ba801a8696eec63c7ba348f3f125cb52cd06ffCommit:
c255a80