[Desktop] Browser/preview pane is torn down after 30 min hidden (WarmLifecycle:preview, idleTimeoutMs=18e5) and never restored on refocus — please make it configurable or restore on warm-up

Status Open
Reported on v2.1.260
Maintainer reply None cached
Activity 2 comments · opened Sep 7, 2026

Environment: Claude Desktop 1.46388.4 (macOS 26.6.2, Apple Silicon), Code tab; embedded Claude Code 2.1.260. main.log shows [WarmLifecycle:preview] Idle timeout reached 12× today.

What happens: every session's Browser pane has a WarmLifecycle:preview timer hard-coded to idleTimeoutMs: () => 18e5 with timeoutOnHidden: true. When the session tab is hidden for 30 minutes (user is on another session), teardownSessionPreview removes the pane. On refocus, onWarmUp is async () => void 0, so the pane never comes back; only the session itself can reopen it (by navigating again), which requires the user to send a message first.

Why it hurts: I run dozens of parallel sessions. Each keeps a per-session status page in its Browser pane (local HTML served on 127.0.0.1) that I read before replying. Any session I haven't looked at for 30 min has lost its pane, so my first message is always "reopen the status page", which defeats the purpose.

Ask (any of): (1) a setting / env var / managed-settings key for the preview idle timeout, or 0 = never; (2) restore the last Browser-pane tab on refocus instead of a no-op warm-up; (3) don't count a tab that only shows a localhost page against the idle budget. Session idle (900s) is a separate mechanism and can stay as-is.

Related: #82023, #86899, #87777 (other WarmLifecycle idle side-effects).

Why I can't work around it locally (checked before filing): the timeout is a literal in app.asar, not read from any setting or env var; EnableEmbeddedAsarIntegrityValidation and OnlyLoadAppFromAsar fuses are enabled and Info.plist carries the asar hash, so patching is not an option; the only skip condition at fire time is "session tab currently visible", and there is no way to keep one session's tab visible while working in another.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗