Skip to content

Recover Runs after a crash or reboot, show live Runs, and coordinate Runs across machines #695

Closed as not planned

Description

@JacobStephens2

Problem

thirdshift lacks three things that a durable-execution engine such as Temporal would provide. The research in #694 (docs/research/temporal-for-thirdshift.md, §7) names them:

  1. Recovery after a crash or reboot. The README says: "A process killed outright, with kill -9 or by a power cut, releases nothing: the issue stays in-progress for you to relabel." The Claim is never released, the Worktree and branch are left behind, and a Continuation has to be started by hand. The agent session itself is lost, even though most Harnesses can Resume it by session id.
  2. A live view of Runs. Today a Run's state lives in the Command log, the Activity log and the Session logs, read after the fact. Nothing shows which Runs are in flight, which stage each is in, or which session is running.
  3. Coordination across machines. Each machine runs its own Passes from its own crontab. Nothing stops two machines from working on the same issue, apart from the in-progress label. Nothing spreads work across machines, and nothing finds which machine a Run is on (make a way to easily see in progress thirdshift runs on machine and cut one off #574 hit this).

What done looks like

Open questions for triage

  • Adopt Temporal, or build these into thirdshift directly? The research recommends against adopting Temporal now. It would mean a long-lived Worker daemon, which reverses ADR 0009, plus a server or Temporal Cloud, determinism and Workflow-versioning rules, and a rewrite of the Delivery and Repair loop. Its suggested first step is a small prototype: one Rust Workflow, one heartbeated claude -p session Activity with --resume on retry, the Worker killed mid-session, and the dev server's memory measured on this host.
  • Should this be split into three issues (crash recovery, live view, multi-machine)? Crash recovery is useful alone. The other two may share a design.

Related

Activity

  1. JacobStephens2 commented on Oct 16, 2026

    @JacobStephens2
    OwnerAuthor

    This was generated by AI during triage.

    Split into three issues, each triaged on its own:

    A correction to the body above: the in-progress label is the deliberate way machines coordinate (ADR 0009), not a missing piece. The only gap left is the race in #712.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageMaintainer needs to evaluate this issue

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions