Changed default font from Geist Sans to Inter for better rendering of full-width Chinese punctuation. Added Chinese font fallbacks (PingFang SC, Microsoft YaHei, Noto Sans SC) to properly display Chinese characters and punctuation marks.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Fix getEnhancedPath() to use ';' instead of ':' on Windows
- Fix Settings.tsx agent status check to handle undefined agent results
- This resolves opencode detection failure on Windows systems
- Platform-aware separator selection ensures cross-platform compatibility
- UI now properly displays agent installation status
Fixes multica-ai/multica issue where opencode showed as not installed despite being properly installed and available in PATH.
- Remove arrow for cleaner popover aesthetic
- Add backdrop blur and subtle shadow for depth
- Use rounded-lg for rounder corners
- Default to top positioning with 4px offset
- Disable tooltip on active sidebar items
- Update shrink-0 class names (linter auto-fix)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add flex flex-col to RightPanel inner div so RightPanelContent's
flex-1 overflow-auto can work properly, allowing FileTree to scroll
when content exceeds panel height.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add directoryExists runtime check for sessions
- Show warning banner when directory not found
- Disable input and only allow session deletion
- Add withDirectoryExists helper to reduce code duplication
- Validate directory on app focus to detect deleted folders
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Refactors CollapsibleAssistantMessage to use shadcn Collapsible
component pattern, making the entire summary row clickable with
hover background effect - consistent with ToolCallItem styling.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
GUI apps on macOS don't inherit PATH from shell dotfiles (.zshrc, .bashrc, etc.).
This causes agent commands to fail when launched from Finder/Dock.
- Add fix-path dependency to correct PATH on app start
- Configure electron-vite to bundle ESM-only dependencies (fix-path, shell-path, strip-ansi)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add electron-updater for automatic updates from GitHub releases
- Configure electron-builder to publish to GitHub
- Create AutoUpdater module in main process
- Add UpdateNotification component in bottom-right corner
- Support check, download, and install update flow
- Only check for updates in production mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Lazy agent initialization: agent now starts on first prompt instead of session creation
- Show auth errors inline in chat with structured UI (badges, steps, command button)
- Add one-click terminal command execution for authentication
- Users can enter chat immediately after selecting folder
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace Gemini CLI with Claude Code in all README files:
- Update agent list text to mention Claude Code, Codex CLI, OpenCode
- Replace Gemini CLI row with Claude Code in Supported Agents table
- Add claude-code-acp install command
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add toolCallId -> kind mapping to handle Codex and other agents
- tool_call_update events don't include kind field, so we store it
from tool_call events and look it up later
- Add 'execute' to FILE_MODIFYING_KINDS for Codex bash commands
- Clear mapping on session change to avoid stale data
- Support both 'completed' and 'failed' status for refresh trigger
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change `installed` check from primary command only to all required commands
- Agents with multiple components (e.g., claude-code requiring both CLI and ACP)
are now only marked as installed when all components are present
- This fixes the issue where polling would stop prematurely when only the
primary command (e.g., `claude`) was detected but `claude-code-acp` was not
- Also includes related changes for terminal-based installation flow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change error handling in sendPrompt from throwing exceptions to emitting
session update events. This ensures errors appear inline in the chat
instead of triggering IPC failures and toast notifications.
- Emit error as agent_message_chunk instead of throwing
- Return 'error' stopReason for caller awareness
- Add parseAcpError helper for user-friendly messages
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add .env to .gitignore
- Enable macOS notarization in electron-builder
- Update dmg artifact naming to include arch
- Add zod dependency for schema validation
- Reorganize devDependencies in package.json
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ~/.npm-global/bin to enhanced PATH in path.ts
- Add getNpmUserPrefix() function for user-level npm directory
- Modify installClaudeCodeACP, installCodexCLI, installCodexACP to use
--prefix ~/.npm-global for installation without sudo
- Update formatInstallError to provide actionable fix for permission errors
- Add unit tests for agent-install module
This fixes EACCES permission errors when installing agents via npm install -g
by redirecting installations to the user's home directory.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move toast position from top-center to bottom-right
- Remove richColors and use neutral popover background for all toast types
- Add colored icons: green (success), red (error), amber (warning), blue (info)
- Improve switch agent success message
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Check both ACP kind and toolName from _meta.claudeCode for better compatibility
- Move file-modifying tool constants to module scope to avoid recreation on every render
- Remove debug console.log statements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>