Skip to content

ci: run five-minute Rust chaos checks on affected PRs - #4677

Open
neekolas wants to merge 1 commit into
codex/chaos-suite-checksfrom
codex/chaos-pr-ci
Open

neekolas wants to merge 1 commit into
codex/chaos-suite-checksfrom
codex/chaos-pr-ci

Conversation

@neekolas

@neekolas neekolas commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

PRs that touch crates/xmtp_mls/** or apps/chaos/** now select a blocking Rust chaos check on GitHub-hosted ubuntu-24.04. It builds the local backend from the tested code, runs the chaos unit tests and a 50-round baseline, then enables all fault types for a five-minute run. Faults are sampled, and the current round completes before the time limit is checked.

Violations, harness errors, and inconclusive results fail the check without retries. Only bounded reports and backend startup diagnostics are retained; raw chaos bundles contain private test keys and are never uploaded. The suite also runs on merges and through the existing CI dispatch.

Stacked on #4676.

Validation:

  • Hosted acceptance run: 84 unit tests, 50 baseline rounds, and 13 fault rounds passed. The fault phase scheduled 312 operations and 18 fault windows across 10 fault types, with no warnings, forks, bricks, or unresolved obligations.
  • Full PR CI: 39 checks passed, no failures.
  • Local five-minute run: 22 rounds passed; all dev tests and just lint-config passed.
  • CI generation/check, path-selection explanations, and a ten-commit replay passed. MLS/chaos changes select the suite; unrelated Rust and SDK paths do not.

Measured first hosted job: 44m26s overall, including 23m22s baseline and 5m04s fault phase. Setup and builds are additional to the five-minute fault budget.

Note

Add blocking five-minute Rust chaos CI suite for affected PRs

  • Adds a test_chaos suite that runs on PRs touching apps/chaos/** or crates/xmtp_mls/**, and on merges, via the new reusable workflow test-chaos.yml. It builds the chaos supervisor, starts the local backend and fault proxy, runs a 50-round baseline (seed 1338), then a timed all-fault run (seed 1340, ~5 minutes).
  • CI wires the suite into ci.yml behind change detection, and a downstream gating job now waits on test_chaos.
  • Failures and inconclusive results fail without retries; the current round finishes before the time limit is checked.
  • A bounded status report is uploaded with seven-day retention. Raw .chaos/ files, which contain private test keys, are never uploaded; backend startup diagnostics are uploaded on failure.
  • Documents the suite in CI.md and apps/chaos/README.md.

Macroscope summarized 119e629.

@neekolas
neekolas requested review from a team as code owners October 23, 2026 04:49
@neekolas
neekolas added this pull request to stack #4678 October 23, 2026 04:49
@codecov

codecov Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (codex/chaos-suite-checks@034b62e). Learn more about missing BASE report.

Additional details and impacted files
@@                     Coverage Diff                     @@
##             codex/chaos-suite-checks    #4677   +/-   ##
===========================================================
  Coverage                            ?   89.64%           
===========================================================
  Files                               ?      588           
  Lines                               ?   115848           
  Branches                            ?        0           
===========================================================
  Hits                                ?   103848           
  Misses                              ?    12000           
  Partials                            ?        0           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@macroscopeapp

macroscopeapp Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Skipped

Macroscope did not run approvability analysis for this PR. This PR modifies 1 file matched by one or more of your neverApprove patterns: .macroscope/**, **/AGENTS.md, **/REVIEW.md, docs/specs/**, .github/CODEOWNERS, apps/backend/migrations/**, crates/xmtp_db/migrations/**. Changes to these paths are never approved automatically.

You can add or adjust custom eligibility rules. Learn more.

Comment thread apps/chaos/README.md

## Pull request check

Changes to `crates/xmtp_mls/` or `apps/chaos/` select the blocking `Rust chaos`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The README's later statement under Results still says the suite is outside CI, contradicting this new section and potentially misleading contributors about the blocking check. Please remove “and CI” there.

Suggested fix:

- The suite is outside the workspace's default members and CI.
+ The suite is outside the workspace's default members.

Posted via Macroscope — Code Quality

This branch has not been deployed

No deployments
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