Skip to content

feat(validation): support bounded Rust Clippy lint lifecycle - #28

Draft
ITSGJY wants to merge 6 commits into
mainfrom
feat/962-rust-clippy-lint
Draft

ITSGJY wants to merge 6 commits into
mainfrom
feat/962-rust-clippy-lint

Conversation

@ITSGJY

@ITSGJY ITSGJY commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add the Rust Clippy adapter to the existing typed project_validate(action="lint") lifecycle under yyjeqhc#962, following the maintainer-approved correctness-only policy.

Contract

  • Runner-selected Rust recipes map action=lint to a fixed Cargo Clippy plan: cargo clippy --all-targets -- -D clippy::correctness, with canonical -p / --workspace selectors and optional independent --locked.
  • A successful run proves that no blocking correctness diagnostic failed. Other Clippy warnings can be returned without making the run fail; success is not presented as warning-free.
  • cargo_clippy has its own typed adapter, canonical command, validation target identity, and bounded diagnostic evidence. project_validate remains the model-facing gateway.
  • The additive project_validation_rust_clippy_v1 Runner capability gates planning and Job admission, including older Runners.
  • Runner-owned workspace/manifest/lock provenance, queue-time revalidation, durable same-Job continuation, and no-redispatch semantics are preserved.
  • Native cargo-clippy invocation bypasses Cargo's configurable subcommand aliases. Preflight and execution disable Rustup auto-installation within their child environments; missing Clippy/toolchains fail explicitly without a tool install.
  • Existing Rust check/test and Node lint semantics remain unchanged. Rust lint rejects dependency_resolution_policy: "offline" in this slice.

Validation and regressions

  • Full fork CI: 18/18 jobs passed on exact commit dcd46816223a5995540f9f3b4a86ee405c8c4f2a — GitHub Actions run 39534754974. Linux Server/Runner/workspace tests, real Clippy smoke, Windows/macOS suites, Docker, contracts, tooling, and MCP conformance passed.
  • The Linux Runner lane explicitly executes real Cargo Clippy on independent crates: non-blocking lint warnings succeed; correctness diagnostics fail.
  • Added deterministic tests for exact canonical argv and bounded scope, locked/unsupported policies, distinct target identities, old Runner admission, source drift after queueing, missing tools and auto-install suppression, cargo alias isolation, Job recovery, and rich/compact receipt projection.
  • Local final-state checks: cargo fmt --all -- --check, git diff --check, and bilingual Markdown link validation (1,128 local links, none missing).
  • Independent read-only review checked the complete flow and verified the final native Clippy/toolchain guard changes, with no outstanding P1/P2 findings.

This PR is intentionally limited to Rust lint lifecycle support and its required cross-layer contracts and regression coverage.

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