Repository navigation
Description
User story
As a user I would like to see and attach to every tmux session on an SSH host from eve, not only the ones relay created, so I can watch and steer long-running work there (for example parallel Claude sessions started by a coordinator) from the browser or my phone, without an ssh terminal.
Background
Today GET /api/projects/{id}/persistent-sessions runs tmux ls on the host, then keeps only names that parse as relay-<project8>-<template>-<n> for that project. Reattach (POST /api/terminals with persist_session) refuses any other name. Other sessions on the host are invisible.
Security: a host project already grants a login shell on that host, from which tmux attach -t <anything> works. This feature adds convenience, not authority.
Acceptance criteria
- A host setting "Show all tmux sessions" exists, and its default is off.
- With the setting off, session listing and attach behave as they do today.
- With the setting on, Remote Sessions shows a second group, "Other sessions on ".
- The "Other sessions" group lists every session on the host that is not relay-named.
- Each row shows the session name, its creation time and its attached status.
- Each session in both groups shows how many clients are attached besides this relay, such as "watched by 1 other".
- The count is
session_attachedminus relay's own live terminals on that session. - Hovering or expanding a session lists each client's terminal and whether it is read-only (
tmux list-clients -F). - Opening an "other" session attaches with
tmux attach -f read-only,ignore-size -t <name>. - A read-only attach accepts no input.
- Eve's client never resizes the shared window, so a phone-sized client does not reflow the TUI for others.
- An explicit "take control" action re-attaches without
read-only. - Take control keeps
ignore-sizeunless the user also chooses to resize. - Before attaching, relay confirms the exact session name is present in the host's session list.
- A name that is only a prefix match, such as
relay-15againstrelay-156, is never attached. - Relay does not offer kill for a session it did not create, in the API or in the UI.
- Closing the tab, an ssh drop or a relay restart detaches the session and never kills it.
- On a host with tmux older than 3.2, the "other" group is still listed.
- On such a host, attach reports that it is unsupported and does not fall back to a full attach.
What I'd notice
Nothing, until I turn on "Show all tmux sessions" for a host. Then I see its other sessions, read-only by default.
Tasks
- T1 · relay: host setting, and listing of every session with client counts and client details (API and wire shape)
- T2 · relay: attach to a non-relay session, read-only plus ignore-size by default, take-control variant, exact-name guard, no kill
- T3 · eve: the "Other sessions" group in Remote Sessions, attached status on both groups, read-only badge and a take-control action
- T4 · devbox journey: list and read-only attach to a tmux session the journey starts itself, and confirm the window size doesn't change
Activity
barelyworkingcode commentedon Oct 15, 2026
Groomed (coordinator, 2026-10-14): Added a
## User storyheading over the existing story paragraph. No change of meaning.barelyworkingcode commentedon Oct 15, 2026
Groomed on the owner's word (coordinator): the nine criteria were split into single-claim lines of 25 words or fewer, and a What I'd notice line was added. No change of meaning: every original claim maps to one or more new lines (1 to 3, 4 to 5, 6, 7, 8, 9).