From bcacb7688e49ac53741beea8ca4d9a0373adae85 Mon Sep 17 00:00:00 2001 From: Josh Lambert Date: Wed, 24 Jun 2026 09:05:16 -0600 Subject: [PATCH] refactor(tui): clarify session tree helper --- .../opencode/src/kilocode/plugins/model-usage.ts | 2 +- .../src/kilocode/plugins/sidebar-usage.tsx | 4 ++-- .../test/kilocode/cli/cmd/tui/model-usage.test.ts | 15 +++++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/opencode/src/kilocode/plugins/model-usage.ts b/packages/opencode/src/kilocode/plugins/model-usage.ts index 5ce052d3ee..8ec7c412bf 100644 --- a/packages/opencode/src/kilocode/plugins/model-usage.ts +++ b/packages/opencode/src/kilocode/plugins/model-usage.ts @@ -13,7 +13,7 @@ export function failed(result: UsageResult | undefined, sessionID: string) { return result?.sessionID === sessionID && !result.data } -export function member(input: { +export function isSessionTreeMember(input: { root: string sessionID: string get: (sessionID: string) => Session | undefined diff --git a/packages/opencode/src/kilocode/plugins/sidebar-usage.tsx b/packages/opencode/src/kilocode/plugins/sidebar-usage.tsx index 741368da2f..b5f9428a47 100644 --- a/packages/opencode/src/kilocode/plugins/sidebar-usage.tsx +++ b/packages/opencode/src/kilocode/plugins/sidebar-usage.tsx @@ -7,8 +7,8 @@ import { formatCost, formatCount, formatRate, + isSessionTreeMember, label, - member, select, type UsageResult, } from "@/kilocode/plugins/model-usage" @@ -44,7 +44,7 @@ function View(props: { api: TuiPluginApi; session_id: string }) { onMount(() => { const refresh = () => void refetch() const related = (sessionID: string, info?: ReturnType) => - member({ root: props.session_id, sessionID, info, get: props.api.state.session.get }) + isSessionTreeMember({ root: props.session_id, sessionID, info, get: props.api.state.session.get }) const offs = [ props.api.event.on("message.part.updated", (event) => { if (event.properties.part.type === "step-finish" && related(event.properties.sessionID)) refresh() diff --git a/packages/opencode/test/kilocode/cli/cmd/tui/model-usage.test.ts b/packages/opencode/test/kilocode/cli/cmd/tui/model-usage.test.ts index 8bc593d9b6..22b23ca101 100644 --- a/packages/opencode/test/kilocode/cli/cmd/tui/model-usage.test.ts +++ b/packages/opencode/test/kilocode/cli/cmd/tui/model-usage.test.ts @@ -1,6 +1,13 @@ import { describe, expect, test } from "bun:test" import type { Session } from "@kilocode/sdk/v2" -import { failed, formatRate, label, member, select, type SessionModelUsage } from "@/kilocode/plugins/model-usage" +import { + failed, + formatRate, + isSessionTreeMember, + label, + select, + type SessionModelUsage, +} from "@/kilocode/plugins/model-usage" const session = (id: string, parentID?: string) => ({ @@ -33,16 +40,16 @@ describe("TUI model usage", () => { expect(failed({ sessionID: "ses_old" }, "ses_current")).toBeFalse() expect(select({ sessionID: "ses_current", data }, "ses_current")).toBe(data) expect(failed({ sessionID: "ses_current" }, "ses_current")).toBeTrue() - expect(member({ root: root.id, sessionID: child.id, get: (id) => sessions.get(id) })).toBeTrue() + expect(isSessionTreeMember({ root: root.id, sessionID: child.id, get: (id) => sessions.get(id) })).toBeTrue() expect( - member({ + isSessionTreeMember({ root: root.id, sessionID: "ses_new", info: session("ses_new", child.id), get: (id) => sessions.get(id), }), ).toBeTrue() - expect(member({ root: root.id, sessionID: "ses_other", get: () => undefined })).toBeFalse() + expect(isSessionTreeMember({ root: root.id, sessionID: "ses_other", get: () => undefined })).toBeFalse() expect( label({ providerID: "kilo",