feat(tui): maintain session family index in data context

This commit is contained in:
Dax Raad 2026-07-01 20:22:33 -04:00
commit ce228bfd7c
5 changed files with 183 additions and 21 deletions

View file

@ -83,7 +83,7 @@ export function DialogSessionList() {
category,
footer,
gutter:
data.session.status(session.id) === "running"
data.session.family(session.id).some((id) => data.session.status(id) === "running")
? () => <Spinner />
: slot === undefined
? undefined

View file

@ -160,13 +160,12 @@ export function Prompt(props: PromptProps) {
const dialog = useDialog()
const toast = useToast()
const status = createMemo(() => data.session.status(props.sessionID ?? ""))
const activeSubagents = createMemo(
() =>
data.session
.list()
.filter((session) => session.parentID === props.sessionID && data.session.status(session.id) === "running")
.length,
)
const activeSubagents = createMemo(() => {
if (!props.sessionID) return 0
return data.session.family(props.sessionID).filter(
(id) => id !== props.sessionID && data.session.status(id) === "running",
).length
})
const runningShells = createMemo(
() => data.shell.list(currentLocation()).filter((shell) => shell.metadata.sessionID === props.sessionID).length,
)