Pimp My IDE / Garage Dispatch
← Back to garage
September 17, 2026 · long-running agents / continuity / failure boundaries

Keep awake is not keep safe.

A laptop that refuses to nap can still lose the turn to a dead MCP server, memory pressure, a window reload, or a session with no honest recovery receipt. Long-running agents need a survival contract—not caffeine taped to the lid.

THE TAKE: “Still running” is not one state. Separate power, dependency startup, resource pressure, and recoverability. Give every layer its own timeout, signal, stop condition, and proof.
Wire the long-turn survival bay ↓

The editor just became power management.

Zed 1.21.0-pre adds agent.prevent_idle_sleep, enabled by default, to prevent idle system sleep while agent threads run. It is an unusually honest release-note bullet: once work lasts longer than the operator’s attention span, the editor participates in whether the machine remains available.[1]

That is useful, not magical. On systemd systems, inhibitor locks are explicit leases. A blocking lock can hold off an operation until release; a delay lock buys a bounded preparation window. The lock is represented by a file descriptor and disappears when that descriptor closes. The documentation also warns that idle blockers can wreck battery behavior and that applications should continue gracefully when a lock is denied.[4]

Preventing sleep preserves opportunity. It does not preserve state.

A long turn has more than one clock.

Claude Code 2.1.274 adds CLAUDE_CODE_MCP_STARTUP_WAIT_MS to bound how long the first non-interactive turn waits for MCP servers; zero means do not wait. The same release fixes tool calls that timed out around five minutes despite a longer per-server setting and avoids an extra startup wait for some still-connecting servers whose tools can arrive later.[2]

That is the right shape: boot deadline, per-call deadline, and useful degradation are different controls. One giant “agent timeout” makes a slow dependency, a dead transport, and a genuinely long job look identical. The cockpit needs named clocks and an answer to what work may continue when each expires.

Pressure needs a visible gauge and a clean exit.

The same Claude Code release adds a visible critical-memory warning with recovery guidance. It also changes background-command cleanup so mild pressure does not kill commands merely for being idle; they are stopped only when pressure becomes critical, with the reason placed in the debug log. Corrupted transcripts that caused endless retry loops now self-heal where possible or stop with a clear rewind hint.[2]

Notice the design discipline: warn before collapse, distinguish mild from critical, name why the process stopped, and do not turn corrupted state into infinite motion. A spinning indicator without a pressure boundary is dashboard theater.

Continuity is not the same as immortality.

VS Code 1.138’s Agent Host can keep a session available across multiple windows, attach work to a folder or isolated worktree, and run a local session inside a Dev Container. It also exposes completed-session organization and attention badges. Those features make sessions easier to place and revisit, but they do not erase the need to know which environment, revision, permissions, and acceptance oracle the turn used.[3]

A durable conversation can resume into the wrong shop floor. A live process can keep burning after its goal is obsolete. A successful tool call can leave no artifact worth trusting. Survival means preserving the right state, not merely maximizing uptime.

Build a survival contract, not a superstition.

For every unattended turn, record four planes. Power: who holds the wake lease, for which active work, and when it releases. Dependencies: startup and call deadlines, degraded behavior, and health evidence. Pressure: memory and disk boundaries, warning thresholds, and a stop reason. Recovery: repository revision, workspace identity, last durable artifact, replay command, and named human brake.

The relay below replaces a single “keep running” toggle with four independent breakers. It executes nothing and measures nothing. Closing every breaker means the review template is ready to fill—not that the machine is safe, durable, or still alive.

Interactive makeover / physical watchdog relay

Long-Turn Survival Bay.

Traditional purpose replaced: one “prevent sleep” switch. Better version: four native breakers wire power, dependencies, pressure, and recovery into one copyable handoff while keeping each failure boundary visible.

Arm the right machine

The coil is a teaching readout. It mirrors declared review coverage, not live system health.

Long-turn survival contract breakers

Survival contract

0/4 breakers closed · TEMPLATE INCOMPLETE. Keeping the display awake would only hide the missing boundaries.

Open the four-source evidence drawer
[1] Zed v1.21.0-pre release notes, September 16, 2026 — default-on idle-sleep prevention during agent threads, async wakeup handling, and related agent changes. [2] Claude Code v2.1.274 release notes, September 17, 2026 — MCP startup wait control, per-server timeout fix, memory-pressure behavior, transcript recovery, reload continuation, and background-task continuity fixes. [3] Visual Studio Code 1.138 release notes, September 16, 2026 — Agent Host continuity, workspace conversion, Dev Container placement, attention badges, and completed-session organization. [4] systemd Inhibitor Locks documentation — lock types, block versus delay semantics, file-descriptor lifetime, denial behavior, battery warning, and command-line inspection.

Source boundary: Zed’s item is from a prerelease. Zed, Claude Code, and VS Code describe their own implementations. systemd documents Linux inhibitor semantics; other operating systems use different mechanisms. The four-breaker panel is an editorial operating model, not vendor guidance.