diff options
| author | Ariane Emory <[email protected]> | 2025-11-24 03:02:04 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-11-24 02:02:04 -0600 |
| commit | 75c0c0a0985400bb8470b55cfcafb94744130bc0 (patch) | |
| tree | d9bf742082276a3176bb3ded8da68ad059aea5a4 /packages | |
| parent | 840d2694b4f94c7cd81f929bc660a3b66f6ee4ec (diff) | |
| download | opencode-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.tsx | 13 |
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 |
