From 40790d8139ea3a87b0b1ccf51339e2effb16ae67 Mon Sep 17 00:00:00 2001 From: Evgeny Shurakov Date: Tue, 7 Jul 2026 09:32:11 +0200 Subject: [PATCH] fix(cli): show remote badge in prompt status (#11976) --- .changeset/remote-tui-badge.md | 5 +++ .../src/cli/cmd/tui/plugin/internal.ts | 2 + .../src/kilocode/plugins/home-footer.tsx | 44 ++++--------------- .../opencode/src/kilocode/plugins/remote.tsx | 32 ++++++++++++++ 4 files changed, 48 insertions(+), 35 deletions(-) create mode 100644 .changeset/remote-tui-badge.md create mode 100644 packages/opencode/src/kilocode/plugins/remote.tsx diff --git a/.changeset/remote-tui-badge.md b/.changeset/remote-tui-badge.md new file mode 100644 index 0000000000..bb23dbb560 --- /dev/null +++ b/.changeset/remote-tui-badge.md @@ -0,0 +1,5 @@ +--- +"@kilocode/cli": patch +--- + +Show the Remote badge in the TUI prompt status area when remote session relay is enabled. diff --git a/packages/opencode/src/cli/cmd/tui/plugin/internal.ts b/packages/opencode/src/cli/cmd/tui/plugin/internal.ts index 88dd992a1c..1b9481664b 100644 --- a/packages/opencode/src/cli/cmd/tui/plugin/internal.ts +++ b/packages/opencode/src/cli/cmd/tui/plugin/internal.ts @@ -14,6 +14,7 @@ import KiloMemoryPalette from "@/kilocode/plugins/memory-palette" // kilocode_ch import KiloSidebarPr from "@/kilocode/plugins/sidebar-pr" import KiloSidebarUsage from "@/kilocode/plugins/sidebar-usage" import KiloSandbox from "@/kilocode/plugins/sandbox" +import KiloRemote from "@/kilocode/plugins/remote" // kilocode_change end import SidebarContext from "../feature-plugins/sidebar/context" import SidebarMcp from "../feature-plugins/sidebar/mcp" @@ -52,6 +53,7 @@ export function internalTuiPlugins(flags: Pick props.api.theme.current - const [status, setStatus] = createSignal(null) - - onMount(() => { - void props.api.client.remote - .status() - .then((res: { data?: Status }) => { - if (res.data) setStatus(res.data) - }) - .catch(() => undefined) - const off = props.api.event.on("kilo-sessions.remote-status-changed", (evt) => setStatus(evt.properties)) - onCleanup(off) - }) - - return ( - - - ◆ Remote{status()?.connected ? "" : " …"} - - - ) -} - // --------------------------------------------------------------------------- // Sub-components (mirror upstream home/footer with kilo additions) // --------------------------------------------------------------------------- @@ -105,6 +73,7 @@ function Version(props: { api: TuiPluginApi }) { function View(props: { api: TuiPluginApi }) { const kilo = createMemo(() => props.api.state.provider.some((p) => p.id === "kilo")) + const sdk = { client: props.api.client } return ( - + diff --git a/packages/opencode/src/kilocode/plugins/remote.tsx b/packages/opencode/src/kilocode/plugins/remote.tsx new file mode 100644 index 0000000000..098a94563b --- /dev/null +++ b/packages/opencode/src/kilocode/plugins/remote.tsx @@ -0,0 +1,32 @@ +import type { TuiPlugin, TuiPluginApi, TuiPluginModule } from "@kilocode/plugin/tui" +import { RemoteIndicator } from "@/kilocode/remote-tui" + +const id = "internal:remote" + +function View(props: { api: TuiPluginApi }) { + return ( + + + + ) +} + +const tui: TuiPlugin = async (api) => { + api.slots.register({ + order: 51, + slots: { + session_prompt_right() { + return + }, + }, + }) +} + +const plugin: TuiPluginModule & { id: string } = { id, tui } + +export default plugin