Skip to content

ci(hrv): scheduled non-blocking real-data integration lane#170

Open
neuron7x wants to merge 1 commit intoneuron7xLab:mainfrom
neuron7x:ci/hrv-real-data-scheduled
Open

ci(hrv): scheduled non-blocking real-data integration lane#170
neuron7x wants to merge 1 commit intoneuron7xLab:mainfrom
neuron7x:ci/hrv-real-data-scheduled

Conversation

@neuron7x
Copy link
Copy Markdown
Contributor

@neuron7x neuron7x commented May 1, 2026

Summary

Companion to #169. The test split moves PhysioNet/wfdb off the PR-blocking matrix via the opt-in NEOSYNAPTEX_RUN_NETWORK_TESTS=1 gate. That removed flake from PR throughput but also weakened daily contact with reality. This workflow restores it without re-introducing the flake.

Mechanism

Property Value
Triggers schedule: 13 3 * * * (daily 03:13 UTC) + workflow_dispatch
Triggers it does NOT have pull_request, push — by construction cannot block PRs
Test under gate tests/test_integrity_v2.py::TestHRV::test_real_data_gamma_in_range
On failure upload junit + pytest log artifact (30-day retention) AND surface a single rolling issue under label hrv-integration-failure (comment if open, create otherwise)
Permissions contents: read, issues: write

Why a rolling issue, not one issue per failure

PhysioNet flake is correlated — once they have a bad day, multiple consecutive runs fail. Per-failure issues = noise. A single rolling issue with append-on-failure = signal.

Why daily, not weekly

Marginal CI cost is trivial. Faster drift detection (PhysioNet API change, NSR2DB record removal, adapter regression) at the cost of slightly more issue-comment volume on outages. Weekly was the alternative; daily wins on rigor.

Failure body design

Triage hint ranked by descending probability:

  1. transient PhysioNet/wfdb outage → re-run before investigating
  2. NSR2DB record list / annotation drift
  3. HRVPhysioNetAdapter regression

Cheapest hypothesis first.

Scope contract

This PR adds only the scheduled workflow. It does not touch tests, branch protection, or existing CI. It is independent of #169 and will function correctly whether merged before or after, since the env-var gate is no-op pre-#169 and effective post-#169.

Test plan

  • YAML parses (python -c "import yaml; yaml.safe_load(open(...))").
  • Heredoc indentation correct: YAML | strips 10 leading spaces, MARKDOWN terminator lands at bash column 0.
  • No pull_request or push triggers — workflow cannot become a required check unless a maintainer explicitly adds it to branch protection (which would defeat the purpose).
  • CI: actionlint workflow on this PR will validate the action.
  • First scheduled run will exercise the path end-to-end. `workflow_dispatch` is available for on-demand validation.

Claim status

claim_status: derived

No measurement claim. Pure CI infrastructure: restores integration coverage on a non-blocking lane.

🤖 Generated with Claude Code

Companion to neuron7xLab#169 (test split). The opt-in
NEOSYNAPTEX_RUN_NETWORK_TESTS=1 gate moves PhysioNet/wfdb out of the
PR-blocking matrix. This workflow restores daily contact with reality
without re-introducing the flake on PRs:

  • triggers: schedule (daily 03:13 UTC) + workflow_dispatch only —
    no pull_request, no push, so it cannot become a merge gate.
  • runs the single real-data test under the env-var gate.
  • on failure: uploads pytest log + junit (30-day retention) and
    surfaces a single rolling issue under the
    "hrv-integration-failure" label (comment if open, create otherwise).

Reasoning is in the workflow header. Fail-mode body lists likely
causes ranked by descending probability (network → API drift →
adapter regression) so triage starts at the cheapest hypothesis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 63397c29c1

ℹ️ 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".

Comment thread .github/workflows/hrv_real_data_integration.yml
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.

2 participants