diff --git a/flake.lock b/flake.lock index 1150e275150..826bf4d8608 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1763618868, - "narHash": "sha256-v5afmLjn/uyD9EQuPBn7nZuaZVV9r+JerayK/4wvdWA=", + "lastModified": 1763806073, + "narHash": "sha256-FHsEKDvfWpzdADWj99z7vBk4D716Ujdyveo5+A048aI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a8d610af3f1a5fb71e23e08434d8d61a466fc942", + "rev": "878e468e02bfabeda08c79250f7ad583037f2227", "type": "github" }, "original": { diff --git a/nix/hashes.json b/nix/hashes.json index 6063a49bd3f..16424b3a035 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,3 +1,3 @@ { - "nodeModules": "sha256-/ZkyVHgRMjhzBpnDNTR6X+TomtTMarVU7gmq9Z8Czr8=" + "nodeModules": "sha256-m7hL9Uzqk+oa2/FtgkzEPgi+m/VZP1SvjpgYHNjiS1c=" } 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 9ba799f09e4..5f89e0e929e 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 }) { {context()?.percentage ?? 0}% used {cost()} spent - 0}> + 0}> Object.keys(sync.data.mcp).length > 2 && setMcpExpanded(!mcpExpanded())} + onMouseDown={() => mcpEntries().length > 2 && setMcpExpanded(!mcpExpanded())} > - 2}> + 2}> {mcpExpanded() ? "▼" : "▶"} MCP - - + + {([key, item]) => (