From 8016ebb1d1ce3db0059aeaa66a9410ded4c16a37 Mon Sep 17 00:00:00 2001 From: Metal Agent Date: Tue, 1 Sep 2026 13:16:51 -0700 Subject: [PATCH] Move to the toolchain the target GPUI revision requires Stage 2 of decision 0023, alone and on published gpui 0.2.2, so that a lint change and a framework API change cannot be mistaken for each other later. Zed's revision ce48461e pins Rust 1.97.1; staying on 1.94.1 would mean taking the compiler move and the dependency move in one unattributable step. The record warned that three minor versions of new pedantic lints would land as hard errors under -D warnings. They did not: the whole workspace produced one lint at four sites, all of them a Duration built from a smaller unit than it needed. Five minutes, not a day. Recorded because the estimate was wrong in the cheap direction and the next person planning this should know the shape of it. Published gpui 0.2.2 compiles unchanged on 1.97.1; the UI gate passes with 79 tests. That was the one thing this stage existed to find out. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01SPYebLiN2w4TqnHUYGdECq --- Cargo.toml | 2 +- crates/lumbridge-harness/src/claude/mod.rs | 2 +- crates/lumbridge-harness/src/claude/oauth.rs | 4 ++-- crates/lumbridge-harness/src/codex/mod.rs | 2 +- rust-toolchain.toml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f1c07e4..7aa3faa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ resolver = "2" [workspace.package] version = "0.0.1" edition = "2024" -rust-version = "1.94" +rust-version = "1.97" license = "Apache-2.0" repository = "https://git.karti.ai/lumbridge-public/lumbridge-code" diff --git a/crates/lumbridge-harness/src/claude/mod.rs b/crates/lumbridge-harness/src/claude/mod.rs index 5ee312b..86e311c 100644 --- a/crates/lumbridge-harness/src/claude/mod.rs +++ b/crates/lumbridge-harness/src/claude/mod.rs @@ -1017,7 +1017,7 @@ mod tests { projects_root: root.clone(), rate_limit_feed: root.join("feed.jsonl"), oauth: ClaudeOauthOptions::disabled(), - poll_interval: Duration::from_secs(60), + poll_interval: Duration::from_mins(1), }) .expect("starts"); let started = std::time::Instant::now(); diff --git a/crates/lumbridge-harness/src/claude/oauth.rs b/crates/lumbridge-harness/src/claude/oauth.rs index a28c196..fdc9941 100644 --- a/crates/lumbridge-harness/src/claude/oauth.rs +++ b/crates/lumbridge-harness/src/claude/oauth.rs @@ -44,9 +44,9 @@ const MAX_RESPONSE_BYTES: u64 = 256 * 1024; const REQUEST_TIMEOUT: Duration = Duration::from_secs(10); /// The endpoint rate-limits under polling, so this is deliberately slow. The /// status line covers the gap between refreshes for free. -pub const MIN_REFRESH_INTERVAL: Duration = Duration::from_secs(300); +pub const MIN_REFRESH_INTERVAL: Duration = Duration::from_mins(5); /// How long to stand down after the endpoint says we are asking too often. -pub const BACKOFF_AFTER_429: Duration = Duration::from_secs(1_800); +pub const BACKOFF_AFTER_429: Duration = Duration::from_mins(30); /// A bound on how many per-model limits will be tracked, so a response cannot /// grow the footer without limit. const MAX_SCOPED_WINDOWS: usize = 6; diff --git a/crates/lumbridge-harness/src/codex/mod.rs b/crates/lumbridge-harness/src/codex/mod.rs index 46f52ab..58f2ee3 100644 --- a/crates/lumbridge-harness/src/codex/mod.rs +++ b/crates/lumbridge-harness/src/codex/mod.rs @@ -65,7 +65,7 @@ impl Default for CodexProbeOptions { fn default() -> Self { Self { program: "codex".to_owned(), - poll_interval: Duration::from_secs(60), + poll_interval: Duration::from_mins(1), client_name: "lumbridge".to_owned(), client_version: env!("CARGO_PKG_VERSION").to_owned(), } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 4870126..9946197 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.94.1" +channel = "1.97.1" components = ["clippy", "rustfmt"] profile = "minimal"