diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 4e67630c3..cdb069976 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -8,21 +8,16 @@ ### Changed +- Simplified status line subagent display by removing running state and hub hint indicators + - Updated online title, memory, and classification tasks to prioritize the `tiny` model role ### Fixed - Prevented auto-generated session titles from accidentally re-shouting user all-caps text - - Fixed auto-generated session titles re-shouting emphatic ALL-CAPS from the user's message. `reconcileTitleCasing` (`packages/coding-agent/src/tiny/text.ts`) restored any source token with interior/repeated uppercase, so shouting like "unify ALL ERROR HANDLING" turned the model's clean sentence case ("Unify error handling…") back into "Unify ERROR HANDLING…". Casing is now restored only from mixed-case identifiers the user typed deliberately (`TinyVMM`, `iOS`, `IDs`); pure all-caps is left to the model's own output. -### Fixed - - Fixed Tavily web search with recency filters to retry once without `time_range` when Tavily returns HTTP 200 with no renderable content. ([#3633](https://github.com/can1357/oh-my-pi/issues/3633)) -### Fixed - - Fixed TUI thought stream stalling and `ui.loop-blocked` warnings during subagent-heavy runs by replacing the mid-run compaction persistence check's O(n²) branch rebuild + per-pair `JSON.stringify` content compare with a one-shot persistence-key snapshot. Content equality is preserved as the rare collision tiebreaker. ([#3629](https://github.com/can1357/oh-my-pi/issues/3629)) -### Fixed - - Fixed marketplace-installed plugins appearing in both the npm plugin list and the OMP extension-package status provider. ([#3628](https://github.com/can1357/oh-my-pi/issues/3628)) ## [16.2.1] - 2026-06-27 diff --git a/packages/coding-agent/src/modes/components/status-line/component.ts b/packages/coding-agent/src/modes/components/status-line/component.ts index a056cf0f2..dc9143bce 100644 --- a/packages/coding-agent/src/modes/components/status-line/component.ts +++ b/packages/coding-agent/src/modes/components/status-line/component.ts @@ -200,7 +200,6 @@ export class StatusLineComponent implements Component { #autoCompactEnabled: boolean = true; #hookStatuses: Map = new Map(); #subagentCount: number = 0; - #subagentHubHint: string | undefined; #sessionStartTime: number = Date.now(); #planModeStatus: { enabled: boolean; paused: boolean } | null = null; #loopModeStatus: { enabled: boolean } | null = null; @@ -306,12 +305,6 @@ export class StatusLineComponent implements Component { this.#subagentCount = count; } - /** Hub key label shown in the forced running-subagents badge. */ - setSubagentHubHint(hint: string | undefined): void { - const trimmed = hint?.trim(); - this.#subagentHubHint = trimmed ? trimmed : undefined; - } - /** Active subagent count as currently displayed (collab state mirroring). */ get subagentCount(): number { return this.#subagentCount; @@ -925,8 +918,7 @@ export class StatusLineComponent implements Component { #subagentBadgeText(): string | undefined { if (this.#subagentCount === 0) return undefined; const noun = this.#subagentCount === 1 ? "agent" : "agents"; - const hubHint = this.#subagentHubHint ? ` — ${this.#subagentHubHint} hub` : " — Agent Hub"; - return theme.fg("statusLineSubagents", `${theme.icon.agents} ${this.#subagentCount} ${noun} running${hubHint}`); + return theme.fg("statusLineSubagents", `${theme.icon.agents} ${this.#subagentCount} ${noun}`); } #buildStatusLine(width: number): string { diff --git a/packages/coding-agent/test/status-line-settings-cache.test.ts b/packages/coding-agent/test/status-line-settings-cache.test.ts index 944c60829..fc291455a 100644 --- a/packages/coding-agent/test/status-line-settings-cache.test.ts +++ b/packages/coding-agent/test/status-line-settings-cache.test.ts @@ -163,8 +163,9 @@ describe("StatusLineComponent effective settings cache", () => { component.setSubagentHubHint("Alt+A"); const content = stripVTControlCharacters(component.getTopBorder(120).content); - expect(content).toContain("2 agents running"); - expect(content).toContain("Alt+A hub"); + expect(content).toContain("2 agents"); + expect(content).not.toContain("running"); + expect(content).not.toContain("Alt+A hub"); }); it("keeps plan and hook state dynamic without settings invalidation", () => {