@volter-ai-dev/supercode-ui 0.1.56 → 0.1.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/components.mjs CHANGED
@@ -2345,32 +2345,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
2345
2345
  /* @__PURE__ */ jsxs7("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
2346
2346
  /* @__PURE__ */ jsx8(HarnessLogo, { id: row.harness, activity, size: 34 }),
2347
2347
  /* @__PURE__ */ jsxs7("span", { className: "scui-session-copy", children: [
2348
- /* @__PURE__ */ jsxs7("span", { className: "scui-session-title", children: [
2349
- /* @__PURE__ */ jsx8("strong", { children: title }),
2350
- /* @__PURE__ */ jsx8("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx8("time", { children: age }) : null })
2351
- ] }),
2348
+ /* @__PURE__ */ jsx8("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx8("strong", { children: title }) }),
2352
2349
  path.complete ? /* @__PURE__ */ jsxs7("small", { className: "scui-session-path", title: row.cwd, children: [
2353
2350
  /* @__PURE__ */ jsx8("span", { className: "scui-session-path-leading", children: path.leading }),
2354
2351
  path.separator ? /* @__PURE__ */ jsx8("span", { className: "scui-session-path-separator", children: path.separator }) : null,
2355
2352
  path.trailing ? /* @__PURE__ */ jsx8("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
2356
2353
  ] }) : null,
2357
- working || preview || unreadCount ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-preview", children: [
2354
+ working || preview ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-preview", children: [
2358
2355
  working ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-working", "aria-hidden": "true", children: [
2359
2356
  /* @__PURE__ */ jsx8("i", {}),
2360
2357
  /* @__PURE__ */ jsx8("i", {}),
2361
2358
  /* @__PURE__ */ jsx8("i", {})
2362
2359
  ] }) : null,
2363
- preview || working ? /* @__PURE__ */ jsx8("small", { children: preview || "Working\u2026" }) : null,
2364
- unreadCount ? /* @__PURE__ */ jsx8("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2360
+ preview || working ? /* @__PURE__ */ jsx8("small", { children: preview || "Working\u2026" }) : null
2365
2361
  ] }) : null,
2366
2362
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx8("em", { children: state.attachError.message }) : null
2367
2363
  ] })
2368
2364
  ] }),
2369
- row.subagentCount ? /* @__PURE__ */ jsxs7("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2370
- /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 14 }),
2371
- row.subagentCount,
2372
- " ",
2373
- row.subagentCount === 1 ? "agent" : "agents"
2365
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-rail", children: [
2366
+ /* @__PURE__ */ jsxs7("span", { className: "scui-session-rail-meta", children: [
2367
+ row.subagentCount ? /* @__PURE__ */ jsxs7("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2368
+ /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 14 }),
2369
+ /* @__PURE__ */ jsx8("span", { children: row.subagentCount })
2370
+ ] }) : null,
2371
+ age ? /* @__PURE__ */ jsx8("time", { children: age }) : null
2372
+ ] }),
2373
+ unreadCount ? /* @__PURE__ */ jsx8("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2374
2374
  ] }) : null
2375
2375
  ] });
2376
2376
  }
@@ -2450,7 +2450,6 @@ function SessionList({ state, adapter, onOpen, onOpenSubagents, onNew, onClose,
2450
2450
  // src/subagents.jsx
2451
2451
  import { useEffect as useEffect7, useRef as useRef6, useState as useState5 } from "preact/hooks";
2452
2452
  import { jsx as jsx9, jsxs as jsxs8 } from "preact/jsx-runtime";
2453
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
2454
2453
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
2455
2454
  function activityLabel(activity, age) {
2456
2455
  if (activity === "needs-input") return "Needs input";
@@ -2484,13 +2483,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
2484
2483
  }
2485
2484
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2486
2485
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
2487
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
2488
2486
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
2489
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
2490
- const [finishedOpen, setFinishedOpen] = useState5(false);
2487
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
2488
+ const [historyOpen, setHistoryOpen] = useState5(false);
2491
2489
  const backButton = useRef6(null);
2492
2490
  useEffect7(() => {
2493
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
2491
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
2494
2492
  }, [inspector.parentKey, inspector.status]);
2495
2493
  useEffect7(() => {
2496
2494
  backButton.current?.focus({ preventScroll: true });
@@ -2520,8 +2518,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2520
2518
  /* @__PURE__ */ jsx9("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx9(UiIcon, { name: "back", size: 17 }) }),
2521
2519
  selected ? /* @__PURE__ */ jsx9(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx9(UiIcon, { name: "agents", size: 20 }),
2522
2520
  /* @__PURE__ */ jsxs8("span", { className: "scui-head-copy", children: [
2523
- /* @__PURE__ */ jsx9("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
2524
- /* @__PURE__ */ jsx9("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
2521
+ /* @__PURE__ */ jsx9("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
2522
+ /* @__PURE__ */ jsx9("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
2525
2523
  ] })
2526
2524
  ] }),
2527
2525
  inspector.status === "loading" ? /* @__PURE__ */ jsxs8("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -2533,15 +2531,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2533
2531
  ] }) : null,
2534
2532
  inspector.error ? /* @__PURE__ */ jsx9("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
2535
2533
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs8("div", { className: "scui-subagent-rows", children: [
2536
- /* @__PURE__ */ jsx9(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
2537
2534
  /* @__PURE__ */ jsx9(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
2538
- finished.length ? /* @__PURE__ */ jsxs8("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
2535
+ history.length ? /* @__PURE__ */ jsxs8("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
2539
2536
  /* @__PURE__ */ jsxs8("summary", { children: [
2540
- /* @__PURE__ */ jsx9("span", { children: "Finished" }),
2541
- /* @__PURE__ */ jsx9("small", { children: finished.length }),
2537
+ /* @__PURE__ */ jsx9("span", { children: "History" }),
2538
+ /* @__PURE__ */ jsx9("small", { children: history.length }),
2542
2539
  /* @__PURE__ */ jsx9(UiIcon, { name: "chevron", size: 14 })
2543
2540
  ] }),
2544
- /* @__PURE__ */ jsx9("div", { children: finished.map((row) => /* @__PURE__ */ jsx9(SubagentRow, { row, inspector, adapter }, row.key)) })
2541
+ /* @__PURE__ */ jsx9("div", { children: history.map((row) => /* @__PURE__ */ jsx9(SubagentRow, { row, inspector, adapter }, row.key)) })
2545
2542
  ] }) : null
2546
2543
  ] }) : null,
2547
2544
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx9("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
package/embed.mjs CHANGED
@@ -2262,32 +2262,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
2262
2262
  /* @__PURE__ */ jsxs6("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
2263
2263
  /* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
2264
2264
  /* @__PURE__ */ jsxs6("span", { className: "scui-session-copy", children: [
2265
- /* @__PURE__ */ jsxs6("span", { className: "scui-session-title", children: [
2266
- /* @__PURE__ */ jsx7("strong", { children: title }),
2267
- /* @__PURE__ */ jsx7("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx7("time", { children: age }) : null })
2268
- ] }),
2265
+ /* @__PURE__ */ jsx7("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx7("strong", { children: title }) }),
2269
2266
  path.complete ? /* @__PURE__ */ jsxs6("small", { className: "scui-session-path", title: row.cwd, children: [
2270
2267
  /* @__PURE__ */ jsx7("span", { className: "scui-session-path-leading", children: path.leading }),
2271
2268
  path.separator ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-separator", children: path.separator }) : null,
2272
2269
  path.trailing ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
2273
2270
  ] }) : null,
2274
- working || preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2271
+ working || preview ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2275
2272
  working ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-working", "aria-hidden": "true", children: [
2276
2273
  /* @__PURE__ */ jsx7("i", {}),
2277
2274
  /* @__PURE__ */ jsx7("i", {}),
2278
2275
  /* @__PURE__ */ jsx7("i", {})
2279
2276
  ] }) : null,
2280
- preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null,
2281
- unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2277
+ preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null
2282
2278
  ] }) : null,
2283
2279
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
2284
2280
  ] })
2285
2281
  ] }),
2286
- row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2287
- /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2288
- row.subagentCount,
2289
- " ",
2290
- row.subagentCount === 1 ? "agent" : "agents"
2282
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail", children: [
2283
+ /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail-meta", children: [
2284
+ row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2285
+ /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2286
+ /* @__PURE__ */ jsx7("span", { children: row.subagentCount })
2287
+ ] }) : null,
2288
+ age ? /* @__PURE__ */ jsx7("time", { children: age }) : null
2289
+ ] }),
2290
+ unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2291
2291
  ] }) : null
2292
2292
  ] });
2293
2293
  }
@@ -2367,7 +2367,6 @@ function SessionList({ state, adapter, onOpen, onOpenSubagents, onNew, onClose,
2367
2367
  // src/subagents.jsx
2368
2368
  import { useEffect as useEffect7, useRef as useRef6, useState as useState5 } from "preact/hooks";
2369
2369
  import { jsx as jsx8, jsxs as jsxs7 } from "preact/jsx-runtime";
2370
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
2371
2370
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
2372
2371
  function activityLabel(activity, age) {
2373
2372
  if (activity === "needs-input") return "Needs input";
@@ -2401,13 +2400,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
2401
2400
  }
2402
2401
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2403
2402
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
2404
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
2405
2403
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
2406
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
2407
- const [finishedOpen, setFinishedOpen] = useState5(false);
2404
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
2405
+ const [historyOpen, setHistoryOpen] = useState5(false);
2408
2406
  const backButton = useRef6(null);
2409
2407
  useEffect7(() => {
2410
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
2408
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
2411
2409
  }, [inspector.parentKey, inspector.status]);
2412
2410
  useEffect7(() => {
2413
2411
  backButton.current?.focus({ preventScroll: true });
@@ -2437,8 +2435,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2437
2435
  /* @__PURE__ */ jsx8("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx8(UiIcon, { name: "back", size: 17 }) }),
2438
2436
  selected ? /* @__PURE__ */ jsx8(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 20 }),
2439
2437
  /* @__PURE__ */ jsxs7("span", { className: "scui-head-copy", children: [
2440
- /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
2441
- /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
2438
+ /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
2439
+ /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
2442
2440
  ] })
2443
2441
  ] }),
2444
2442
  inspector.status === "loading" ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -2450,15 +2448,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2450
2448
  ] }) : null,
2451
2449
  inspector.error ? /* @__PURE__ */ jsx8("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
2452
2450
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagent-rows", children: [
2453
- /* @__PURE__ */ jsx8(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
2454
2451
  /* @__PURE__ */ jsx8(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
2455
- finished.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
2452
+ history.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
2456
2453
  /* @__PURE__ */ jsxs7("summary", { children: [
2457
- /* @__PURE__ */ jsx8("span", { children: "Finished" }),
2458
- /* @__PURE__ */ jsx8("small", { children: finished.length }),
2454
+ /* @__PURE__ */ jsx8("span", { children: "History" }),
2455
+ /* @__PURE__ */ jsx8("small", { children: history.length }),
2459
2456
  /* @__PURE__ */ jsx8(UiIcon, { name: "chevron", size: 14 })
2460
2457
  ] }),
2461
- /* @__PURE__ */ jsx8("div", { children: finished.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2458
+ /* @__PURE__ */ jsx8("div", { children: history.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2462
2459
  ] }) : null
2463
2460
  ] }) : null,
2464
2461
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx8("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
package/messenger.mjs CHANGED
@@ -2259,32 +2259,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
2259
2259
  /* @__PURE__ */ jsxs6("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
2260
2260
  /* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
2261
2261
  /* @__PURE__ */ jsxs6("span", { className: "scui-session-copy", children: [
2262
- /* @__PURE__ */ jsxs6("span", { className: "scui-session-title", children: [
2263
- /* @__PURE__ */ jsx7("strong", { children: title }),
2264
- /* @__PURE__ */ jsx7("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx7("time", { children: age }) : null })
2265
- ] }),
2262
+ /* @__PURE__ */ jsx7("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx7("strong", { children: title }) }),
2266
2263
  path.complete ? /* @__PURE__ */ jsxs6("small", { className: "scui-session-path", title: row.cwd, children: [
2267
2264
  /* @__PURE__ */ jsx7("span", { className: "scui-session-path-leading", children: path.leading }),
2268
2265
  path.separator ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-separator", children: path.separator }) : null,
2269
2266
  path.trailing ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
2270
2267
  ] }) : null,
2271
- working || preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2268
+ working || preview ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2272
2269
  working ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-working", "aria-hidden": "true", children: [
2273
2270
  /* @__PURE__ */ jsx7("i", {}),
2274
2271
  /* @__PURE__ */ jsx7("i", {}),
2275
2272
  /* @__PURE__ */ jsx7("i", {})
2276
2273
  ] }) : null,
2277
- preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null,
2278
- unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2274
+ preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null
2279
2275
  ] }) : null,
2280
2276
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
2281
2277
  ] })
2282
2278
  ] }),
2283
- row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2284
- /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2285
- row.subagentCount,
2286
- " ",
2287
- row.subagentCount === 1 ? "agent" : "agents"
2279
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail", children: [
2280
+ /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail-meta", children: [
2281
+ row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2282
+ /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2283
+ /* @__PURE__ */ jsx7("span", { children: row.subagentCount })
2284
+ ] }) : null,
2285
+ age ? /* @__PURE__ */ jsx7("time", { children: age }) : null
2286
+ ] }),
2287
+ unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2288
2288
  ] }) : null
2289
2289
  ] });
2290
2290
  }
@@ -2364,7 +2364,6 @@ function SessionList({ state, adapter, onOpen, onOpenSubagents, onNew, onClose,
2364
2364
  // src/subagents.jsx
2365
2365
  import { useEffect as useEffect7, useRef as useRef6, useState as useState5 } from "preact/hooks";
2366
2366
  import { jsx as jsx8, jsxs as jsxs7 } from "preact/jsx-runtime";
2367
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
2368
2367
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
2369
2368
  function activityLabel(activity, age) {
2370
2369
  if (activity === "needs-input") return "Needs input";
@@ -2398,13 +2397,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
2398
2397
  }
2399
2398
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2400
2399
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
2401
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
2402
2400
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
2403
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
2404
- const [finishedOpen, setFinishedOpen] = useState5(false);
2401
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
2402
+ const [historyOpen, setHistoryOpen] = useState5(false);
2405
2403
  const backButton = useRef6(null);
2406
2404
  useEffect7(() => {
2407
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
2405
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
2408
2406
  }, [inspector.parentKey, inspector.status]);
2409
2407
  useEffect7(() => {
2410
2408
  backButton.current?.focus({ preventScroll: true });
@@ -2434,8 +2432,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2434
2432
  /* @__PURE__ */ jsx8("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx8(UiIcon, { name: "back", size: 17 }) }),
2435
2433
  selected ? /* @__PURE__ */ jsx8(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 20 }),
2436
2434
  /* @__PURE__ */ jsxs7("span", { className: "scui-head-copy", children: [
2437
- /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
2438
- /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
2435
+ /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
2436
+ /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
2439
2437
  ] })
2440
2438
  ] }),
2441
2439
  inspector.status === "loading" ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -2447,15 +2445,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2447
2445
  ] }) : null,
2448
2446
  inspector.error ? /* @__PURE__ */ jsx8("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
2449
2447
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagent-rows", children: [
2450
- /* @__PURE__ */ jsx8(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
2451
2448
  /* @__PURE__ */ jsx8(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
2452
- finished.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
2449
+ history.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
2453
2450
  /* @__PURE__ */ jsxs7("summary", { children: [
2454
- /* @__PURE__ */ jsx8("span", { children: "Finished" }),
2455
- /* @__PURE__ */ jsx8("small", { children: finished.length }),
2451
+ /* @__PURE__ */ jsx8("span", { children: "History" }),
2452
+ /* @__PURE__ */ jsx8("small", { children: history.length }),
2456
2453
  /* @__PURE__ */ jsx8(UiIcon, { name: "chevron", size: 14 })
2457
2454
  ] }),
2458
- /* @__PURE__ */ jsx8("div", { children: finished.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2455
+ /* @__PURE__ */ jsx8("div", { children: history.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2459
2456
  ] }) : null
2460
2457
  ] }) : null,
2461
2458
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx8("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter-ai-dev/supercode-ui",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "type": "module",
5
5
  "description": "Composable default UI kit for Supercode-powered coding-agent experiences",
6
6
  "exports": {
@@ -2345,32 +2345,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
2345
2345
  /* @__PURE__ */ jsxs7("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
2346
2346
  /* @__PURE__ */ jsx8(HarnessLogo, { id: row.harness, activity, size: 34 }),
2347
2347
  /* @__PURE__ */ jsxs7("span", { className: "scui-session-copy", children: [
2348
- /* @__PURE__ */ jsxs7("span", { className: "scui-session-title", children: [
2349
- /* @__PURE__ */ jsx8("strong", { children: title }),
2350
- /* @__PURE__ */ jsx8("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx8("time", { children: age }) : null })
2351
- ] }),
2348
+ /* @__PURE__ */ jsx8("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx8("strong", { children: title }) }),
2352
2349
  path.complete ? /* @__PURE__ */ jsxs7("small", { className: "scui-session-path", title: row.cwd, children: [
2353
2350
  /* @__PURE__ */ jsx8("span", { className: "scui-session-path-leading", children: path.leading }),
2354
2351
  path.separator ? /* @__PURE__ */ jsx8("span", { className: "scui-session-path-separator", children: path.separator }) : null,
2355
2352
  path.trailing ? /* @__PURE__ */ jsx8("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
2356
2353
  ] }) : null,
2357
- working || preview || unreadCount ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-preview", children: [
2354
+ working || preview ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-preview", children: [
2358
2355
  working ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-working", "aria-hidden": "true", children: [
2359
2356
  /* @__PURE__ */ jsx8("i", {}),
2360
2357
  /* @__PURE__ */ jsx8("i", {}),
2361
2358
  /* @__PURE__ */ jsx8("i", {})
2362
2359
  ] }) : null,
2363
- preview || working ? /* @__PURE__ */ jsx8("small", { children: preview || "Working\u2026" }) : null,
2364
- unreadCount ? /* @__PURE__ */ jsx8("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2360
+ preview || working ? /* @__PURE__ */ jsx8("small", { children: preview || "Working\u2026" }) : null
2365
2361
  ] }) : null,
2366
2362
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx8("em", { children: state.attachError.message }) : null
2367
2363
  ] })
2368
2364
  ] }),
2369
- row.subagentCount ? /* @__PURE__ */ jsxs7("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2370
- /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 14 }),
2371
- row.subagentCount,
2372
- " ",
2373
- row.subagentCount === 1 ? "agent" : "agents"
2365
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs7("span", { className: "scui-session-rail", children: [
2366
+ /* @__PURE__ */ jsxs7("span", { className: "scui-session-rail-meta", children: [
2367
+ row.subagentCount ? /* @__PURE__ */ jsxs7("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2368
+ /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 14 }),
2369
+ /* @__PURE__ */ jsx8("span", { children: row.subagentCount })
2370
+ ] }) : null,
2371
+ age ? /* @__PURE__ */ jsx8("time", { children: age }) : null
2372
+ ] }),
2373
+ unreadCount ? /* @__PURE__ */ jsx8("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2374
2374
  ] }) : null
2375
2375
  ] });
2376
2376
  }
@@ -2450,7 +2450,6 @@ function SessionList({ state, adapter, onOpen, onOpenSubagents, onNew, onClose,
2450
2450
  // src/subagents.jsx
2451
2451
  import { useEffect as useEffect7, useRef as useRef6, useState as useState5 } from "react";
2452
2452
  import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2453
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
2454
2453
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
2455
2454
  function activityLabel(activity, age) {
2456
2455
  if (activity === "needs-input") return "Needs input";
@@ -2484,13 +2483,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
2484
2483
  }
2485
2484
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2486
2485
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
2487
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
2488
2486
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
2489
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
2490
- const [finishedOpen, setFinishedOpen] = useState5(false);
2487
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
2488
+ const [historyOpen, setHistoryOpen] = useState5(false);
2491
2489
  const backButton = useRef6(null);
2492
2490
  useEffect7(() => {
2493
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
2491
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
2494
2492
  }, [inspector.parentKey, inspector.status]);
2495
2493
  useEffect7(() => {
2496
2494
  backButton.current?.focus({ preventScroll: true });
@@ -2520,8 +2518,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2520
2518
  /* @__PURE__ */ jsx9("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx9(UiIcon, { name: "back", size: 17 }) }),
2521
2519
  selected ? /* @__PURE__ */ jsx9(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx9(UiIcon, { name: "agents", size: 20 }),
2522
2520
  /* @__PURE__ */ jsxs8("span", { className: "scui-head-copy", children: [
2523
- /* @__PURE__ */ jsx9("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
2524
- /* @__PURE__ */ jsx9("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
2521
+ /* @__PURE__ */ jsx9("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
2522
+ /* @__PURE__ */ jsx9("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
2525
2523
  ] })
2526
2524
  ] }),
2527
2525
  inspector.status === "loading" ? /* @__PURE__ */ jsxs8("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -2533,15 +2531,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2533
2531
  ] }) : null,
2534
2532
  inspector.error ? /* @__PURE__ */ jsx9("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
2535
2533
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs8("div", { className: "scui-subagent-rows", children: [
2536
- /* @__PURE__ */ jsx9(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
2537
2534
  /* @__PURE__ */ jsx9(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
2538
- finished.length ? /* @__PURE__ */ jsxs8("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
2535
+ history.length ? /* @__PURE__ */ jsxs8("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
2539
2536
  /* @__PURE__ */ jsxs8("summary", { children: [
2540
- /* @__PURE__ */ jsx9("span", { children: "Finished" }),
2541
- /* @__PURE__ */ jsx9("small", { children: finished.length }),
2537
+ /* @__PURE__ */ jsx9("span", { children: "History" }),
2538
+ /* @__PURE__ */ jsx9("small", { children: history.length }),
2542
2539
  /* @__PURE__ */ jsx9(UiIcon, { name: "chevron", size: 14 })
2543
2540
  ] }),
2544
- /* @__PURE__ */ jsx9("div", { children: finished.map((row) => /* @__PURE__ */ jsx9(SubagentRow, { row, inspector, adapter }, row.key)) })
2541
+ /* @__PURE__ */ jsx9("div", { children: history.map((row) => /* @__PURE__ */ jsx9(SubagentRow, { row, inspector, adapter }, row.key)) })
2545
2542
  ] }) : null
2546
2543
  ] }) : null,
2547
2544
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx9("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
@@ -2259,32 +2259,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
2259
2259
  /* @__PURE__ */ jsxs6("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
2260
2260
  /* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
2261
2261
  /* @__PURE__ */ jsxs6("span", { className: "scui-session-copy", children: [
2262
- /* @__PURE__ */ jsxs6("span", { className: "scui-session-title", children: [
2263
- /* @__PURE__ */ jsx7("strong", { children: title }),
2264
- /* @__PURE__ */ jsx7("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx7("time", { children: age }) : null })
2265
- ] }),
2262
+ /* @__PURE__ */ jsx7("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx7("strong", { children: title }) }),
2266
2263
  path.complete ? /* @__PURE__ */ jsxs6("small", { className: "scui-session-path", title: row.cwd, children: [
2267
2264
  /* @__PURE__ */ jsx7("span", { className: "scui-session-path-leading", children: path.leading }),
2268
2265
  path.separator ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-separator", children: path.separator }) : null,
2269
2266
  path.trailing ? /* @__PURE__ */ jsx7("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
2270
2267
  ] }) : null,
2271
- working || preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2268
+ working || preview ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-preview", children: [
2272
2269
  working ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-working", "aria-hidden": "true", children: [
2273
2270
  /* @__PURE__ */ jsx7("i", {}),
2274
2271
  /* @__PURE__ */ jsx7("i", {}),
2275
2272
  /* @__PURE__ */ jsx7("i", {})
2276
2273
  ] }) : null,
2277
- preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null,
2278
- unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2274
+ preview || working ? /* @__PURE__ */ jsx7("small", { children: preview || "Working\u2026" }) : null
2279
2275
  ] }) : null,
2280
2276
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
2281
2277
  ] })
2282
2278
  ] }),
2283
- row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2284
- /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2285
- row.subagentCount,
2286
- " ",
2287
- row.subagentCount === 1 ? "agent" : "agents"
2279
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail", children: [
2280
+ /* @__PURE__ */ jsxs6("span", { className: "scui-session-rail-meta", children: [
2281
+ row.subagentCount ? /* @__PURE__ */ jsxs6("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
2282
+ /* @__PURE__ */ jsx7(UiIcon, { name: "agents", size: 14 }),
2283
+ /* @__PURE__ */ jsx7("span", { children: row.subagentCount })
2284
+ ] }) : null,
2285
+ age ? /* @__PURE__ */ jsx7("time", { children: age }) : null
2286
+ ] }),
2287
+ unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
2288
2288
  ] }) : null
2289
2289
  ] });
2290
2290
  }
@@ -2364,7 +2364,6 @@ function SessionList({ state, adapter, onOpen, onOpenSubagents, onNew, onClose,
2364
2364
  // src/subagents.jsx
2365
2365
  import { useEffect as useEffect7, useRef as useRef6, useState as useState5 } from "react";
2366
2366
  import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2367
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
2368
2367
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
2369
2368
  function activityLabel(activity, age) {
2370
2369
  if (activity === "needs-input") return "Needs input";
@@ -2398,13 +2397,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
2398
2397
  }
2399
2398
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2400
2399
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
2401
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
2402
2400
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
2403
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
2404
- const [finishedOpen, setFinishedOpen] = useState5(false);
2401
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
2402
+ const [historyOpen, setHistoryOpen] = useState5(false);
2405
2403
  const backButton = useRef6(null);
2406
2404
  useEffect7(() => {
2407
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
2405
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
2408
2406
  }, [inspector.parentKey, inspector.status]);
2409
2407
  useEffect7(() => {
2410
2408
  backButton.current?.focus({ preventScroll: true });
@@ -2434,8 +2432,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2434
2432
  /* @__PURE__ */ jsx8("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx8(UiIcon, { name: "back", size: 17 }) }),
2435
2433
  selected ? /* @__PURE__ */ jsx8(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx8(UiIcon, { name: "agents", size: 20 }),
2436
2434
  /* @__PURE__ */ jsxs7("span", { className: "scui-head-copy", children: [
2437
- /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
2438
- /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
2435
+ /* @__PURE__ */ jsx8("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
2436
+ /* @__PURE__ */ jsx8("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
2439
2437
  ] })
2440
2438
  ] }),
2441
2439
  inspector.status === "loading" ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -2447,15 +2445,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
2447
2445
  ] }) : null,
2448
2446
  inspector.error ? /* @__PURE__ */ jsx8("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
2449
2447
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs7("div", { className: "scui-subagent-rows", children: [
2450
- /* @__PURE__ */ jsx8(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
2451
2448
  /* @__PURE__ */ jsx8(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
2452
- finished.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
2449
+ history.length ? /* @__PURE__ */ jsxs7("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
2453
2450
  /* @__PURE__ */ jsxs7("summary", { children: [
2454
- /* @__PURE__ */ jsx8("span", { children: "Finished" }),
2455
- /* @__PURE__ */ jsx8("small", { children: finished.length }),
2451
+ /* @__PURE__ */ jsx8("span", { children: "History" }),
2452
+ /* @__PURE__ */ jsx8("small", { children: history.length }),
2456
2453
  /* @__PURE__ */ jsx8(UiIcon, { name: "chevron", size: 14 })
2457
2454
  ] }),
2458
- /* @__PURE__ */ jsx8("div", { children: finished.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2455
+ /* @__PURE__ */ jsx8("div", { children: history.map((row) => /* @__PURE__ */ jsx8(SubagentRow, { row, inspector, adapter }, row.key)) })
2459
2456
  ] }) : null
2460
2457
  ] }) : null,
2461
2458
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx8("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
@@ -351,32 +351,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
351
351
  /* @__PURE__ */ jsxs5("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
352
352
  /* @__PURE__ */ jsx6(HarnessLogo, { id: row.harness, activity, size: 34 }),
353
353
  /* @__PURE__ */ jsxs5("span", { className: "scui-session-copy", children: [
354
- /* @__PURE__ */ jsxs5("span", { className: "scui-session-title", children: [
355
- /* @__PURE__ */ jsx6("strong", { children: title }),
356
- /* @__PURE__ */ jsx6("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx6("time", { children: age }) : null })
357
- ] }),
354
+ /* @__PURE__ */ jsx6("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx6("strong", { children: title }) }),
358
355
  path.complete ? /* @__PURE__ */ jsxs5("small", { className: "scui-session-path", title: row.cwd, children: [
359
356
  /* @__PURE__ */ jsx6("span", { className: "scui-session-path-leading", children: path.leading }),
360
357
  path.separator ? /* @__PURE__ */ jsx6("span", { className: "scui-session-path-separator", children: path.separator }) : null,
361
358
  path.trailing ? /* @__PURE__ */ jsx6("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
362
359
  ] }) : null,
363
- working || preview || unreadCount ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-preview", children: [
360
+ working || preview ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-preview", children: [
364
361
  working ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-working", "aria-hidden": "true", children: [
365
362
  /* @__PURE__ */ jsx6("i", {}),
366
363
  /* @__PURE__ */ jsx6("i", {}),
367
364
  /* @__PURE__ */ jsx6("i", {})
368
365
  ] }) : null,
369
- preview || working ? /* @__PURE__ */ jsx6("small", { children: preview || "Working\u2026" }) : null,
370
- unreadCount ? /* @__PURE__ */ jsx6("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
366
+ preview || working ? /* @__PURE__ */ jsx6("small", { children: preview || "Working\u2026" }) : null
371
367
  ] }) : null,
372
368
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx6("em", { children: state.attachError.message }) : null
373
369
  ] })
374
370
  ] }),
375
- row.subagentCount ? /* @__PURE__ */ jsxs5("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
376
- /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 14 }),
377
- row.subagentCount,
378
- " ",
379
- row.subagentCount === 1 ? "agent" : "agents"
371
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-rail", children: [
372
+ /* @__PURE__ */ jsxs5("span", { className: "scui-session-rail-meta", children: [
373
+ row.subagentCount ? /* @__PURE__ */ jsxs5("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
374
+ /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 14 }),
375
+ /* @__PURE__ */ jsx6("span", { children: row.subagentCount })
376
+ ] }) : null,
377
+ age ? /* @__PURE__ */ jsx6("time", { children: age }) : null
378
+ ] }),
379
+ unreadCount ? /* @__PURE__ */ jsx6("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
380
380
  ] }) : null
381
381
  ] });
382
382
  }
@@ -1405,7 +1405,6 @@ function HarnessLogo({ id, activity, size = 28, onMissingLogo }) {
1405
1405
 
1406
1406
  // src/subagents.jsx
1407
1407
  import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1408
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
1409
1408
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
1410
1409
  function activityLabel(activity, age) {
1411
1410
  if (activity === "needs-input") return "Needs input";
@@ -1439,13 +1438,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
1439
1438
  }
1440
1439
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1441
1440
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
1442
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
1443
1441
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
1444
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
1445
- const [finishedOpen, setFinishedOpen] = useState3(false);
1442
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
1443
+ const [historyOpen, setHistoryOpen] = useState3(false);
1446
1444
  const backButton = useRef4(null);
1447
1445
  useEffect5(() => {
1448
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
1446
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
1449
1447
  }, [inspector.parentKey, inspector.status]);
1450
1448
  useEffect5(() => {
1451
1449
  backButton.current?.focus({ preventScroll: true });
@@ -1475,8 +1473,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1475
1473
  /* @__PURE__ */ jsx6("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx6(UiIcon, { name: "back", size: 17 }) }),
1476
1474
  selected ? /* @__PURE__ */ jsx6(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 20 }),
1477
1475
  /* @__PURE__ */ jsxs5("span", { className: "scui-head-copy", children: [
1478
- /* @__PURE__ */ jsx6("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
1479
- /* @__PURE__ */ jsx6("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
1476
+ /* @__PURE__ */ jsx6("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
1477
+ /* @__PURE__ */ jsx6("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
1480
1478
  ] })
1481
1479
  ] }),
1482
1480
  inspector.status === "loading" ? /* @__PURE__ */ jsxs5("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -1488,15 +1486,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1488
1486
  ] }) : null,
1489
1487
  inspector.error ? /* @__PURE__ */ jsx6("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
1490
1488
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs5("div", { className: "scui-subagent-rows", children: [
1491
- /* @__PURE__ */ jsx6(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
1492
1489
  /* @__PURE__ */ jsx6(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
1493
- finished.length ? /* @__PURE__ */ jsxs5("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
1490
+ history.length ? /* @__PURE__ */ jsxs5("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
1494
1491
  /* @__PURE__ */ jsxs5("summary", { children: [
1495
- /* @__PURE__ */ jsx6("span", { children: "Finished" }),
1496
- /* @__PURE__ */ jsx6("small", { children: finished.length }),
1492
+ /* @__PURE__ */ jsx6("span", { children: "History" }),
1493
+ /* @__PURE__ */ jsx6("small", { children: history.length }),
1497
1494
  /* @__PURE__ */ jsx6(UiIcon, { name: "chevron", size: 14 })
1498
1495
  ] }),
1499
- /* @__PURE__ */ jsx6("div", { children: finished.map((row) => /* @__PURE__ */ jsx6(SubagentRow, { row, inspector, adapter }, row.key)) })
1496
+ /* @__PURE__ */ jsx6("div", { children: history.map((row) => /* @__PURE__ */ jsx6(SubagentRow, { row, inspector, adapter }, row.key)) })
1500
1497
  ] }) : null
1501
1498
  ] }) : null,
1502
1499
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx6("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,
package/sessions.mjs CHANGED
@@ -351,32 +351,32 @@ function SessionRow({ row, state, onOpen, onOpenSubagents, now = Date.now() }) {
351
351
  /* @__PURE__ */ jsxs5("button", { className: "scui-session-main", "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${row.writable ? "" : " \xB7 Read-only"}${working ? " \xB7 Working" : ""}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${age ? ` \xB7 ${age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
352
352
  /* @__PURE__ */ jsx6(HarnessLogo, { id: row.harness, activity, size: 34 }),
353
353
  /* @__PURE__ */ jsxs5("span", { className: "scui-session-copy", children: [
354
- /* @__PURE__ */ jsxs5("span", { className: "scui-session-title", children: [
355
- /* @__PURE__ */ jsx6("strong", { children: title }),
356
- /* @__PURE__ */ jsx6("span", { className: "scui-session-meta", children: age ? /* @__PURE__ */ jsx6("time", { children: age }) : null })
357
- ] }),
354
+ /* @__PURE__ */ jsx6("span", { className: "scui-session-title", children: /* @__PURE__ */ jsx6("strong", { children: title }) }),
358
355
  path.complete ? /* @__PURE__ */ jsxs5("small", { className: "scui-session-path", title: row.cwd, children: [
359
356
  /* @__PURE__ */ jsx6("span", { className: "scui-session-path-leading", children: path.leading }),
360
357
  path.separator ? /* @__PURE__ */ jsx6("span", { className: "scui-session-path-separator", children: path.separator }) : null,
361
358
  path.trailing ? /* @__PURE__ */ jsx6("span", { className: "scui-session-path-trailing", children: path.trailing }) : null
362
359
  ] }) : null,
363
- working || preview || unreadCount ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-preview", children: [
360
+ working || preview ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-preview", children: [
364
361
  working ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-working", "aria-hidden": "true", children: [
365
362
  /* @__PURE__ */ jsx6("i", {}),
366
363
  /* @__PURE__ */ jsx6("i", {}),
367
364
  /* @__PURE__ */ jsx6("i", {})
368
365
  ] }) : null,
369
- preview || working ? /* @__PURE__ */ jsx6("small", { children: preview || "Working\u2026" }) : null,
370
- unreadCount ? /* @__PURE__ */ jsx6("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
366
+ preview || working ? /* @__PURE__ */ jsx6("small", { children: preview || "Working\u2026" }) : null
371
367
  ] }) : null,
372
368
  state.attachError?.key === row.key ? /* @__PURE__ */ jsx6("em", { children: state.attachError.message }) : null
373
369
  ] })
374
370
  ] }),
375
- row.subagentCount ? /* @__PURE__ */ jsxs5("button", { className: "scui-session-agents", type: "button", "aria-label": `Inspect ${row.subagentCount} subagents in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
376
- /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 14 }),
377
- row.subagentCount,
378
- " ",
379
- row.subagentCount === 1 ? "agent" : "agents"
371
+ row.subagentCount || age || unreadCount ? /* @__PURE__ */ jsxs5("span", { className: "scui-session-rail", children: [
372
+ /* @__PURE__ */ jsxs5("span", { className: "scui-session-rail-meta", children: [
373
+ row.subagentCount ? /* @__PURE__ */ jsxs5("button", { className: "scui-session-agents", type: "button", title: `${row.subagentCount} agent sessions`, "aria-label": `Open ${row.subagentCount} agent sessions in ${title}`, onClick: () => onOpenSubagents?.(row), children: [
374
+ /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 14 }),
375
+ /* @__PURE__ */ jsx6("span", { children: row.subagentCount })
376
+ ] }) : null,
377
+ age ? /* @__PURE__ */ jsx6("time", { children: age }) : null
378
+ ] }),
379
+ unreadCount ? /* @__PURE__ */ jsx6("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
380
380
  ] }) : null
381
381
  ] });
382
382
  }
package/styles.css CHANGED
@@ -102,18 +102,18 @@
102
102
  .scui-search { display:flex; flex:1; min-width:0; align-items:center; gap:7px; padding:6px 8px; border:1px solid var(--scui-border); border-radius:8px; background:var(--scui-bg-raised); color:var(--scui-muted) }
103
103
  .scui-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--scui-fg) }
104
104
  .scui-session-rows { flex:1; min-height:0; overflow:auto; padding:0 6px 8px }
105
- .scui-session { display:flex; width:100%; align-items:center; border-radius:7px; background:transparent }
105
+ .scui-session { display:grid; grid-template-columns:minmax(0,1fr) auto; width:100%; align-items:stretch; border-radius:7px; background:transparent }
106
106
  .scui-session:hover,.scui-session[data-active="true"] { background:var(--scui-fill) }
107
- .scui-session-main { display:flex; min-width:0; flex:1; align-items:flex-start; gap:9px; padding:8px; border:0; background:transparent; text-align:left; cursor:pointer }
108
- .scui-session-agents { display:flex; flex:none; align-items:center; gap:4px; margin-right:6px; padding:4px 6px; border:0; border-radius:6px; background:transparent; color:var(--scui-muted); cursor:pointer; font-size:9px; white-space:nowrap }.scui-session-agents:hover { background:var(--scui-bg-raised); color:var(--scui-fg) }
107
+ .scui-session-main { display:flex; min-width:0; align-items:flex-start; gap:9px; padding:8px; border:0; background:transparent; text-align:left; cursor:pointer }
108
+ .scui-session-rail { display:grid; min-width:26px; align-content:space-between; justify-items:end; gap:4px; padding:8px 8px 8px 0 }.scui-session-rail-meta { display:flex; align-items:center; justify-content:flex-end; gap:4px }.scui-session-rail time { color:var(--scui-muted); font-size:10px; white-space:nowrap }.scui-session-rail > b { display:grid; min-width:16px; height:16px; padding:0 4px; place-items:center; border-radius:8px; background:var(--scui-accent); color:var(--scui-bg); font-size:9px; line-height:16px }
109
+ .scui-session-agents { display:flex; flex:none; align-items:center; gap:2px; padding:2px 4px; border:0; border-radius:6px; background:transparent; color:var(--scui-muted); cursor:pointer; font-size:9px; font-variant-numeric:tabular-nums; white-space:nowrap }.scui-session-agents:hover { background:var(--scui-bg-raised); color:var(--scui-fg) }
109
110
  .scui-session-copy { display:grid; flex:1; min-width:0; gap:1px }
110
111
  .scui-session-copy > span { display:flex; align-items:baseline; gap:7px; min-width:0 }
111
112
  .scui-session-copy strong,.scui-session-copy span > small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
112
- .scui-session-copy strong { flex:1; font-size:12.5px }.scui-session-meta { display:flex; flex:none; align-items:center }.scui-session-title time { color:var(--scui-muted); font-size:10px }.scui-session-working { display:flex; flex:none; width:14px; height:8px; align-self:center; align-items:center; justify-content:space-between; color:var(--scui-muted) }.scui-session-working > i { width:3px; height:3px; border-radius:50%; background:currentColor; animation:scui-session-dots 1.2s ease-in-out infinite }.scui-session-working > i:nth-child(2) { animation-delay:.15s }.scui-session-working > i:nth-child(3) { animation-delay:.3s }
113
+ .scui-session-copy strong { flex:1; font-size:12.5px }.scui-session-working { display:flex; flex:none; width:14px; height:8px; align-self:center; align-items:center; justify-content:space-between; color:var(--scui-muted) }.scui-session-working > i { width:3px; height:3px; border-radius:50%; background:currentColor; animation:scui-session-dots 1.2s ease-in-out infinite }.scui-session-working > i:nth-child(2) { animation-delay:.15s }.scui-session-working > i:nth-child(3) { animation-delay:.3s }
113
114
  .scui-session-path { display:flex; min-width:0; overflow:hidden; color:var(--scui-muted); font-size:9.5px; white-space:nowrap }
114
115
  .scui-session-path-leading { flex:0 1 auto; overflow:hidden; text-overflow:ellipsis }.scui-session-path-separator { flex:none }.scui-session-path-trailing { flex:none; max-width:58%; overflow:hidden; direction:rtl; text-align:left; text-overflow:ellipsis; unicode-bidi:plaintext }
115
- .scui-session-preview small { flex:1; min-width:0; color:var(--scui-muted); font-size:10.5px }.scui-session-preview b { display:grid; flex:none; min-width:16px; height:16px; padding:0 4px; place-items:center; border-radius:8px; background:var(--scui-accent); color:var(--scui-bg); font-size:9px; line-height:16px }
116
- .scui-session[data-writable="false"] .scui-session-preview b { background:var(--scui-muted) }
116
+ .scui-session-preview small { flex:1; min-width:0; color:var(--scui-muted); font-size:10.5px }.scui-session[data-writable="false"] .scui-session-rail > b { background:var(--scui-muted) }
117
117
  .scui-session-copy em { overflow:hidden; color:var(--scui-danger); font-size:10px; font-style:normal; text-overflow:ellipsis; white-space:nowrap }
118
118
  .scui-load { display:block; margin:7px auto; padding:5px 10px; border:1px solid var(--scui-border); border-radius:8px; background:var(--scui-bg-raised); color:var(--scui-muted); cursor:pointer }.scui-load:disabled { opacity:.65; cursor:default }
119
119
 
package/subagents.mjs CHANGED
@@ -1405,7 +1405,6 @@ function HarnessLogo({ id, activity, size = 28, onMissingLogo }) {
1405
1405
 
1406
1406
  // src/subagents.jsx
1407
1407
  import { jsx as jsx6, jsxs as jsxs5 } from "preact/jsx-runtime";
1408
- var ATTENTION_ACTIVITY = /* @__PURE__ */ new Set(["needs-input", "failed", "unseen"]);
1409
1408
  var ACTIVE_ACTIVITY = /* @__PURE__ */ new Set(["working", "running", "recent"]);
1410
1409
  function activityLabel(activity, age) {
1411
1410
  if (activity === "needs-input") return "Needs input";
@@ -1439,13 +1438,12 @@ function SubagentSection({ label, rows, inspector, adapter }) {
1439
1438
  }
1440
1439
  function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1441
1440
  const selected = inspector.items.find((row) => row.key === inspector.selectedKey) ?? null;
1442
- const attention = inspector.items.filter((row) => ATTENTION_ACTIVITY.has(row.activity));
1443
1441
  const active = inspector.items.filter((row) => ACTIVE_ACTIVITY.has(row.activity));
1444
- const finished = inspector.items.filter((row) => !ATTENTION_ACTIVITY.has(row.activity) && !ACTIVE_ACTIVITY.has(row.activity));
1445
- const [finishedOpen, setFinishedOpen] = useState3(false);
1442
+ const history = inspector.items.filter((row) => !ACTIVE_ACTIVITY.has(row.activity));
1443
+ const [historyOpen, setHistoryOpen] = useState3(false);
1446
1444
  const backButton = useRef4(null);
1447
1445
  useEffect5(() => {
1448
- if (inspector.status === "ready" && !attention.length && !active.length) setFinishedOpen(true);
1446
+ if (inspector.status === "ready" && !active.length) setHistoryOpen(true);
1449
1447
  }, [inspector.parentKey, inspector.status]);
1450
1448
  useEffect5(() => {
1451
1449
  backButton.current?.focus({ preventScroll: true });
@@ -1475,8 +1473,8 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1475
1473
  /* @__PURE__ */ jsx6("button", { ref: backButton, type: "button", "aria-label": selected ? "Back to agents" : "Back to chats", onClick: back, children: /* @__PURE__ */ jsx6(UiIcon, { name: "back", size: 17 }) }),
1476
1474
  selected ? /* @__PURE__ */ jsx6(HarnessLogo, { id: selected.harness, activity: selected.activity, size: 24 }) : /* @__PURE__ */ jsx6(UiIcon, { name: "agents", size: 20 }),
1477
1475
  /* @__PURE__ */ jsxs5("span", { className: "scui-head-copy", children: [
1478
- /* @__PURE__ */ jsx6("strong", { children: selected ? sessionDisplayName(selected) : `${inspector.items.length || ""} ${inspector.items.length === 1 ? "agent" : "agents"}`.trim() }),
1479
- /* @__PURE__ */ jsx6("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : inspector.parentTitle })
1476
+ /* @__PURE__ */ jsx6("strong", { children: selected ? sessionDisplayName(selected) : "Agents" }),
1477
+ /* @__PURE__ */ jsx6("small", { children: selected ? `${harnessDisplayName(selected.harness)} \xB7 Read-only` : `${inspector.items.length} ${inspector.items.length === 1 ? "session" : "sessions"} \xB7 ${inspector.parentTitle}` })
1480
1478
  ] })
1481
1479
  ] }),
1482
1480
  inspector.status === "loading" ? /* @__PURE__ */ jsxs5("div", { className: "scui-subagents-loading", role: "status", children: [
@@ -1488,15 +1486,14 @@ function SubagentInspectorContent({ state, adapter, onClose, inspector }) {
1488
1486
  ] }) : null,
1489
1487
  inspector.error ? /* @__PURE__ */ jsx6("div", { className: "scui-error", role: "alert", children: inspector.error }) : null,
1490
1488
  !selected && inspector.status === "ready" && inspector.items.length ? /* @__PURE__ */ jsxs5("div", { className: "scui-subagent-rows", children: [
1491
- /* @__PURE__ */ jsx6(SubagentSection, { label: "Needs attention", rows: attention, inspector, adapter }),
1492
1489
  /* @__PURE__ */ jsx6(SubagentSection, { label: "Active", rows: active, inspector, adapter }),
1493
- finished.length ? /* @__PURE__ */ jsxs5("details", { className: "scui-subagent-history", open: finishedOpen, onToggle: (event) => setFinishedOpen(event.currentTarget.open), children: [
1490
+ history.length ? /* @__PURE__ */ jsxs5("details", { className: "scui-subagent-history", open: historyOpen, onToggle: (event) => setHistoryOpen(event.currentTarget.open), children: [
1494
1491
  /* @__PURE__ */ jsxs5("summary", { children: [
1495
- /* @__PURE__ */ jsx6("span", { children: "Finished" }),
1496
- /* @__PURE__ */ jsx6("small", { children: finished.length }),
1492
+ /* @__PURE__ */ jsx6("span", { children: "History" }),
1493
+ /* @__PURE__ */ jsx6("small", { children: history.length }),
1497
1494
  /* @__PURE__ */ jsx6(UiIcon, { name: "chevron", size: 14 })
1498
1495
  ] }),
1499
- /* @__PURE__ */ jsx6("div", { children: finished.map((row) => /* @__PURE__ */ jsx6(SubagentRow, { row, inspector, adapter }, row.key)) })
1496
+ /* @__PURE__ */ jsx6("div", { children: history.map((row) => /* @__PURE__ */ jsx6(SubagentRow, { row, inspector, adapter }, row.key)) })
1500
1497
  ] }) : null
1501
1498
  ] }) : null,
1502
1499
  !selected && inspector.status === "ready" && !inspector.items.length ? /* @__PURE__ */ jsx6("div", { className: "scui-empty", children: "No native child sessions were found." }) : null,