Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Work through interrupted sessions — auto-advance

When you act on a session in the sidebar's Interrupted section, Omniscio opens the next one for you, so you can clear the pile without hunting for the next row — and it never crosses into another section.

What it is

When you act on a session in the sidebar's Interrupted section, Omniscio moves you straight to the next Interrupted session — so you can clear the pile one by one without hunting for the next row. It behaves exactly like the Needs You and Paused sections: act on one, land on the next in that same section, and bounce back to the previous row when you act on the last one. It never crosses into another section (Live / Paused / Needs You).

The Interrupted section is broader than just "dead" sessions — it holds every session that stopped without delivering a final message: ended (finished/dead), waiting (rate-limit parked), non-reconnecting error/stalled, and the failed needs_you sub-states (give-up, api/auth error, user-stopped, aborted, sub-agent timeout, suspended). Acting on ANY of them advances to the next Interrupted session, whatever its status. (Before 2026-08-23 the advance covered only ended rows, so acting on a waiting/errored one could skip the next interrupted row or jump you into Live — now fixed; the advance follows the whole section.)

"Act on" means any of the ways you clear an interrupted session:

  • Archive it (middle-click, right-click → Archive, or E / Ctrl+W).
  • Snooze it.
  • Revive it — send a message, click the "Please continue" nudge, or Restart.

Where to find it

There is nothing to switch on. The behavior belongs to the sidebar's Interrupted section: act on a session there and the next one opens by itself. The same auto-advance applies to the Needs You and Paused sections.

How it behaves

The order it picks the next session

  1. Next Interrupted session — the next member of that project's visible Interrupted section, in the same top-to-bottom order you see in the sidebar. Start at the top, middle, or bottom; it never repeats or skips, and when you act on the last row it steps back up to the previous one (never wraps to the top).
  2. Section exhausted → the on-screen neighbour — when the row you acted on was the last one in its section, selection falls through to whatever sits next to it in the visible list (the same "land on the row below" behaviour every non-attention row uses). It deliberately does NOT jump to the oldest Needs You — that would break inbox parity and re-introduce the "lands on the oldest sibling, not the on-screen neighbour" bug.

When it does NOT apply

  • The row isn't in the Interrupted (or Paused) section. A Live (running) row keeps its own on-screen-neighbour behaviour; a Paused row advances within Paused; a genuine Needs You row advances within Needs You.
  • You're not on that session. It only advances when the interrupted row you acted on is the one you're actually viewing. A background delivery landing on an off-screen row won't yank your view.
  • You're in the global Inbox, or a special session area. It's scoped to a regular project's session list — the Inbox and the OpenClaw / Ask-Omniscio / Session-Search virtual areas are excluded, and the inbox advance stays status-blind.
  • The interrupted rows aren't visible. If you've turned off "show ended sessions" or collapsed the Interrupted group, there are no visible rows to jump to, so it falls through to the on-screen neighbour.

For agents

Where it lives in code

The selection logic lives in the action-advance transition of the nav machine:

  • sessionTriageSection(session) in session-nav-lists.ts — classifies a row into its triage section ('interrupted' via the shared isInterruptedSectionMember, 'paused', or null), the SAME rule the sidebar section split uses, so the advance order and the rendered section can never drift.
  • getProjectSectionPileInOrder(...) — builds the project's visible session order (getVisibleProjectSessionsInOrder — the same source the sidebar + keyboard nav use, so show-ended / collapse / snooze gates all apply for free) filtered to the acted-on row's section.
  • resolveTriagePileTarget(...) in session-nav-machine.ts — walks that section with findNextItem (same-group advance + bounce-back), or returns null (fall through) when the section is exhausted.

It fires ONLY from the action-advance intent (archive / snooze / close / clear / restart / continue), gated to a real project view. For a middle-click / X close of a live-ish interrupted row (which terminate-firsts — flipping the status to terminating before the advance runs) the section is captured PRE-terminate as the intent's currentSection, so the advance still stays in-section. The inbox advance and the typed-reply post-send cascade stay status-blind — they never call the pile. Invariants + tests: inbox-navigation-contract.md (project-pile-triage) + session-nav-machine-contract.md.

Related

Last verified 2026-10-05