Skip to main content

Status rules

The statuses​

StatusMeaningWants attention
Needs youA prompt, bell, watch hit, program notification, or saggar attention call is waitingYes
WorkingOutput is moving, a command is in flight, or an agent reports work still runningNo
IdleA live shell is quiet at a promptNo
FinishedThe shell exited with code 0. Saggar closes the session on the next beat and files it in the project's Activity tab, so you rarely see this word on a rowNo
FailedThe shell exited with a non-zero code, or a long job failed inside a live shell. Stays until you visitReview
Ready for reviewA long job finished inside a live shell and left uncommitted work behind. Stays until you visitReview

Saggar combines shell integration, process state, screen content, provider hooks, terminal activity, and explicit saggar attention calls. Stronger, newer evidence wins over weaker inference. See Status and triage for the complete model.

Which claims stand and which decay​

  • Failed and Ready for review stand until you select the session.
  • A clean finish that changed nothing shows a tick for 90 seconds, then the row is plain Idle again.
  • A Needs you raised by a bell, a watch pattern, a program notification, or saggar attention expires after 120 seconds. A bell also clears when output resumes or you type in that session. A saggar attention call clears only when you type there.
  • A Needs you raised by an agent's own prompt stands until the prompt is answered or changes.
  • Ready for review is never awarded to the session on screen, and selecting a session clears any standing mark.

Timings​

RuleValue
Beat: how often statuses are re-read2 s
Silence before Working becomes Idle10 s
Bell, watch, notification, and saggar attention claims expire after120 s
An agent hook's mid-turn mark holds Working through silence for90 s
"Changed nothing" tick glows for90 s
Idle row counts as stale after15 min
Smart collapsing sweepabout every 10 s
Git state refreshabout every 30 s
Scheduled tasks checkedabout every 30 s
"Long command" floor for finish notices and Ready for review8 s
Answer grace after a card or ⌘↩ answer5 beats

Triage order​

⌘J walks the sessions with a claim on you, loudest class first and longest-waiting first within a class:

  1. Blocked on a prompt.
  2. Failed: an exited shell, or a long job that failed inside a live one.
  3. Ready for review: a long job that finished and left uncommitted work.
  4. Finished clean. In practice only a quick run can sit here, because an ordinary clean exit closes itself before the next press.

With nothing waiting, ⌘J shows a brief 0 waiting card.