Problem
The Dylint workflow has failed on every push to main for at least the last 5 runs (e.g. run 28569368924 on chore(release): … bump 2.3.23 -> 2.3.24). The failure is infrastructure, not a lint finding:
Stack backtrace:
0: anyhow::error::<impl anyhow::Error>::msg
1: dylint::library_packages::build_library
...
5: dylint::run_with_name_toolchain_map
6: dylint::run
followed by the workflow's @<toolchain> alias-creation retry loop exhausting its attempts:
::error::cargo dylint did not succeed after ${max_attempts} attempts
Consequence — this is not cosmetic
A red gate is zero enforcement. Concrete escape: #935 merged crates/fbuild-deploy/src/probe_rs.rs with two raw std::process::Command::output() calls — exactly the pattern ban_raw_subprocess (#264) exists to block, in a file that is not in its allowlist. The result on Windows was a visible console window flashing on the user's screen during every LPC845 SWD deploy (daemon is windowless → raw console-subsystem child allocates a fresh console), plus no timeout on a probe family famous for wedging. Fixed after the fact in #938.
Every merge while this gate is red can add more of these silently.
Ask
- Fix the driver build (
dylint::library_packages::build_library — likely the pinned nightly-2026-03-26 toolchain / component set vs cargo-dylint 5.0.0 interaction, or the alias workaround no longer matching what dylint expects).
- Once green, run the full suite over the workspace and burn down any violations that accumulated while the gate was red.
- Consider making the Dylint workflow a required status check so a red run blocks merges instead of scrolling past.
Refs
Problem
The
Dylintworkflow has failed on every push to main for at least the last 5 runs (e.g. run 28569368924 onchore(release): … bump 2.3.23 -> 2.3.24). The failure is infrastructure, not a lint finding:followed by the workflow's
@<toolchain>alias-creation retry loop exhausting its attempts:Consequence — this is not cosmetic
A red gate is zero enforcement. Concrete escape: #935 merged
crates/fbuild-deploy/src/probe_rs.rswith two rawstd::process::Command::output()calls — exactly the patternban_raw_subprocess(#264) exists to block, in a file that is not in its allowlist. The result on Windows was a visible console window flashing on the user's screen during every LPC845 SWD deploy (daemon is windowless → raw console-subsystem child allocates a fresh console), plus no timeout on a probe family famous for wedging. Fixed after the fact in #938.Every merge while this gate is red can add more of these silently.
Ask
dylint::library_packages::build_library— likely the pinnednightly-2026-03-26toolchain / component set vscargo-dylint 5.0.0interaction, or the alias workaround no longer matching what dylint expects).Refs