CI cargo clippy fails but it passes locally | Locally you did not pass -D warnings, so warnings were ignored; or not all targets/features were covered | Reproduce the gate locally: cargo clippy --all-targets --all-features -- -D warnings |
cargo fmt reformats a large block of unrelated lines | Your local rustfmt version differs from CI | Use the same toolchain as CI (the rustup default stable); the repository-root rustfmt.toml is the single source of formatting truth — do not override it in your editor |
error[E0277]: Rc<...> cannot be sent between threads safely | You used Rc/RefCell in a public type that must be Send + Sync | Switch to Arc; when interior mutability is needed, use Arc<Mutex<...>> or Arc<RwLock<...>> |
| Throughput collapses / tasks stall after calling a blocking API inside an async function | A blocking call such as std::fs / std::thread::sleep was used in an async context, occupying an executor thread | Switch to tokio::fs / tokio::time::sleep; for genuinely blocking computation use tokio::task::spawn_blocking |
cannot find type BoxliteError in this scope | The error type was not imported from the correct path | use boxlite_shared::{BoxliteError, BoxliteResult}; (defined in src/shared/src/errors.rs and re-exported at the top level of boxlite) |
Using BoxliteError::Run(...) fails to compile with “no variant named Run” | That variant does not exist | Use BoxliteError::Execution(...) for execution errors; pick an existing variant from src/shared/src/errors.rs by semantics |