Skip to content

A CI that says when it hangs, and tests the Pythons it claims to - #85

Merged
vxnsin merged 2 commits into
mainfrom
a-ci-that-says-when-it-hangs
Oct 5, 2026
Merged

vxnsin merged 2 commits into
mainfrom
a-ci-that-says-when-it-hangs

Conversation

@vxnsin

@vxnsin vxnsin commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

What was wrong

  • The matrix tested 3.12 nine times. .python-version says 3.12, and uv run obeys it over the environment uv sync --python 3.13 had just built - the log of the 3.13 cell says "Removed virtual environment". UV_PYTHON outranks the file.
  • Two six-hour hangs on Windows (2026-09-07, 2026-09-08), every test before them green. Both were a wizard test of the same shape: a refused save that focuses a field in another tab, then ctrl+q. Textual's key press waits for every animation with no timeout, and the tab switch starts one twenty milliseconds late. Suspected, not proven - it would not reproduce locally in 6×93 and 40×3 runs.

What changes

  • timeout-minutes on every job, faulthandler_timeout = 300 in pytest: a hang dies in minutes and prints every thread's stack first.
  • TEXTUAL_ANIMATIONS=none for the suite. Nothing in it tests motion.
  • UV_PYTHON: ${{ matrix.python }} in both workflows.
  • Actions off Node 20: checkout v7, setup-uv v10, upload-artifact v7, download-artifact v8.0.1 pinned by SHA.
  • assets/supports-warden.svg, a badge for projects that carry a warden.project.toml, with the snippet in the README.

Full suite green locally: 1087 passed in 4:33.

Summary by CodeRabbit

  • Documentation

    • Updated the README with instructions for displaying and linking a project badge.
  • Chores

    • Improved automated checks to use the selected Python version consistently and to stop stalled jobs after a set time.
    • Updated the tools used in automated checks and releases.

Twice a Windows run sat at one wizard test for the six hours GitHub
allows, every test before it green, and said nothing but the name of
the test. Jobs now have a timeout, and pytest prints every thread's
stack after five minutes, so the next one tells us where.

Both hangs followed the same shape: a save refused, a field in another
tab focused, then ctrl+q. Textual waits for every animation to finish
when a key is pressed, with no timeout, and a tab switch starts one
twenty milliseconds late. Animations are off for the suite; nothing in
it tests motion.

The matrix tested Python 3.12 nine times: `.python-version` says 3.12,
and `uv run` obeys it over whatever `uv sync --python` built. UV_PYTHON
outranks the file, for sync and run alike.

Actions move off Node 20. And a project that carries a
warden.project.toml can now say so in its README: assets/supports-warden.svg.
@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Security Evidence

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 6 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Risk Taxonomy

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

PR taxonomy review recommended (neutral)

Detected 2 PR taxonomy bucket(s): Security Evidence, CI/CD Recommendation.

Scanned 6 changed file(s).

Roadmap taxonomy buckets:

Security Evidence

Security-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence.

Signals:

  • 2 security-sensitive path(s) changed

Paths:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • CI workflow changes may ship without failure-mode evidence
  • Dependency or CI drift could surface after merge
  • 2 CI or workflow path(s) changed

Paths:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • pyproject.toml
  • tests/conftest.py

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Reference Set Readiness

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 6 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Hosted Promotion Readiness

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 6 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Config Audit

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

No changed-config issues detected (success)

Scanned 2 config file(s) present at this commit across 2 changed config path(s) and found no issues in the supported security rules.

Changed config files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Harness Audit

Commit: 7d65dd48ec901862c80152e010365d92443c9b56

No harness issues detected (success)

Scanned 2 changed config file(s) and found no harness issues.

Changed config files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@coderabbitai

coderabbitai Bot commented Oct 5, 2026

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 12f93e11-3a5a-4c28-8442-f3cde6e45b6b
📥 Commits

Reviewing files that changed from the base of the PR and between 015e600 and 7d65dd4.

⛔ Files ignored due to path filters (1)
  • assets/supports-warden.svg is excluded by !**/*.svg
📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • README.md
  • pyproject.toml
  • tests/conftest.py
 _________________________________________________________
< Fun fact: 'idempotent' doesn't mean 'it usually works'. >
 ---------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Security Evidence

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

Security evidence gate passed (success)

No security-sensitive scanner-evidence gap detected.

Mode: enforce

Scanned 6 changed file(s). No missing scanner-evidence signal was detected.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Risk Taxonomy

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

PR taxonomy review recommended (neutral)

Detected 2 PR taxonomy bucket(s): Security Evidence, CI/CD Recommendation.

Scanned 6 changed file(s).

Roadmap taxonomy buckets:

Security Evidence

Security-sensitive changes should carry explicit scanner, code-scanning, or focused regression evidence.

Signals:

  • 2 security-sensitive path(s) changed

Paths:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

CI/CD Recommendation

CI, dependency, coverage, and contract signals should be routed into follow-up checks or verification work.

Signals:

  • CI workflow changes may ship without failure-mode evidence
  • Dependency or CI drift could surface after merge
  • 2 CI or workflow path(s) changed

Paths:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • pyproject.toml
  • tests/conftest.py

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Reference Set Readiness

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

Reference set readiness gaps detected (neutral)

Reference evidence present for 0/7 areas (0%) across 6 changed file(s).

This check is based on files changed in this PR. Repository-level readiness is still reported by /ecc-tools analyze comments and generated manifests.

Area Status Evidence / Next Step
Deep analyzer corpus Missing Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions.
RAG/evaluator comparison Missing Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior.
PR salvage/review corpus Missing Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation.
Discussion triage corpus Missing Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications.
Harness compatibility Missing Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces.
Security evidence Missing Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs.
CI failure-mode evidence Missing Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / Hosted Promotion Readiness

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

Hosted promotion readiness passed (success)

No hosted promotion evidence gaps detected across 6 changed file(s); 0 corpus scenarios had matching evidence.

This check compares PR file changes against the evaluator/RAG promotion corpus in src/analyzers/fixtures/evaluator-rag-corpus.ts.
Hosted output scoring inspected 0 completed cached hosted job results.

No evaluator corpus scenarios matched this PR.

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Config Audit

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

No changed-config issues detected (success)

Scanned 2 config file(s) present at this commit across 2 changed config path(s) and found no issues in the supported security rules.

Changed config files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@ecc-tools

ecc-tools Bot commented Oct 5, 2026

Copy link
Copy Markdown

ECC Tools / PR Harness Audit

Commit: d4fe1cbe59fe40199855d06baa37589fd2ebaf01

No harness issues detected (success)

Scanned 2 changed config file(s) and found no harness issues.

Changed config files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml

Check publication was denied or unavailable. An app owner must enable Checks: read and write, and the installation owner must approve the updated permission.

@vxnsin
vxnsin merged commit 9ad9c5a into main Oct 5, 2026
11 checks passed
@vxnsin
vxnsin deleted the a-ci-that-says-when-it-hangs branch October 5, 2026 11:01
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.

1 participant