---
title: Working through paused sessions (auto-advance)
---

# Work through paused sessions — auto-advance

## What it is

### What it does

When you park a session it turns **paused** and drops into the **"Paused Sessions"** group at the bottom of that project's sidebar. If you sit down to clear that pile — dealing with one parked session, then the next — Omniscio moves you along automatically: **act on a paused session and you're taken straight to the next paused session.** When there are no paused sessions left, you land on the next **"Needs You"** session instead. When there's nothing left to go to, you stay put.

"Act on" means any of the three ways you'd clear a parked session:

- **Archive** it (the X / close, the archive shortcut, or the menu).
- **Reply** to it (type into the chat box and Send / Ctrl+Enter — which also un-pauses it).
- **Snooze** it.

So the workflow is: open a paused session → archive / reply / snooze it → Omniscio jumps you to the next paused one → repeat. Once the paused pile is empty, it hands you the oldest "Needs You" session so you flow straight from cleanup into your real queue.

## Where to find it

In the **Paused Sessions** group at the bottom of a project's sidebar. There is no button — you just keep working through the pile and the app advances for you.

## How it behaves

### The order it picks the next session

For a paused session it follows a **fixed order**:

1. **Next paused session** — the next `paused` session in that project's visible Paused list, in the same top-to-bottom order you see in the sidebar. It works whether you start at the top, middle, or bottom of the pile, and it never repeats or skips one — when it reaches the end it steps back up through the remaining paused rows rather than jumping to the top.
2. **Otherwise, the next "Needs You"** — the oldest attention session in that project.
3. **Otherwise** — when you replied, you stay on the (now-running) session; when you archived or snoozed, it falls back to your normal next-session pick (so it never dumps you to an empty screen while a sibling exists).

For **replying**, this order **overrides your general "after I send, go to…" setting** — but only for paused sessions. Every other kind of session (a normal "Needs You" reply, etc.) still follows your configured post-send behavior exactly as before. If you'd set "stay put after sending," a paused session will still advance to the next paused one; that's the whole point of the feature.

### When it does NOT apply

- **The session isn't paused.** Only `paused` (parked) sessions count. Dead/finished **gray** sessions have their own [auto-advance](gray-session-triage.md); the red **error** / orange **stalled** sessions are already "Needs You" — none of those trigger the paused jump.
- **You're not on that session.** It only advances when the paused session you acted on is the one you're actually viewing. A background archive/snooze of some off-screen paused session will not yank your view. Middle-click-to-close on a **paused or gray** session also deliberately stays put (row-by-row triage). Note the contrast (2026-06-06): middle-clicking a **needs-you / inbox** session DOES advance to the next one, matching keyboard-archive (`E` / `Ctrl+W`) and reply — only the paused/gray pile stays put.
- **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 three built-in session-hosting areas — **OpenClaw**, **Ask-Omniscio**, and **Session Search** — are excluded.
- **The paused sessions aren't visible.** If you've collapsed the "Paused Sessions" group, there are no visible paused rows to jump to, so it falls through to the next "Needs You" instead.
- **Terminating** a paused session is not one of the triggers — terminating turns a session gray, where the [gray auto-advance](gray-session-triage.md) takes over instead.

## For agents

### Where it lives in code

The selection logic is two small, shared helpers in [session-navigation.ts](../../src/renderer/src/stores/session-navigation.ts), mirroring the gray-session pair:

- `resolveNextPausedInProject(...)` — builds the project's visible order with `getVisibleProjectSessionsInOrder` (the same source the sidebar and keyboard nav use, so the collapse / Live / Interrupted / Paused split gates all apply for free), keeps only the `paused` rows, and walks them with `findNextItem` (same-group advance with bounce-back — never wrap-to-top).
- `resolvePausedTriageTarget(...)` — returns that next paused session, or falls back to the oldest attention session in the project, or `null`.

These feed the four places an action on a paused session resolves "what's next": `computePostSendPatch` and `executePostSendNavigation` (covering the chat Send and "send later") in the same file, and `archiveSession` + `snoozeSession` in [session-store.ts](../../src/renderer/src/stores/session-store.ts) via the shared `resolvePausedAdvanceTarget` guard. All four share one resolver and one guard — fires only when the sender is `paused`, is the active session, and is in a real project that is the active view (the Inbox and the OpenClaw / Ask-Omniscio / Search virtual areas are excluded). The full set of invariants and the tests that lock them live in the contract: [.claude/memory/contracts/paused-session-triage-nav-contract.md](../../.claude/memory/contracts/paused-session-triage-nav-contract.md).

## Related

### Related

- [gray-session-triage.md](gray-session-triage.md) — the same auto-advance for dead/finished **gray** sessions (triggered by Send / nudge / Restart). Paused is its sibling for the parked pile.
- [pause-or-stop-a-session.md](pause-or-stop-a-session.md) — how a session becomes paused, and how replying un-pauses it.
- [archive-a-session.md](archive-a-session.md) · [snooze-a-session.md](snooze-a-session.md) — two of the three actions that trigger the paused jump.
- [session-stuck-in-needs-you.md](session-stuck-in-needs-you.md) — the paused jump lands you on the oldest of these once the paused pile is cleared.

