---
title: Auto-open a session that needs you (idle sessions panel)
---

# Auto-open a session that needs you (idle sessions panel)

## What it is

### What it does

The embedded **Sessions** panels — the "Sessions" tab in Tasks, plus SMS, KMS, Mind Maps, Whiteboard, Flowchart, NightyTidy2, plugin panels, and a detached project window — all share one reusable sessions list. When you're looking at one of those panels with **nothing selected** (the pane reads "Pick a session to open its chat") and a session shows up in the amber **"Needs You"** group, Omniscio **opens its chat for you automatically** instead of leaving you staring at the empty pane.

So the moment something needs you, you're already in it — no extra click.

## Where to find it

The auto-open belongs to the embedded, reusable Sessions panels listed above: the **Sessions** tab in Tasks, plus SMS, KMS, Mind Maps, Whiteboard, Flowchart, NightyTidy2, plugin panels, and a detached project window. Open one of those with **nothing selected** — the pane reads "Pick a session to open its chat" — and a session in the amber **"Needs You"** group opens its chat for you. It is desktop-only, so on a narrow screen the list stays put and you tap the row yourself, and the regular per-project sidebar down the left of the app is unchanged.

## How it behaves

- **Lands you in a waiting session on arrival.** If you open the tab and something is already in "Needs You" — or a session drops into "Needs You" while you're sitting there idle — its chat opens on its own.
- **Never interrupts you.** It only ever acts when **nothing is selected**. If you're already reading a session's chat and another one starts needing you, you are **not** yanked away — you keep your place (the new one just waits in the amber list).
- **Closing stays closed.** If you close the chat with the **X** without answering, you land back on the empty "Pick a session" pane and it does **not** immediately re-open the same one. Only a session that _newly_ arrives in "Needs You" gets auto-opened.
- **Comes back if it comes back.** If a session leaves "Needs You" (you answered it) and later needs you again, that counts as a fresh arrival and it opens again.
- **Only opens what already exists.** It reveals an existing session's chat — it never starts a new session, so it never costs tokens.

### When it does NOT apply

- **On your phone.** It's desktop-only. On a narrow screen the sessions list fills the whole screen, so auto-opening would hide the list the instant you tapped the tab — you'd never see what's waiting. On mobile the list stays put and you tap the row yourself.
- **When you already have a session open** in that panel. It only fills an _empty_ pane.
- **When the only thing in "Needs You" is a notice**, not a session — e.g. a project alert or an approval row. Those aren't sessions, so there's nothing to open; the amber section still shows them.
- **The main project sidebar.** This is about the embedded, reusable Sessions panels listed above. The regular per-project sidebar down the left of the app is unchanged.

### The order it picks

If several sessions are waiting in "Needs You" at once, it opens the **top one** — the same top-to-bottom order you see in the amber list (oldest-waiting first). It reads that list from the exact same rule the section itself renders, so it can never open something that isn't the one shown at the top.

## For agents

### Where it lives in code

The auto-select is a small effect in the shared shell [SessionHostSidebar.tsx](../../src/renderer/src/features/session-host/SessionHostSidebar.tsx): when `activeId` is null, it's a desktop screen, and a session has _newly_ entered "Needs You" (tracked with a seen-set advanced every render), it calls the panel's own `onSelect` to open that session. The "who's in Needs You, and in what order" question is answered by one shared helper, [needs-you-select.ts](../../src/renderer/src/lib/session-host/needs-you-select.ts), which both the auto-select and the rendered [SessionSectionList](../../src/renderer/src/features/session-host/SessionSectionList.tsx) use — so the two can never disagree. The full set of invariants and the tests that lock them live in the contract: [.claude/memory/contracts/session-host-contract.md](../../.claude/memory/contracts/session-host-contract.md) (Invariant 12).

## Related

- [session-stuck-in-needs-you.md](session-stuck-in-needs-you.md) — the seven reasons a session ends up in "Needs You" in the first place.
- [gray-session-triage.md](gray-session-triage.md) · [paused-session-triage.md](paused-session-triage.md) — the sibling "auto-advance to the next one" behaviors when you _act on_ a session (this feature is the "you haven't picked anything yet" case instead).
- [tasks-v2.md](tasks-v2.md) — the Tasks outliner, whose "Sessions" tab is the panel in the reported case.
