Skip to content

Status Model

A dispatch moves through these statuses:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚
β”‚ new dispatch β”‚
β”‚ β”‚ β”‚
β”‚ β–Ό β”‚
β”‚ ⏳ copilot working ─────┬───────────────────────┐ β”‚
β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β–Ό β–Ό β–Ό β”‚
β”‚ πŸ”΅ implementing 🟣 pushed ⏸️ waiting on β”‚
β”‚ β”‚ β”‚ upstream β”‚
β”‚ β”‚ β–Ό β”‚ β”‚
β”‚ └──────────▢ 🟑 ready for review β—€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β–Ό β”‚
β”‚ βœ… done β”‚
β”‚ β”‚ β”‚
β”‚ β–Ό β”‚
β”‚ (cleaned) β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The simplified status flow for issue and PR dispatches:

StatusIconDashboard LabelDescription
implementingπŸ”΅implementingCopilot is actively working (coding or reviewing)
reviewing🟑ready for reviewCopilot finished β€” awaiting human review
upstream⏸️waiting on upstreamMarked as waiting on upstream (manual via u)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ implementing │────▢│ reviewing │────▢│ upstream β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Copilot is actively working in the worktree. A Copilot session is attached.

Transitions:

  • β†’ Implementing (session ends without push)
  • β†’ Pushed (session pushes commits)
  • β†’ Waiting on Upstream (user marks as waiting)

Worktree exists with changes, but no active Copilot session. Work in progress.

Transitions:

  • β†’ Copilot Working (attach session)
  • β†’ Pushed (manual or Copilot push)

Commits have been pushed to the branch, but no PR exists yet.

Transitions:

  • β†’ Ready for Review (PR opened)
  • β†’ Copilot Working (more work needed)

A PR is open and ready for review.

Transitions:

  • β†’ Done (PR merged)
  • β†’ Copilot Working (revisions requested)

User has marked this dispatch as waiting β€” typically for CI, review feedback, or upstream changes.

Transitions:

  • β†’ Any active status (user resumes work)
  • β†’ Done (PR merged)

PR has been merged. Dispatch is complete and can be cleaned.

Transitions:

  • β†’ Cleaned (user runs rally clean)

A worktree exists but has no tracking file. This can happen if:

  • Rally was interrupted during cleanup
  • Files were manually deleted
  • A bug in Rally

Resolution: Clean orphaned worktrees with rally clean --orphaned

  1. implementing β€” Created when rally dispatch issue is run. Copilot agent is launched.
  2. reviewing β€” Automatic transition when the copilot process exits and the log file is no longer being written to. The work is ready for human review.
  3. upstream β€” Manual status set via dashboard u key after human review (e.g., PR opened, waiting for CI/review).
  1. implementing β€” Created when rally dispatch pr is run. Copilot agent is launched to perform a multi-model code review.
  2. reviewing β€” Automatic transition when the copilot process exits and the log file is no longer active. The review output (REVIEW.md) is ready for human consumption.
  3. upstream β€” Manual status set via dashboard u key.

The refreshDispatchStatuses() function runs on every dashboard refresh and checks dispatches in implementing status:

  1. PID check β€” Is the copilot process (tracked by PID) still running?
  2. Log activity check β€” Has the .copilot-output.log file been modified in the last 30 seconds?

If both checks indicate the process is no longer active, the status automatically transitions to reviewing.

Dispatches already in reviewing or upstream are not affected by the automatic refresh.

Use rally clean to remove dispatches and their worktrees. This permanently deletes dispatch records β€” there is no intermediate done or cleaned status.

Terminal window
rally status # Summary view
rally status --json # JSON for scripting

Dashboard shows status icons for each dispatch.