Projects · Agent infrastructure

LocalShell Web Supervisor

A fail-closed reliability layer for long-running, browser-driven agents, built on one rule — a web conversation is a replaceable worker lease, and the durable task is not the conversation.

Repository ↗

When an agent works through a browser conversation and executes through a local shell, three things can fail or finish independently: the browser turn, the tool call, and the actual Git and workspace state. LocalShell Web Supervisor (LWS) keeps those truth domains separate so that a stalled or interrupted web turn does not automatically cause a duplicate commit, write, upload, or retry.

What it provides

  • a durable SQLite task and worker registry;
  • reconciliation of the local shell's logical sessions, goals, in-flight calls, continuations, and tracked jobs;
  • read-only observation of the workspace and Git;
  • browser and DOM observation fenced to an exact window;
  • deterministic health and stall classification across browser, shell, and workspace evidence;
  • write-ahead recovery actions with replay suppression;
  • worker generations, leases, handoff, takeover, supersession, and durable completion;
  • parent/child task scheduling with persisted prompts and worktree metadata;
  • an advisory resident watchdog whose browser-mutating modes are opt-in.

Unknown external outcomes are reconciled, not replayed.

Safety model

LWS is reliability infrastructure for work the user already authorized; it is not an authentication bypass or a private web-client implementation. Its invariants include never inferring completion from a button state, never treating “continue” or resend as idempotent, binding every browser mutation to an exact task, worker, and window, persisting mutation authority before an external side effect, and never inspecting, copying, or moving credentials, cookies, tokens, or session secrets.

The task, shell, Git, worker-protocol, scheduler, and recovery layers are provider-neutral; the current browser adapter is tested against one chat provider in a normal Chrome window and is treated as an observation and mutation adapter behind the durable control plane.

Python 3.11 or later; MIT license. Runtime databases, browser profiles, and observations live outside the checkout and are never published.