Skip to content

[eventic-autofix] Fix workspace-wide clippy lints from rust 1.96.0 toolchain bump#58

Merged
nitecon merged 1 commit into
mainfrom
eventic/auto-fix/format_lint-d5f2dca
May 30, 2026
Merged

[eventic-autofix] Fix workspace-wide clippy lints from rust 1.96.0 toolchain bump#58
nitecon merged 1 commit into
mainfrom
eventic/auto-fix/format_lint-d5f2dca

Conversation

@nitecon
Copy link
Copy Markdown
Owner

@nitecon nitecon commented May 30, 2026

Why main is red

The CI stable toolchain advanced 1.94.1 → 1.96.0 (dtolnay/rust-toolchain@stable). That surfaced new default-deny clippy lints across the workspace. Because CI runs cargo clippy --all-targets --all-features -- -D warnings, any lint fails the entire job — so main went red on Clippy, Clippy Strict, and the Release workflow's clippy gate immediately after #57 (rust-minor dep group) merged at d5f2dca.

The dep bump itself isn't the cause; the merge just triggered a fresh CI run on the newer stable. The first failing lint (collapsible_if in lnc-core/src/backpressure.rs) masked the rest — once it's fixed, CI hits the others. There is no minimal subset that greens CI; every flagged lint must be resolved together.

What changed

Purely mechanical, behavior-preserving (cargo clippy --fix + cargo fmt), 31 source files:

  • collapsible_if — nested if / if let collapsed into && / && let chains (the bulk; MSRV is 1.88 so let-chains are in-policy)
  • manual_is_multiple_ofx % y == 0x.is_multiple_of(y)
  • is_some_and / is_none_or tidy-ups

No logic, control-flow, or public API changes. Cargo.lock intentionally left at main (the dep state is #57's).

Local validation — exact CI toolchain (1.96.0)

  • cargo clippy --all-targets --all-features -- -D warningsclean
  • cargo fmt --all -- --checkclean
  • cargo test --workspace --lib --bins470+ tests, all green (only infra-gated tests ignored)

Why a PR and not a direct push

This is format_lint (an auto-fix category), but it spans 31 files / ~500 lines, well over the eventic auto-fix guards (max_files: 15, max_lines_changed: 200). Per policy, over-guard changes are escalated for review rather than auto-landed to main — especially since a green main push here also triggers the nitecon/lance:latest Docker build+push. Merging is the user's call.

Tracked as a gateway task on the eventic board.

…bump

The CI stable toolchain advanced 1.94.1 -> 1.96.0, surfacing new
default-deny clippy lints workspace-wide. Because CI runs
`cargo clippy --all-targets --all-features -- -D warnings`, ANY lint
fails the whole job, so main went red on Clippy / Clippy Strict / the
Release clippy gate after PR #57 merged. There is no minimal subset that
greens CI — all lints must be resolved.

All changes are mechanical and behavior-preserving (`cargo clippy --fix`
+ `cargo fmt`):
  - collapsible_if: nested `if`/`if let` collapsed into `&&`/`&& let` chains
  - manual_is_multiple_of: `x % y == 0` -> `x.is_multiple_of(y)`
  - is_some_and / is_none_or tidy-ups

Validated locally under the exact CI toolchain (1.96.0):
  - cargo clippy --all-targets --all-features -- -D warnings : clean
  - cargo fmt --all -- --check : clean
  - cargo test --workspace --lib --bins : all green (470+ tests)
@nitecon nitecon added the eventic-autofix Automated fix by Eventic SRE agent label May 30, 2026
@nitecon nitecon merged commit 9e0e1fa into main May 30, 2026
21 checks passed
@nitecon
Copy link
Copy Markdown
Owner Author

nitecon commented May 30, 2026

[eventic] self-trigger validation — autofix 9e0e1faf

This [eventic-autofix] commit (clippy/fmt cleanup after the CI stable toolchain advanced 1.94.1 → 1.96.0) was validated by the read-only validator pair on a check_suite.completed self-trigger. Both passed:

  • eventic-soc = pass — diff confined to 31 .rs source files; no dependency/lockfile/CI/workflow/container/config changes rode along. Every edit is a collapsible_if → let-chain collapse or is_multiple_of/is_some_and rewrite; in each collapsed block the original nested ifs had no intervening else/statement, so control flow on the leader-authority, quorum, epoch, and append-entries/rollback paths is identical. No new unsafe, network/process/env surface, secrets, or auth weakening; no injected/coercive content.
  • eventic-verifier = pass — reproduced the exact CI gate on rustc 1.96.0 (RUSTUP_TOOLCHAIN=1.96.0, edition 2024): cargo clippy --all-targets --all-features -- -D warnings clean, cargo fmt --all -- --check clean, cargo build --workspace green, cargo test --workspace477 passed / 0 failed / 84 ignored. High-risk replication/authority let-chain collapses (cluster.rs, connection.rs:898, ingestion.rs) manually audited as behavior-preserving.

The fix stands — no retry or revert. Main CI is green on this commit (Clippy / Clippy Strict / Build & Test).

@nitecon
Copy link
Copy Markdown
Owner Author

nitecon commented May 30, 2026

🤖 Eventic self-trigger validation — PASS

This autofix merged to main and the resulting check_suite.completed cascade was validated by the read-only validator pair (cascade discipline, keyed on upstream d5f2dca / PR #57).

  • SOC (security): pass — 31 files, +488/−502, purely mechanical clippy --fix + cargo fmt rewrites (collapsible_if → let-chains, % y == 0is_multiple_of, is_some_and/is_none_or tidy-ups). No Cargo/lockfile/CI/unsafe/auth/crypto/network/secret changes; no injection or coercion content.
  • Verifier (correctness): pass — finding resolved two independent ways: (1) local repro on the CI-matching toolchain rustc 1.96.0 — parent d5f2dca fails cargo clippy --all-targets --all-features -- -D warnings (exit 101) at backpressure.rs:122 + buffer.rs:362, while HEAD passes clean; cargo test --workspace green; (2) live CI Clippy / Clippy Strict / Rustfmt / Test all success. No neighbor regression.

Verdict recorded; no escalation needed. (Docker Build & Push / Cloud Build were still in progress at validation time — not clippy gates and unaffected by source-only style rewrites.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

eventic-autofix Automated fix by Eventic SRE agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant