ci: guard against new short hard timeouts
This adds a Linux guard for new hard timeout literals below 30 seconds in the app/daemon, acpmux, CLI, and agent-session paths. Existing debt is captured in tests/short-timeout-allowlist.json; counts only shrink. python3 scripts/ci/check_short_timeouts.py --update regenerates the snapshot after an intentional fix, preserving reasons, so the timeout-removal lanes can ratchet entries down after this merges.
Leo said: “shouldn't be this short. no reason for this. i imagine there's other nonsensical gates like this to remove in the broader app/acpmux”. The guard accepts an adjacent // timeout: <reason> or # timeout: <reason> only when a real hazard justifies a bound. It excludes Rust *_tests.rs and #[cfg(test)] modules.
Regression coverage: tests/test_short_timeout_guard.py proves a new 2-second deadline fails, the same line with // timeout: hung peer passes, wrapped Swift durations, millisecond units, uppercase TS timeout constants, the language patterns and Rust test-module exclusion, and ratchet growth/shrink behavior. On the current merged head 6bc4383a3015: python3 tests/test_short_timeout_guard.py passes 5 tests; python3 scripts/ci/check_short_timeouts.py reports 278 retained hits in 194 file:pattern entries. The branch merges the current feat-cmux-next tip to resolve the landing conflict.
The guard is registered in tests/test-execution.toml as linux-guard and runs in .github/workflows/ci-guards.yml.
Gates found at the merged base
Every row below is a pre-existing hard timeout retained in the shrink-only allowlist. The source column shows the old literal and what it guards; verdict is “retained debt; remove, replace with liveness, or lower the allowlist count.”
Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxChatProjects.swift:48—swift-duration—@concurrent public static func read(socketPath: String, deadline: Duration = .seconds(5)) async throws -> AcpmuxChatProjects {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxCheckedLine.swift:51—swift-socket-timeout—_ = setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeout, socklen_t(MemoryLayout<timeval>.size))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxComputerUse.swift:29—swift-duration—deadline: .seconds(5)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxDaemonLauncher.swift:88—swift-duration—@concurrent static func launch(_ environment: AcpmuxEnvironment, deadline: Duration = .seconds(20)) async throws -> AcpmuxWebEndpoint {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxDaemonLauncher.swift:101—swift-duration—@concurrent static func launchReporting(_ environment: AcpmuxEnvironment, deadline: Duration = .seconds(20)) async throws -> Launched {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxEnvironment+HostPressure.swift:15—swift-duration—public nonisolated func stopSession(id: String, deadline: Duration = .seconds(5)) async throws {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxEnvironment+Inventory.swift:17—swift-duration—params: ["view": "inventory"], deadline: .seconds(5),— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxEnvironment+WorkspacePurge.swift:8—swift-duration—public nonisolated func purgeWorkspace(key: String, deadline: Duration = .seconds(5)) async throws {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxHarnessList.swift:53—swift-duration—@concurrent static func harnesses(socketPath: String, deadline: Duration = .seconds(5)) async throws -> ResultBox {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxMachineConsent.swift:14—swift-duration—public static let deadline: Duration = .milliseconds(1200)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxPeerUpdateCommand.swift:27—swift-duration—var killGrace: Duration = .seconds(10)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxPeerUpdateTarget.swift:174—swift-duration—deadline: .seconds(5)) else { return nil }— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxPersonKey.swift:121—swift-duration—deadline: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxSessionCensus.swift:101—swift-duration—@concurrent public static func census(_ environment: AcpmuxEnvironment?, deadline: Duration = .seconds(1)) async -> AcpmuxSessionCensus? {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxSessionCensus.swift:161—swift-duration—status = try await AcpmuxStatusClient.status(socketPath: socket, deadline: .seconds(2))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxSessionCensus.swift:163—swift-duration—? keptSessions(result(try await activeSessions(socketPath: socket, deadline: .seconds(2))), keep: keep)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxStatusClient.swift:85—swift-duration—deadline: Duration = .seconds(2)) async throws {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxStatusClient.swift:224—swift-duration—deadline: Duration = .seconds(5)) async throws -> AgentPaneHarnessEnablePrompt {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AcpmuxStatusClient.swift:258—swift-duration—deadline: Duration = .seconds(5)) async throws -> AgentPaneSessionFolder? {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneAddAccount.swift:35—swift-duration—params: params, deadline: .seconds(20), detailed: true)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneChatsPage.swift:78—swift-duration—deadline: Duration = .seconds(3)) async throws -> AgentPaneChatsPage {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneGitDiscard.swift:52—swift-duration—static let timeout: Duration = .seconds(20)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneGitProcess.swift:24—swift-duration—let top = await output(["-C", folder, "rev-parse", "--show-toplevel"], timeout: .seconds(20))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneGitStage.swift:29—swift-duration—static let timeout: Duration = .seconds(20)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHibernationCapture.swift:20—swift-duration—let frame = try? await ControlDeadline.shared.run(method: "hibernation.agentSnapshot", deadline: .now + .seconds(2)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:297—swift-duration—deadline: .milliseconds(200)) else { return nil }— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:416—swift-duration—let deadline = ContinuousClock.now + .seconds(3)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:417—swift-duration—var delay: Duration = .milliseconds(100)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:429—swift-duration—delay = min(delay * 2, .milliseconds(500))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:501—swift-duration—let deadline = ContinuousClock.now + .seconds(3)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:502—swift-duration—var delay: Duration = .milliseconds(100)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneHost.swift:510—swift-duration—delay = min(delay * 2, .milliseconds(500))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPanePendingAsks.swift:63—swift-duration—deadline: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneSafeFetch.swift:21—swift-duration—static let timeout: Duration = .seconds(10)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneSessionCopySocket.swift:13—swift-duration—params: ["sessionId": sessionID], deadline: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneSessionCopySocket.swift:21—swift-duration—params: ["sessionId": sessionID], deadline: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneShellCompletion.swift:15—swift-duration—public static let deadline: Duration = .seconds(4)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneTransport+Check.swift:46—swift-duration—deadline: .seconds(2))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneView+MoveCover.swift:84—swift-duration—deadline.schedule(after: .seconds(3)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/Approvals/AcpmuxPersonLine.swift:29—swift-duration—public static func open(_ environment: AcpmuxEnvironment, deadline: Duration = .seconds(5)) async -> AcpmuxPersonLine? {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/LocalRouterClient.swift:64—swift-duration—@concurrent public func setUpstream(origin: String, bearer: String, expiresAt: UInt64, deadline: Duration = .seconds(3)) async throws -> Int? {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/LocalRouterClient.swift:108—swift-duration—@concurrent public func clearUpstream(deadline: Duration = .seconds(3)) async throws {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextAgentPane/ProcessLauncher.swift:19—swift-duration—public init(timeout: Duration = .seconds(10), clock: any Clock<Duration> = ContinuousClock()) {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/BrowserHost/AppBrowserHostTabs.swift:182—swift-duration—let appeared = try? await ControlDeadline.shared.run(method: "tabs.open", deadline: .now + .seconds(10)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/BrowserHost/AppBrowserHostTabs.swift:269—swift-duration—_ = try? await ControlDeadline.shared.run(method: "tabs.close", deadline: .now + .seconds(5)) { @MainActor [weak self] in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/BrowserProfiles/AgentBrowserProfile.swift:41—swift-duration—static func ensure(_ profiles: BrowserProfileService, deadline: Duration = .seconds(5)) async throws -> String {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Cloud/CloudService+AppServer.swift:156—swift-timeoutInterval—request.timeoutInterval = 15— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/ComputerUse/ComputerUseSetup.swift:251—swift-duration—deadline: .seconds(2))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/ComputerUse/ComputerUseSetup.swift:367—swift-duration—status = try await CuaSocketClient(configuration: configuration).send("permissions_status", deadline: .seconds(2))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/ComputerUse/CuaComputerUseSessions.swift:39—swift-duration—return try await CuaSocketClient(configuration: configuration).send(method, args, deadline: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Control/AppControl+Accounts.swift:17—swift-duration—let network: ControlMethod.Deadline = .fixed(.seconds(20))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Control/AppControl+Billing.swift:19—swift-duration—let network: ControlMethod.Deadline = .fixed(.seconds(22))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Control/AppControl+Updates.swift:37—swift-duration—let answerBy = call.deadline - .milliseconds(150)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Control/AppControl+VMAgentKey.swift:22—swift-timeoutInterval—request.timeoutInterval = 20— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Crash/AppRunMarker.swift:203—swift-duration—func flush(timeout: Duration = .seconds(5)) async -> Bool {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Feed/FeedInstallPrincipal.swift:53—swift-timeoutInterval—request.timeoutInterval = 15— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Feed/FeedService.swift:292—swift-timeoutInterval—request.timeoutInterval = 15— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/GlobalSearch/TerminalTextSearch.swift:18—swift-duration—static let timeout: Duration = .seconds(2)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Handlers/AgentHandlers+Pane.swift:34—swift-duration—deadline: .now + .seconds(10)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Handlers/ChiefInspectorHandlers.swift:254—swift-timeoutInterval—request.timeoutInterval = 5— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Handlers/ChiefInspectorHandlers.swift:184—swift-duration—let located = try? await ControlDeadline.shared.run(method: "chief-inspector.reveal", deadline: .now + .seconds(5)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Handlers/CloudHandlers+Network.swift:122—swift-duration—deadline: .seconds(10), label: "ssh -G")— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Hibernation/BrowserHibernation+Restore.swift:116—swift-duration—let ended = try? await ControlDeadline.shared.run(method: "hibernation.wake", deadline: .now + .seconds(15)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Hibernation/BrowserHibernation.swift:723—swift-duration—try? await ControlDeadline.shared.run(method: "hibernation.snapshot", deadline: .now + .seconds(2)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/History/HistoryControl.swift:103—swift-duration—_ = try? await ControlDeadline.shared.run(method: "debug.history_cookie_backups", deadline: .now + .seconds(5)) { @MainActor in— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Home/HomeLinkPreviewProvider.swift:92—swift-duration—let screen = try? await connection.request(ReadScreenRequest(surface: tab.surface), timeout: .seconds(2)) else { return out }— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Onboarding/ExternalOpenController.swift:29—swift-duration—let peers = try? await AcpmuxPeerList(socketPath: socket).peers(deadline: .seconds(1)) else { return saved }— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Pages/Files/MarkdownShare/MarkdownGitRunning.swift:19—swift-duration—var timeout: Duration = .seconds(5)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Pages/Files/RemoteImagePolicy.swift:12—swift-duration—static let timeout: Duration = .seconds(15)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Quit/QuitFactsReader.swift:11—swift-duration—nonisolated static let deadline: Duration = .seconds(1)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Remote/JoinConsent+App.swift:33—swift-duration—guard let data = await cli?.json(["acp", "host", "join", "--status", "--json"], deadline: .seconds(10), label: "join status")— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Server/LocalServerSource.swift:198—swift-duration—timeout: .seconds(15), clock: ContinuousClock())— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Server/ServerReachService.swift:335—swift-duration—timeout: .seconds(10), clock: ContinuousClock()),— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/ServerUpdates/ServerTailnetSource.swift:15—swift-duration—return ServerTailnetSource(hostStatus: { await cli?.json(["host", "status", "--json"], deadline: .seconds(10), label: "host status") })— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/SessionTransfer/SessionTransferService+Chats.swift:100—swift-duration—environment: variables, timeout: .seconds(10), clock: ContinuousClock()),— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/SessionTransfer/SessionTransferService.swift:92—swift-duration—let info = await connection.readProcessInfo(id, timeout: .milliseconds(500))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/SessionTransfer/SessionTransferService.swift:135—swift-duration—if let list = try? await ControlPeerClient.request(path: path, method: "session.transfer.list", timeout: .seconds(5)),— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/SessionTransfer/SessionTransferService.swift:164—swift-duration—let list = try? await ControlPeerClient.request(path: peer.path, method: "session.transfer.list", timeout: .seconds(5))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/TopPages/TopPages.swift:62—swift-duration—let listed = try await ProcessRunner.run(executable: cli, arguments: ["--json", "automation", "list"], environment: nil, timeout: .seconds(10), clock: ContinuousClock())— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Usage/AppResourceSource.swift:86—swift-duration—let response = try? await connection.request(request, timeout: .seconds(1)) else {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Usage/ResourceControl.swift:18—swift-duration—static let deadline: Duration = .seconds(5)— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApp/Windows/IncognitoChats.swift:29—swift-duration—try await acpmux.purgeWorkspace(key: key, deadline: .seconds(3))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApps/Operations/BundledAgentMemoryIndex.swift:23—swift-duration—public init(executable: URL, timeout: Duration = .seconds(25)) {— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApps/Operations/DaemonConnection+AgentInventoryReader.swift:9—swift-duration—try await request(MachineAgentInventoryRequest(expectedMachineID: machine), timeout: .seconds(15))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApps/Operations/DaemonConnection+AgentInventoryReader.swift:17—swift-duration—let receipt = try await request(MachineAgentInventoryRefreshRequest(expectedMachineID: machine), timeout: .seconds(28))— verdict: retained debt; shrink-only allowlistPackages/macOS/CmuxNext/Sources/CmuxNextApps/Operations/DaemonConnection+MachineCatalogWriter.swift:8—swift-duration—_ = try await self.request(request, timeout: .seconds(15))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/acpmux_mcp.rs:40—rust-duration—const STATUS_WAIT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/acpmux_mcp_send.rs:36—rust-duration—const RESOLVE_WAIT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:119—rust-duration—const EXIT_ACK_BUDGET: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:1169—rust-duration—let status = tokio::time::timeout(std::time::Duration::from_secs(5), child.wait())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:1305—rust-duration—tokio::time::timeout(grace + std::time::Duration::from_secs(1), exited).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2381—rust-duration—let result = tokio::time::timeout(std::time::Duration::from_secs(10), async {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2421—rust-duration—let messages = tokio::time::timeout(std::time::Duration::from_secs(10), async {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2497—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(10), arrived)— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2568—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(10), fence.settled()).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2606—rust-duration—let id = tokio::time::timeout(std::time::Duration::from_secs(10), async {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2623—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(10), arrived)— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2665—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(10), arrived)— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2673—rust-duration—let _ = tokio::time::timeout(std::time::Duration::from_secs(5), request).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent.rs:2703—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(10), agent.stdin_tx.closed())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent_host/host.rs:245—rust-duration—const DRAIN_BUDGET: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent_host/link.rs:416—rust-duration—pub const HELLO_BUDGET: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent_host/scope.rs:139—rust-duration—const PLACEMENT_WAIT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent_host/wait.rs:16—rust-duration—pub const QUERY_BUDGET: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/agent_tools/cua_helper.rs:110—rust-duration—match child.wait_timeout(Duration::from_secs(3)) {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/artifacts_sync.rs:28—rust-duration—const CONNECT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/cloud_join.rs:316—rust-duration—std::time::Duration::from_secs(2),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/cloud_join.rs:395—rust-duration—.timeout(std::time::Duration::from_secs(10))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/codex_auth_broker.rs:42—rust-duration—const DEADLINE: Duration = Duration::from_secs(8);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/daemon_service.rs:41—rust-duration—const CALL_WAIT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/gh_shim.rs:171—rust-duration—const GIT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/harness.rs:1076—rust-duration—let _ = tokio::time::timeout(Duration::from_secs(5), child.wait()).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/harness.rs:1077—rust-duration—if tokio::time::timeout(Duration::from_secs(2), &mut drain).await.is_err() {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/host_join_doctor.rs:33—rust-duration—const STATUS_TIMEOUT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/host_vault.rs:280—rust-duration—match child.wait_timeout(std::time::Duration::from_secs(5)) {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/output.rs:13—rust-duration—const UPDATE_RECONNECT_BUDGET: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/output.rs:812—rust-duration—let _ = tokio::time::timeout(std::time::Duration::from_millis(2500), turn).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/run/standard.rs:1255—rust-duration—const PRE_QUEUE_WAIT: std::time::Duration = std::time::Duration::from_millis(300);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/uniichat_agent.rs:553—rust-duration—match tokio::time::timeout(Duration::from_secs(20), tokio_tungstenite::connect_async(req)).await— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/uniichat_agent.rs:602—rust-duration—let deadline = tokio::time::Instant::now() + Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cli/uniichat_agent.rs:686—rust-duration—next = tokio::time::timeout(if cancelled { Duration::from_secs(5) } else { quiet }, ws.next()) => {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cloud_rewind.rs:91—rust-duration—.connect_timeout(Duration::from_secs(5))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/config/launchers.rs:132—rust-duration—match child.wait_timeout(std::time::Duration::from_secs(20)) {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cua_v2.rs:208—rust-duration—std::time::Duration::from_secs(2),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/cua_v2.rs:223—rust-duration—std::time::Duration::from_secs(2),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:139—rust-duration—pub const SHUTDOWN_BUDGET: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:829—rust-duration—let _ = tokio::time::timeout(std::time::Duration::from_secs(6), relay.stop()).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1285—rust-duration—tokio::time::timeout(Duration::from_secs(5), crate::client::Client::connect(socket)).await— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1290—rust-duration—Duration::from_secs(5),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1309—rust-duration—Duration::from_secs(10),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1347—rust-duration—const START_BUDGET: Duration = Duration::from_secs(8);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1351—rust-duration—pub const EXIT_BUDGET: Duration = SHUTDOWN_BUDGET.saturating_add(Duration::from_secs(8));— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1420—rust-duration—pub const HANDOVER_BUDGET: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1427—rust-duration—const HANDOVER_RETRY: Duration = Duration::from_millis(250);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon.rs:1447—rust-duration—const PROBE_BUDGET: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/cloud_activity.rs:71—rust-duration—pub(super) const RENEW: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/cloud_activity.rs:73—rust-duration—const SEND_TIMEOUT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/cloud_handoff.rs:80—rust-duration—const NOTIFY_TIMEOUT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/login_session.rs:42—rust-duration—const LAUNCHCTL_BUDGET: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/router_owner/fifo.rs:41—rust-duration—const ROUTER_STOP_BUDGET: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/daemon/snapshot_clear.rs:13—rust-duration—tokio::time::timeout(Duration::from_secs(2), Client::connect_without_caller(socket)).await— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/deps/remote.rs:147—rust-duration—.connect_timeout(Duration::from_secs(10))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/github_app_token.rs:26—rust-duration—const MINT_TIMEOUT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/github_app_token.rs:28—rust-duration—const KEYRING_TIMEOUT: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/github_status.rs:51—rust-duration—const CLOUD_WAIT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/github_status.rs:52—rust-duration—const PLATFORM_WAIT: Duration = Duration::from_secs(8);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/github_status.rs:53—rust-duration—const GH_WAIT: Duration = Duration::from_secs(8);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hand/exec.rs:17—rust-duration—const DRAIN_GRACE: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hand/link.rs:199—rust-duration—match tokio::time::timeout(Duration::from_secs(20), tokio_tungstenite::connect_async(req))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/harness_health/latest.rs:62—rust-duration—.timeout(std::time::Duration::from_secs(15))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/harness_health/probe.rs:12—rust-duration—const TIMEOUT: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/host_load.rs:22—rust-duration—const CPU_WINDOW: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/host_load.rs:24—rust-duration—const DAEMON_WAIT: Duration = Duration::from_millis(1500);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/bg_tasks.rs:37—rust-duration—const START_WAIT: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/bg_tasks.rs:476—rust-duration—const STOP_LOOK: std::time::Duration = std::time::Duration::from_millis(50);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/carried_turn.rs:86—rust-duration—const CARRIED_WAIT: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/forum.rs:48—rust-duration—const PUSH_WAIT: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/full_access_bound.rs:1018—rust-duration—let _ = tokio::time::timeout(std::time::Duration::from_secs(10), begun).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/idle_census.rs:72—rust-duration—const CENSUS_BUDGET: std::time::Duration = std::time::Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/mcp_probe.rs:20—rust-duration—const TIMEOUT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/processes.rs:30—rust-duration—pub(super) const STOP_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/queue_edit.rs:17—rust-duration—const STEP_NOW_WAIT: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/remote_sandbox.rs:309—rust-duration—let Ok(Ok(out)) = tokio::time::timeout(std::time::Duration::from_secs(5), read).await else {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/remote_sandbox.rs:1146—rust-duration—let run = tokio::time::timeout(std::time::Duration::from_secs(20), cmd.output()).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/shell_readonly.rs:98—rust-duration—pub(crate) const PROBE_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/shutdown.rs:318—rust-duration—const RETRY_STOP_BUDGET: std::time::Duration = std::time::Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/shutdown.rs:321—rust-duration—pub const SHUTDOWN_GRACE: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/titles.rs:37—rust-duration—const TIMEOUT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/turns.rs:1769—rust-duration—std::time::Duration::from_secs(5),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/turns.rs:1774—rust-duration—let _ = tokio::time::timeout(std::time::Duration::from_secs(5), handled).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/turns.rs:2202—rust-duration—std::time::Duration::from_millis(500),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/usage_view.rs:32—rust-duration—pub(crate) const READ_WAIT: Duration = Duration::from_millis(750);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/watch_events.rs:74—rust-duration—std::time::Duration::from_millis(250),— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/withdraw.rs:40—rust-duration—const NOTICE_WAIT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/withdraw.rs:42—rust-duration—const INBOX_SETTLE: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/hub/worktree_care/revive.rs:56—rust-duration—if let Ok(Ok(Some(found))) = tokio::time::timeout(Duration::from_secs(2), read).await {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/launch_credential.rs:22—rust-duration—const MINT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/linux_sandbox/bwrap.rs:383—rust-duration—let status = match child.wait_timeout(Duration::from_secs(10)) {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/linux_sandbox/keeper.rs:560—rust-duration—result = tokio::time::timeout(Duration::from_secs(20), handoff(&socket)) => result.map_err(|_| "handoff timed out after 20 s")??,— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/linux_sandbox/keeper.rs:792—rust-duration—let _ = tokio::time::timeout(Duration::from_secs(5), child.kill()).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/linux_sandbox/proxy.rs:26—rust-duration—const CONNECT_TIMEOUT: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/live_models/mod.rs:39—rust-duration—pub const PROBE_TIMEOUT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/login_env.rs:45—rust-duration—pub const TIMEOUT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/login_env.rs:47—rust-duration—const RECHECK: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/pairing/tests.rs:272—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(5), ended).await.unwrap().unwrap();— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/pairing/tests.rs:274—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(5), p.revoked(&device.id)).await.unwrap();— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/peer_health.rs:20—rust-duration—const HEALTH_BUDGET: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/peer_ssh.rs:61—rust-duration—tokio::time::timeout(Duration::from_millis(250), &mut self.0)— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/route_probe.rs:180—rust-duration—let client = match reqwest::Client::builder().timeout(Duration::from_secs(8)).build() {— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/mesh_relay.rs:286—rust-duration—let budget = wait.min(Duration::from_secs(5));— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/mesh_relay.rs:297—rust-duration—let _ = tokio::time::timeout(Duration::from_secs(5), client.heartbeat(&last)).await;— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/mod.rs:255—rust-duration—const WORK_BACKPRESSURE_WAIT: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/mod.rs:1046—rust-duration—const WS_HANDSHAKE_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/mod.rs:1465—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(2), read).await.ok().flatten()— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/models_fanout.rs:27—rust-duration—const PEERS_BUDGET: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/pairing.rs:113—rust-duration—const REDEEM_WAIT: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/peer_status.rs:20—rust-duration—const PEER_BUDGET: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/requests.rs:953—rust-duration—tokio::time::timeout(std::time::Duration::from_secs(5), peer.request(m, json!({})))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/requests/briefs.rs:110—rust-duration—const PEERS_BUDGET: std::time::Duration = std::time::Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/stream.rs:28—rust-duration—const LAST_LINE_WAIT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/trigger_chat.rs:211—rust-duration—.timeout(std::time::Duration::from_millis(4500))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/trigger_chat.rs:388—rust-duration—let _accepted = tokio::time::timeout(std::time::Duration::from_secs(4), accepted_rx).await.ok();— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown.rs:10—rust-duration—pub(crate) const DRAIN_BUDGET: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown.rs:11—rust-duration—const CLOSE_BUDGET: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:48—rust-duration—let reply = tokio::time::timeout(Duration::from_secs(5), ws.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:78—rust-duration—let frame = tokio::time::timeout(Duration::from_secs(5), ws.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:92—rust-duration—tokio::time::timeout(Duration::from_secs(5), serving).await.unwrap().unwrap().unwrap();— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:130—rust-duration—let frame = tokio::time::timeout(Duration::from_secs(5), client.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:155—rust-duration—let frame = tokio::time::timeout(Duration::from_secs(5), client.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:176—rust-duration—assert!(tokio::time::timeout(Duration::from_millis(10), shared.drained()).await.is_err());— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:207—rust-duration—let frame = tokio::time::timeout(Duration::from_secs(5), client.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/server/ws_shutdown/tests.rs:238—rust-duration—let frame = tokio::time::timeout(Duration::from_secs(5), client.next())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/session_scope.rs:573—rust-duration—const PROBE_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/tui/mod.rs:823—rust-duration—let request = tokio::time::timeout(std::time::Duration::from_secs(5), requests.recv())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/tui/mod.rs:947—rust-duration—let msg = tokio::time::timeout(std::time::Duration::from_secs(5), requests.recv())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/tui/mod.rs:978—rust-duration—let msg = tokio::time::timeout(std::time::Duration::from_secs(5), requests.recv())— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/vault.rs:125—rust-duration—pub const LOAD_BUDGET: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/vault.rs:381—rust-duration—pub const INITIAL_WAIT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/acpmux/src/vault/store.rs:29—rust-duration—const TIMEOUT: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/agent_input_hint.rs:29—rust-duration—const LOOKUP_TIMEOUT: Duration = Duration::from_millis(500);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/agent_message.rs:30—rust-duration—const PUMP_WAIT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/agent_message.rs:31—rust-duration—const PUMP_POLL: Duration = Duration::from_millis(50);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/agents/wait.rs:27—rust-duration—const RECHECK: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/agents_doctor.rs:453—rust-duration—const VERSION_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app.rs:78—rust-duration—pub(super) const READ_TIMEOUT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app.rs:81—rust-duration—const ERRORS_TIMEOUT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/page.rs:20—rust-duration—pub(super) const WAIT_MARGIN: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/renderers.rs:20—rust-duration—const TIMEOUT: Duration = Duration::from_secs(6);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/right.rs:22—rust-duration—const RIGHT_TIMEOUT: Duration = Duration::from_secs(25);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/run.rs:47—rust-duration—const MAX_RETRY_WAIT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/skew.rs:109—rust-duration—const IDENTIFY_TIMEOUT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/version.rs:25—rust-duration—const READ_TIMEOUT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/wait.rs:22—rust-duration—const FIRST_NOTE_AFTER: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/app/wait.rs:23—rust-duration—const NOTE_EVERY: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/apps_run.rs:36—rust-duration—pub(super) const CANCEL_WAIT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/apps_run/tests.rs:62—rust-duration—const TEST_WAIT: Duration = Duration::from_millis(200);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/billing.rs:22—rust-duration—const BILLING_TIMEOUT: Duration = Duration::from_secs(25);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/chief/link.rs:21—rust-duration—const REQUEST_TIMEOUT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/cloud_client_session.rs:501—rust-duration—.timeout(Duration::from_millis(timeout_ms).saturating_add(Duration::from_secs(15)))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/cloud_machine_io/direct.rs:252—rust-duration—.timeout(Duration::from_millis(timeout_ms).saturating_add(Duration::from_secs(15)))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/cloud_machine_io/proxy.rs:52—rust-duration—.timeout(Duration::from_millis(timeout) + Duration::from_secs(5))— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/cloud_machines.rs:30—rust-duration—const CLOUD_READ_TIMEOUT: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/cloud_start_chat.rs:42—rust-duration—const NOT_STARTED_PAUSE: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/coderouter.rs:33—rust-duration—const CODEROUTER_TIMEOUT: Duration = Duration::from_secs(25);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/codex_app_server.rs:22—rust-duration—const DEADLINE: Duration = Duration::from_secs(8);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/lifecycle.rs:526—rust-duration—const STOP_WAIT_SLICE: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/machine_join.rs:53—rust-duration—const REQUEST_TIMEOUT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/machine_join.rs:55—rust-duration—pub(super) const LIST_TIMEOUT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/machine_join.rs:57—rust-duration—const WAIT_EVERY: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/mcp.rs:1616—rust-duration—const CLOUD_MACHINES_TIMEOUT: Duration = Duration::from_secs(1);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/mcp/computer_use_gate.rs:42—rust-duration—const STATUS_TIMEOUT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/mcp/computer_use_gate.rs:46—rust-duration—const REQUEST_SLACK: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/mcp/upstream.rs:31—rust-duration—const START_TIMEOUT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/resolve.rs:296—rust-duration—const CALLER_TERMINAL_WAIT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/resolve.rs:530—rust-duration—const APP_IDENTIFY_WAIT: Duration = Duration::from_secs(5);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/sandbox_run.rs:31—rust-duration—const WAIT_TRANSIT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/script.rs:35—rust-duration—pub(super) const CANCEL_WAIT: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/setup/browser_import.rs:61—rust-duration—const LOAD_WAIT: std::time::Duration = std::time::Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/setup/browser_import.rs:62—rust-duration—const LOAD_PAUSE: std::time::Duration = std::time::Duration::from_millis(100);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/setup/harness.rs:39—rust-duration—const ASK_TIMEOUT: Duration = Duration::from_secs(20);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/skew.rs:48—rust-duration—const IDENTIFY_TIMEOUT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/status/terminal_wait.rs:35—rust-duration—pub(super) const ANSWER_TIMEOUT: Duration = Duration::from_secs(10);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/status/terminal_wait.rs:37—rust-duration—const DEADLINE_SLACK: Duration = Duration::from_millis(50);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/terminal_talk/send.rs:36—rust-duration—pub(in crate::cli) const DEFAULT_SETTLE: Duration = Duration::from_secs(3);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/terminal_talk/send.rs:37—rust-duration—const DEFAULT_ENTER_DELAY: Duration = Duration::from_millis(300);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/terminal_talk/send.rs:38—rust-duration—const DEFAULT_POLL: Duration = Duration::from_millis(250);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/vm.rs:43—rust-duration—const MINT_TIMEOUT: Duration = Duration::from_secs(25);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/vnc.rs:26—rust-duration—const CONNECT_TIMEOUT: Duration = Duration::from_secs(15);— verdict: retained debt; shrink-only allowlistcmux-tui/crates/cmux-tui/src/cli/wire.rs:19—rust-duration—pub(super) const SERVER_PREFLIGHT_TIMEOUT: Duration = Duration::from_secs(2);— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/autoResumeStatus.test.ts:26—ts-hard-timeout—const deadline = performance.now() + 2_000;— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/composer/imagePool.ts:14—ts-hard-timeout—export const imageJobDeadline = { ms: 20_000 };— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/composerDraft.ts:139—ts-hard-timeout—export const draftWriteLimits = { timeoutMs: 5_000, lateHoldMs: 30_000 };— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/folderTrust.ts:74—ts-hard-timeout—export const TRUST_READ_TIMEOUT_MS = 1500;— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/inlinePrompt.test.ts:18—ts-hard-timeout—const deadline = performance.now() + 2_000;— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/loadDebug.ts:61—ts-hard-timeout—const deadline = performance.now() + 25_000;— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/perf.ts:308—ts-hard-timeout—nextCommit(timeoutMs = 10_000): Promise<number | undefined> {— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/promptDelivery.test.ts:37—ts-hard-timeout—const deadline = performance.now() + 2_000;— verdict: retained debt; shrink-only allowlistwebviews/src/agent-session/acpmux/reconnectPrompt.test.ts:23—ts-hard-timeout—const deadline = performance.now() + 2_000;— verdict: retained debt; shrink-only allowlist
🤖 Generated with Codex
Agent session: agent session