fix: Windows Claude CLI path discovery and Extensions scroll

- Fix Windows Claude CLI not found when installed as .exe or without
  extension in .local\bin (closes #6). Now searches all extensions
  (.cmd, .exe, .bat, and bare) for every candidate directory.
- Fix Extensions/Skills list not scrollable when many items exist.
  Change content container to overflow-hidden so internal ScrollArea
  works correctly. Add overflow-auto to McpManager for its own scroll.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
7418andClaude Opus 4.6 committed 2026-02-07 22:20:03 +08:00
1 parent f870b5d9c1
commit 0b1ae6c02f
3 files changed
+16 -8

No files matched your search

+1 -1
View File
@@ -40,7 +40,7 @@ function ExtensionsPageInner() {
</TabsList>
</Tabs>
</div>
<div className="flex-1 overflow-auto p-6">
<div className="flex-1 overflow-hidden p-6">
{tab === "skills" && <SkillsManager />}
{tab === "mcp" && <McpManager />}
</div>
+1 -1
View File
@@ -136,7 +136,7 @@ export function McpManager() {
const serverCount = Object.keys(servers).length;
return (
<div>
<div className="h-full overflow-auto">
<div className="flex items-center justify-between mb-4">
<div>
<div className="flex items-center gap-2">
+14 -6
View File
@@ -53,13 +53,21 @@ export function getClaudeCandidatePaths(): string[] {
if (isWindows) {
const appData = process.env.APPDATA || path.join(home, 'AppData', 'Roaming');
const localAppData = process.env.LOCALAPPDATA || path.join(home, 'AppData', 'Local');
return [
path.join(appData, 'npm', 'claude.cmd'),
path.join(localAppData, 'npm', 'claude.cmd'),
path.join(home, '.npm-global', 'bin', 'claude.cmd'),
path.join(home, '.claude', 'bin', 'claude.exe'),
path.join(home, '.local', 'bin', 'claude.cmd'),
const exts = ['.cmd', '.exe', '.bat', ''];
const baseDirs = [
path.join(appData, 'npm'),
path.join(localAppData, 'npm'),
path.join(home, '.npm-global', 'bin'),
path.join(home, '.claude', 'bin'),
path.join(home, '.local', 'bin'),
];
const candidates: string[] = [];
for (const dir of baseDirs) {
for (const ext of exts) {
candidates.push(path.join(dir, 'claude' + ext));
}
}
return candidates;
}
return [
'/usr/local/bin/claude',