Commit Graph

183 Commits

Author SHA1 Message Date
yushen
e7ff4977c8 chore: bump version to 0.1.2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
desktop-v0.1.2 v0.1.2
2026-01-16 17:07:53 +08:00
Jiang Bohan
7380f3afdd style: fix prettier formatting in UpdateNotification 2026-01-16 16:34:46 +08:00
Jiang Bohan
21e3e1dd86 Merge remote main with auto-update feature 2026-01-16 16:25:10 +08:00
Jiang Bohan
8a13429c36 Merge feat/auto-update: add auto-update functionality 2026-01-16 16:23:59 +08:00
Jiang Bohan
cd792f6110 fix: show error state in update notification instead of hiding 2026-01-16 16:18:13 +08:00
yushen
9b99881cf7 chore: add arch suffix to mac zip artifact name
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:02:55 +08:00
yushen
fe9536860f chore: bump version to 0.1.1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v0.1.1 desktop-v0.1.1
2026-01-16 15:51:10 +08:00
Naiyuan Qing
cdcf4e4e0d Merge pull request #55 from multica-ai/fix/collapsible-summary-style
fix: use Collapsible component for summary row styling
2026-01-16 15:44:10 +08:00
Naiyuan Qing
a2f18c62e8 fix: use Collapsible component for summary row styling
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>
2026-01-16 15:41:36 +08:00
LinYushen
593fd7476a Merge pull request #54 from multica-ai/fix/macos-gui-path-fix
fix: resolve PATH issue for macOS GUI apps
2026-01-16 15:31:11 +08:00
yushen
b8e3884e74 fix: resolve PATH issue for macOS GUI apps
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>
2026-01-16 15:25:02 +08:00
Jiang Bohan
eb6f34bd1d feat: add dev mode support for auto-update testing 2026-01-16 15:07:12 +08:00
Jiang Bohan
b397e52cab feat: add auto-update functionality
- 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>
2026-01-16 14:42:17 +08:00
Jiang Bohan
b29b8b77d0 test: update Conductor tests for lazy agent start 2026-01-16 14:23:58 +08:00
Jiang Bohan
567d2eb146 style: fix prettier formatting in useApp.ts 2026-01-16 14:20:53 +08:00
Jiang Bohan
699da814ee feat: decouple session creation from agent startup
- 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>
2026-01-16 14:17:44 +08:00
Jiayuan
5f1a0cff56 Merge pull request #53 from multica-ai/forrestchang/add-product-image
Add product screenshot to README
2026-01-16 14:03:30 +08:00
Jiayuan
073ae46d77 Add product screenshot to README 2026-01-16 14:02:00 +08:00
LinYushen
cf74853712 Merge pull request #52 from multica-ai/docs/update-supported-agents
docs: update Supported Agents list in README files
2026-01-16 14:00:58 +08:00
yushen
e895e9dde9 docs: update Supported Agents list in README files
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>
2026-01-16 13:59:16 +08:00
Naiyuan Qing
b04d4397db Merge pull request #51 from multica-ai/NevilleQingNY/optimize-file-tree-menu-logic
fix: improve file tree refresh for multi-agent compatibility
2026-01-16 13:24:08 +08:00
Naiyuan Qing
aa5bbb065d fix: improve file tree refresh for multi-agent compatibility
- 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>
2026-01-16 13:21:40 +08:00
LinYushen
b587d70556 Merge pull request #50 from multica-ai/feature/auto-install-agent-logic
Fix polling detection to check all agent components
2026-01-16 13:17:36 +08:00
yushen
ea959e577b Fix polling detection to check all agent components
- 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>
2026-01-16 13:15:55 +08:00
LinYushen
c158ac15dd Merge pull request #48 from multica-ai/chore/update-build-config
Update build config and add zod dependency
2026-01-16 12:46:42 +08:00
Naiyuan Qing
c158c87d43 Merge pull request #49 from multica-ai/fix/acp-error-handling
Fix ACP error handling to use event-driven pattern
2026-01-16 12:44:03 +08:00
Naiyuan Qing
ec7d7f4580 Fix ACP error handling to use event-driven pattern
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>
2026-01-16 12:42:18 +08:00
yushen
7b68874977 Update build config and add zod dependency
- 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>
2026-01-16 12:38:46 +08:00
LinYushen
a404575fc5 Merge pull request #47 from multica-ai/revert-46-fix/agent-install-permission
Revert "Fix npm global install permission error by using user-level prefix"
2026-01-16 12:36:43 +08:00
LinYushen
ddad9ef21d Revert "Fix npm global install permission error by using user-level prefix" 2026-01-16 12:36:25 +08:00
LinYushen
384be3e39d Merge pull request #46 from multica-ai/fix/agent-install-permission
Fix npm global install permission error by using user-level prefix
2026-01-16 12:25:40 +08:00
yushen
7d37bbc172 Fix npm global install permission error by using user-level prefix
- 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>
2026-01-16 11:54:19 +08:00
Naiyuan Qing
a53dfac07f Merge pull request #45 from multica-ai/fix/toast-neutral-style
Refactor toast notifications to use neutral background with colored i…
2026-01-16 11:04:44 +08:00
Naiyuan Qing
3a46030f7b Refactor toast notifications to use neutral background with colored icons
- 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>
2026-01-16 11:01:34 +08:00
Jiayuan
523a312882 Merge pull request #44 from multica-ai/NevilleQingNY/optimize-file-tree-menu-logic
Improve file tree refresh detection logic
2026-01-16 10:56:42 +08:00
Naiyuan Qing
c1ece1646b Improve file tree refresh detection logic
- 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>
2026-01-16 10:47:31 +08:00
Jiayuan
2ea2fd8926 Merge pull request #43 from multica-ai/forrestchang/app-icon-design
Update app icon to Dieter Rams minimalist design
desktop-v0.1.0 v0.1.0
2026-01-16 02:26:48 +08:00
Jiayuan
ee334e0c2c Update app icon to Dieter Rams minimalist design
Replace existing icon with new minimalist design featuring a geometric star pattern on dark background. Generated in macOS (icns), Windows (ico), and PNG formats for all platforms.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 02:25:01 +08:00
Jiayuan
a359f98b96 Merge pull request #42 from multica-ai/forrestchang/codex-display-name
Improve agent display names in MessageInput
2026-01-16 02:00:15 +08:00
Jiayuan
f97d19de89 Improve agent display names in MessageInput
Update display names to be more concise:
- "opencode" → "OpenCode" (consistent capitalization)
- "Codex CLI (ACP)" → "Codex" (simplified, keep "(ACP)" in settings only)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 01:58:17 +08:00
Jiayuan
a227685998 Merge pull request #41 from multica-ai/forrestchang/codex-parse-order
Fix Codex ACP content ordering and persistence issues
2026-01-16 01:54:05 +08:00
Jiayuan
c59b9afc71 Fix Codex ACP content ordering and session persistence issues
Fixes two related issues when using Codex ACP agent: (1) ENOENT errors in
session persistence due to concurrent writes using identical temp file names,
and (2) ChatView content appearing out of order in real-time display due to
async ACP message delivery. Uses unique temp file names with UUID suffix and
adds sequence numbers to track update ordering across async boundaries.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 01:51:08 +08:00
Jiayuan
ab7e9aeb10 Add Claude skills 2026-01-16 00:54:43 +08:00
Jiayuan
d5c2c20f0f Merge pull request #40 from multica-ai/forrestchang/ai-code-safety
feat: Add AI code safety defense system with tests, pre-commit hooks, and CI
2026-01-16 00:24:30 +08:00
Jiayuan
fb12492b7c chore: remove coverage thresholds from vitest config
Coverage enforcement can be added later when the team is ready.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 00:22:33 +08:00
Jiayuan
b10b3ff709 Add AI code safety defense system: tests, pre-commit hooks, and CI
Implemented three-layer defense mechanism to prevent AI-generated code from breaking the codebase:
- Layer 1: AGENTS.md with universal AI agent instructions
- Layer 2: Husky pre-commit hooks with test file checking
- Layer 3: GitHub Actions CI with TypeScript, ESLint, tests, and coverage

Includes design document, test infrastructure, and coverage thresholds.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 00:22:33 +08:00
Jiayuan
1c5fadea1f Merge pull request #39 from multica-ai/forrestchang/fix-chatview-scroll
fix: allow scrolling in chatview during agent generation
2026-01-16 00:11:15 +08:00
Jiayuan
bd20699c90 fix: allow scrolling in chatview during agent generation
Prevent auto-scroll from blocking user scroll interactions by only
scrolling when user is already near the bottom. Track scroll position
to detect if user has manually scrolled away from the bottom.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 00:09:09 +08:00
Jiayuan
57fea74a58 Merge pull request #38 from multica-ai/forrestchang/fix-history-replay
fix: support new MessageContent format in history replay
2026-01-15 23:42:56 +08:00
Jiayuan
ce068a8a55 fix: support new MessageContent format in history replay
Added extractUserMessageText() helper to handle both new (MessageContent[])
and old ({ text: string }) user message formats. This fixes history replay
for resumed sessions after commit 913cccc changed the message storage format
without updating the extraction logic. Also updated integration test to use
the new MessageContent format.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 23:41:35 +08:00