Skip to content

bug: axi run issues rerun (not start_run) — cannot start a new run on a branch with no history #351

Description

@jeremymcs

Summary

no-mistakes axi run --intent "..." cannot start a new pipeline run on a branch that has no prior run. It never issues a start_run IPC request — instead it polls get_active_run, finds nothing, and falls through to a rerun request, which fails with error: "no previous run for branch <branch>". This makes the CLI unable to start any new run; only branches with existing run history can be re-driven.

Reproduces on the latest release (v1.31.2) with a freshly-restarted daemon and a clean, pushed tree.


Reproduction

Environment

  • no-mistakes: v1.31.2 (3c09496) 2026-06-27T00:02:18Z (also reproduced on v1.30.1)
  • OS: macOS 26.5 (arm64)
  • git: 2.50.1 (Apple Git-155)
  • Repo: registered, daemon running, on a feature branch with a clean tree, branch pushed to origin with upstream set.

Steps

  1. Be on a feature branch with no prior no-mistakes run (e.g. a freshly-created branch): docs/gsd-smart-entry-design.
  2. Ensure the working tree is clean and the branch is pushed (git status empty, upstream configured).
  3. Restart the daemon to rule out stale state: no-mistakes daemon restart.
  4. Start a run: no-mistakes axi run --intent "<goal>".

Actual

error: "no run started for "docs/gsd-smart-entry-design": no previous run for branch docs/gsd-smart-entry-design"

Expected
A new run should start (the run subcommand should issue start_run with the intent), blocking until the first gate or outcome.


Root-cause evidence (daemon IPC trace)

I captured the daemon log during a single axi run attempt (freshly-restarted v1.31.2 daemon). The CLI issues only get_active_run (polled ~15–35× over ~2s) and then a rerun request — never start_run:

time=2026-06-27T15:25:32.444-05:00 level=INFO msg="ipc request" method=get_active_run
time=2026-06-27T15:25:32.594-05:00 level=INFO msg="ipc request" method=get_active_run
... (repeated ~15-35x over ~2 seconds) ...
time=2026-06-27T15:25:33.243-05:00 level=INFO msg="ipc request" method=rerun
time=2026-06-27T15:25:33.282-05:00 level=INFO msg="ipc request failed" method=rerun error="no previous run for branch docs/gsd-smart-entry-design"

So the run command's start path appears to be mis-routing to rerun. The --intent flag is accepted but never reaches a start_run call.


What I ruled out

Each of these was tested and did not resolve the error — the failure is identical every time:

Hypothesis Test Result
Dirty working tree Stashed all uncommitted changes; clean tree Same error
Stale daemon Killed all no-mistakes procs; daemon restart (fresh PID) Same error
Old version Upgraded v1.30.1 → v1.31.2, restarted daemon Same error
Branch unpushed Pushed + set upstream before run Same error
Poisoned run record DB query: SELECT ... FROM runs WHERE branch='...' → 0 rows Nothing to clear
Wrong repo registration DB: repos.upstream_url matches git remote get-url origin; default_branch=next; working_path correct Registration is consistent

The daemon log shows the same rerun failure pattern across every branch attempted in this repo historically — no new run has been startable via the CLI. (One run did reach ci on 2026-06-25, but that predates the current client; nothing has started since.)


Impact

The CLI's documented start path is completely blocked: axi run --intent "..." cannot start a new run on any branch lacking history. This makes no-mistakes unusable for new work via the agent interface. Only rerun (on branches with prior runs) and the TUI (if it uses a different start path) still function.

Likely cause

The axi run command's logic that should call start_run when get_active_run returns no active run instead calls rerun. The branch to start_run on "no active run found" appears missing or mis-routed. (The --intent flag is documented as "required when starting a new run," confirming run is supposed to start runs.)

Minimal fix idea

In the axi run handler: when get_active_run reports no active run for the current branch, issue start_run (with the --intent payload) rather than falling through to rerun. Reserve rerun for the explicit no-mistakes rerun command.


Context

Discovered while running /no-mistakes to validate a feature branch (docs/gsd-smart-entry-design) in a registered repo. Happy to provide fuller daemon logs or run a patched build to confirm a fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions