From c488cdab34c5d4fe13cb5fe851b10426927e5735 Mon Sep 17 00:00:00 2001 From: tt-a1i Date: Sun, 23 Aug 2026 10:31:36 +0800 Subject: [PATCH 1/3] feat(ui): launch marker for the subagent spawn card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dim "+" read as list arithmetic rather than a launch; a small triangle (▸) says "started" without shouting, and the strip spinner still carries the running state from there. --- extensions/subagents/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/subagents/index.ts b/extensions/subagents/index.ts index e2ba73bd..dadaac35 100644 --- a/extensions/subagents/index.ts +++ b/extensions/subagents/index.ts @@ -810,10 +810,10 @@ export default function (pi: ExtensionAPI) { const meta = [details.harness, details.model] .filter(Boolean) .join(" \u00b7 "); - // A spawn adds an agent to the pool: a quiet plus, then the strip's - // spinner carries the running state from here on. + // A spawn launches an agent into the pool: a quiet launch marker, then + // the strip's spinner carries the running state from here on. return new Text( - `${theme.fg("dim", "+")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, + `${theme.fg("dim", "▸")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, 0, 0, ); From 50008db659d8eff50bd4014a98deb8dd395b8ab7 Mon Sep 17 00:00:00 2001 From: tt-a1i Date: Sun, 23 Aug 2026 10:41:00 +0800 Subject: [PATCH 2/3] feat(ui): outbound arrow for the spawn marker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The triangle read as a generic bullet; ↗ says the agent was launched out of the parent, with a lighter stroke on the dark card. --- extensions/subagents/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/subagents/index.ts b/extensions/subagents/index.ts index dadaac35..2b0f2358 100644 --- a/extensions/subagents/index.ts +++ b/extensions/subagents/index.ts @@ -810,10 +810,10 @@ export default function (pi: ExtensionAPI) { const meta = [details.harness, details.model] .filter(Boolean) .join(" \u00b7 "); - // A spawn launches an agent into the pool: a quiet launch marker, then - // the strip's spinner carries the running state from here on. + // A spawn launches an agent out of the parent: a quiet outbound arrow, + // then the strip's spinner carries the running state from here on. return new Text( - `${theme.fg("dim", "▸")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, + `${theme.fg("dim", "↗")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, 0, 0, ); From 239160a8842f889e62aeb746702a33f10af4cbd9 Mon Sep 17 00:00:00 2001 From: tt-a1i Date: Sun, 23 Aug 2026 11:06:24 +0800 Subject: [PATCH 3/3] feat(ui): the spawn card speaks in verbs, not glyphs A spawn is a one-off event, not a state, so neither + nor arrows quite fit. The card now opens with the same verb language as the activity rows (Wrote / Ran / Spawned), and the strip spinner still owns the running state from there. --- extensions/subagents/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/extensions/subagents/index.ts b/extensions/subagents/index.ts index 2b0f2358..e0c042dd 100644 --- a/extensions/subagents/index.ts +++ b/extensions/subagents/index.ts @@ -810,10 +810,11 @@ export default function (pi: ExtensionAPI) { const meta = [details.harness, details.model] .filter(Boolean) .join(" \u00b7 "); - // A spawn launches an agent out of the parent: a quiet outbound arrow, - // then the strip's spinner carries the running state from here on. + // A spawn is an event, not a state, so it speaks in the activity rows' + // verb language ("Wrote" / "Ran" / "Spawned") rather than a glyph; the + // strip's spinner carries the running state from here on. return new Text( - `${theme.fg("dim", "↗")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, + `${theme.fg("toolTitle", "Spawned")} ${theme.bold(details.title ?? details.id)} ${theme.fg("dim", meta)}`, 0, 0, );