diff --git a/packages/coding-agent/src/modes/components/tree-selector.ts b/packages/coding-agent/src/modes/components/tree-selector.ts index 4e900b9f8..d83150eef 100644 --- a/packages/coding-agent/src/modes/components/tree-selector.ts +++ b/packages/coding-agent/src/modes/components/tree-selector.ts @@ -398,6 +398,34 @@ class TreeList implements Component { case "label": parts.push("label", entry.label ?? ""); break; + case "service_tier_change": + parts.push("service tier"); + if (entry.serviceTier) { + const serviceTier = entry.serviceTier; + for (const family in serviceTier) { + const tier = serviceTier[family as keyof typeof serviceTier]; + if (tier) parts.push(family, tier); + } + } + break; + case "title_change": + parts.push("title", entry.title); + break; + case "mode_change": + parts.push("mode", entry.mode); + break; + case "credential_pin": + parts.push("credential pin", entry.provider); + break; + case "ttsr_injection": + parts.push("ttsr injection", ...entry.injectedRules); + break; + case "reset_boundary": + parts.push("reset boundary"); + break; + case "session_init": + parts.push("session init"); + break; } return parts.join(" "); diff --git a/packages/coding-agent/test/modes/components/tree-selector-entry-labels.test.ts b/packages/coding-agent/test/modes/components/tree-selector-entry-labels.test.ts index 0d149ff59..dbda19046 100644 --- a/packages/coding-agent/test/modes/components/tree-selector-entry-labels.test.ts +++ b/packages/coding-agent/test/modes/components/tree-selector-entry-labels.test.ts @@ -96,6 +96,19 @@ describe("tree selector entry labels", () => { expect(rows).toContain("[session init]"); }); + it("searches bookkeeping entries by their rendered content", () => { + for (const [query, expected] of [ + ["fork", "[title: fork cleanup]"], + ["anthropic", "[credential pin: anthropic]"], + ["priority", "[service tier: claude:priority]"], + ]) { + const selector = selectorFor([userEntry, ...bookkeeping]); + selector.handleInput(ALT_A); + selector.handleInput(query); + expect(visibleRows(selector).join("\n")).toContain(expected); + } + }); + it("hides bookkeeping entries in the default view", () => { const selector = selectorFor([userEntry, ...bookkeeping]); const rows = visibleRows(selector).join("\n");