Repository navigation
fix: ingest validation evidence into the cloud board #263
Description
Activity
The cloud board reported missing smoke, installation and release evidence even after those checks passed. Its daily workflow now reads smoke results and reconstructs release evidence from the newest integration run plus its matching TestPyPI rehearsal.
The collector verifies version, producer run ID, attempt, SHA and chronology before folding artifacts through the existing validator. It retains producer timestamps, never substitutes an older integration pass, and keeps missing evidence incomplete and failed producers adverse. The artifact search is bounded to 20 rehearsal runs and runs only in the daily cloud job; the local tick and all readiness thresholds remain unchanged.
Closes #263.
API Changes
No scientific-library API changes. Adds the read-only heart.checks.cloud_validation module and the release_evidence.rehearsal_repo configuration entry. No build, release or publication is dispatched by the collector.
Validation
- Full Heart suite: 1,139 passed in 55.38s; two additional edge cases added afterward, with all 40 focused collector/wiring tests passing.
- Tenant firewall and
git diff --checkpassed. - Real read-only artifact collection matched rehearsal 36895121274 with integration 36899858987 and smoke 36909756099 in a separate state directory. Canonical readiness computed GREEN/100 using those artifacts and current CI SHA observations, retaining the original 2026-10-01T16:51:35Z evidence timestamp.
- Regression coverage includes missing/mismatched/expired artifacts, producer failure/cancellation, pending runs, missing attempts, bounded search, chronology, repeated-ingest age, moved/missing library SHAs and non-release profile.
- Initial full-suite path test exposed missing Brain sibling setup in the isolated bundle; adding the standard sibling link made that unchanged test pass. No test was waived or weakened.
Limitations
Matching rehearsal artifacts must remain accessible within the last 20 main runs. Missing artifacts or cross-repo token access leave honest incomplete evidence; deployment verification remains a post-merge action.
Cloud board validation evidence
Merged #264 at 0bff26a on 2026-10-01. Closes #263.
The daily cloud board now reads smoke results and collects matching rehearsal/integration artifacts through the canonical validator. The collector preserves producer timestamps, run identity, attempt and SHA, adverse conclusions and incomplete evidence. No readiness thresholds, weights, skips or local tick behavior changed.
Validation: 1139 full-suite tests passed; 40 focused tests passed after the last two edge cases. Tenant firewall and whitespace checks passed. Real artifact collection in isolated state yielded GREEN/100 without changing live state. Every exact-head GitHub run was checked: Heart Tests 36917011559 succeeded on both Python 3.12 and 3.13. Human prm authorized merge and closeout.
Implementation is merged. Cloud-board deployment verification is a separate action, not claimed here. No package release dependency. Artifacts and logs remain in the session .heart-evidence directory outside the task bundle. The task bundle contains only clean tracked work plus reproducible pytest/Python caches, so normal cleanup is safe.
Overview
The cloud board omits current validation evidence and disagrees with authoritative local readiness.
Plan
Ingest authoritative validation evidence into the cloud Heart board
Type: bug
Difficulty: medium
Autonomy: human-required
Original request
This accepts the preceding next step: route the published-board evidence-propagation discrepancy through the bug workflow and plan artifact ingestion for the cloud board.
Evidence
@PyAutoHeart local readiness is GREEN/100 after rehearsal 36895121274 (2026.10.1.1.dev79601), integration 36899858987 (719 pass, 82 skip, zero failures/timeouts, install A-F pass), and smoke 36909756099 (1405 pass,122 skip). Published board.json remains STALE/65 at 2026-10-01T15:31:24Z with three evidence gaps.
The heart-health workflow runs CI/performance checks but neither test_run nor release_run. publish exports local sections, not authoritative release/install sidecars. release_run consumes integration-only evidence and correctly leaves validation incomplete without the rehearsal. validate currently dates an ingest at now; cloud repeated ingestion must not refresh evidence age.
Scope and proposed plan
Single owner: PyAutoHeart infrastructure. No thresholds, weights, skip policies or release gate changes. No source, publication or deployment before plan approval.
Branch survey
Canonical Heart: clean main; no active PyAutoHeart claim. Canonical Mind belongs to another session and is preserved. Planning ledger uses isolated codex/cloud-board-validation-evidence. Proposed source branch feature/cloud-board-validation-evidence from current origin/main.
Candidate files
.github/workflows/heart-health.yml; heart/checks/release_run.py (or a focused artifact-collection helper); heart/validate.py only if required for evidence timestamp preservation; relevant release-run, validator and workflow wiring tests; docs/internals.md for the evidence path.
Approved in chat: user said "continue" after review of this plan. Source branch feature/cloud-board-validation-evidence; canonical Heart main is clean and claim check passed.