summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorAriane Emory <[email protected]>2025-11-24 03:02:04 -0500
committerGitHub <[email protected]>2025-11-24 02:02:04 -0600
commit75c0c0a0985400bb8470b55cfcafb94744130bc0 (patch)
treed9bf742082276a3176bb3ded8da68ad059aea5a4 /packages
parent840d2694b4f94c7cd81f929bc660a3b66f6ee4ec (diff)
downloadopencode-75c0c0a0985400bb8470b55cfcafb94744130bc0.tar.gz
opencode-75c0c0a0985400bb8470b55cfcafb94744130bc0.zip
tweak: display MCPs in alphabetic order in the sidebar. (#4680)
Co-authored-by: Github Action <[email protected]>
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx13
1 files changed, 8 insertions, 5 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx
index d0241d422..8302bfefe 100644
--- a/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx
+++ b/packages/opencode/src/cli/cmd/tui/routes/session/sidebar.tsx
@@ -18,6 +18,9 @@ export function Sidebar(props: { sessionID: string }) {
const [todoExpanded, setTodoExpanded] = createSignal(true)
const [lspExpanded, setLspExpanded] = createSignal(true)
+ // Sort MCP servers alphabetically for consistent display order
+ const mcpEntries = createMemo(() => Object.entries(sync.data.mcp).sort(([a], [b]) => a.localeCompare(b)))
+
const cost = createMemo(() => {
const total = messages().reduce((sum, x) => sum + (x.role === "assistant" ? x.cost : 0), 0)
return new Intl.NumberFormat("en-US", {
@@ -58,22 +61,22 @@ export function Sidebar(props: { sessionID: string }) {
<text fg={theme.textMuted}>{context()?.percentage ?? 0}% used</text>
<text fg={theme.textMuted}>{cost()} spent</text>
</box>
- <Show when={Object.keys(sync.data.mcp).length > 0}>
+ <Show when={mcpEntries().length > 0}>
<box>
<box
flexDirection="row"
gap={1}
- onMouseDown={() => Object.keys(sync.data.mcp).length > 2 && setMcpExpanded(!mcpExpanded())}
+ onMouseDown={() => mcpEntries().length > 2 && setMcpExpanded(!mcpExpanded())}
>
- <Show when={Object.keys(sync.data.mcp).length > 2}>
+ <Show when={mcpEntries().length > 2}>
<text fg={theme.text}>{mcpExpanded() ? "▼" : "▶"}</text>
</Show>
<text fg={theme.text}>
<b>MCP</b>
</text>
</box>
- <Show when={Object.keys(sync.data.mcp).length <= 2 || mcpExpanded()}>
- <For each={Object.entries(sync.data.mcp)}>
+ <Show when={mcpEntries().length <= 2 || mcpExpanded()}>
+ <For each={mcpEntries()}>
{([key, item]) => (
<box flexDirection="row" gap={1}>
<text