// src tui app async_tasks background_services
/// Number of parallel crates.io fetch workers. Each worker runs its share
/// of the plan sequentially, so peak request concurrency against crates.io
/// is capped at this count while the fetch wall-clock drops to roughly
/// 1/N of the serial chain. A tripped limiter surfaces as a 429 →
/// `ServiceSignal::RateLimited` and the recovery path refetches the
/// misses.
pub const CRATES_IO_FETCH_WORKERS: usize = 10;
// src tui app async_tasks poll
pub const MAX_MSGS_PER_FRAME: usize = 50;
/// Refresh the project volume's free capacity even when a non-project process
/// changes disk space.
pub const PROJECT_STORAGE_REFRESH_SECS: u64 = 2;
// src tui app async_tasks repo_handlers
pub const PR_CHECK_POLL_SECS: u64 = 10;