218 Commits

Author SHA1 Message Date
yushen
d83ea64eac chore: bump version to 0.1.4
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
desktop-v0.1.4 v0.1.4
2026-01-20 15:27:08 +08:00
LinYushen
f6faa956c9 Merge pull request #68 from multica-ai/fix/terminal-command-display
fix: format terminal command array with spaces
2026-01-20 14:58:33 +08:00
yushen
5af566e5c7 fix: format terminal command array with spaces
When the command input is an array (e.g., ["/bin/zsh", "-lc", "git checkout main"]),
it was being displayed without spaces between elements. Added formatCommand helper
function to properly join array elements with spaces.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 14:56:16 +08:00
LinYushen
e807082222 Merge pull request #67 from multica-ai/feat/dynamic-agent-modes
feat: add dynamic session mode and model selection
2026-01-20 14:43:54 +08:00
yushen
ddc67a0105 feat: add dynamic session mode and model selection
Add support for dynamically switching session modes and models through
the ACP protocol. This enables users to change the AI model or operating
mode during an active session.

Changes:
- Add ModeSelector and ModelSelector dropdown components
- Extend ACP client to handle mode/model update notifications
- Add IPC channels for mode/model state management
- Update Conductor and SessionLifecycle for dynamic switching
- Add max-height constraint to dropdowns for better UX

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 14:31:03 +08:00
LinYushen
8cc1a29151 Merge pull request #66 from multica-ai/chore/release-skill
chore: add release skill for automated release workflow
2026-01-19 16:30:06 +08:00
yushen
12eb93ff41 chore: add release skill for automated release workflow
Add SKILL.md defining the /release command workflow with 8 steps:
1. Git branch check (must be on main, pull latest)
2. Environment check (Apple credentials, gh CLI)
3. Code quality checks (typecheck, lint, format, test)
4. Version confirmation
5. Build application
6. Commit version change
7. Generate release notes
8. Create GitHub release

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 16:27:38 +08:00
Naiyuan Qing
dd43fa95d3 Merge pull request #65 from multica-ai/fix/chat-padding-adjustment
style: increase chat area horizontal padding
2026-01-19 14:04:04 +08:00
Naiyuan Qing
59073e8ac3 style: increase chat area horizontal padding
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 14:03:18 +08:00
Naiyuan Qing
a86afd458e Merge pull request #64 from multica-ai/fix/nested-button-hydration-error
Fix/nested button hydration error
2026-01-19 13:17:55 +08:00
Jiayuan
800f5f8586 Merge pull request #63 from multica-ai/forrestchang/arch-review
refactor(conductor): split monolithic class into focused modules
2026-01-19 13:16:18 +08:00
Naiyuan Qing
9e0e27125c style: adjust chat area padding for better alignment
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 13:15:55 +08:00
Naiyuan Qing
67364913e1 fix: replace nested button with div role="button" to fix hydration error
HTML spec doesn't allow <button> inside <button>. The delete button was
nested inside SidebarMenuButton causing React hydration errors. Changed
to <div role="button"> with keyboard support for accessibility.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 13:13:11 +08:00
Jiayuan
1129158333 refactor(conductor): split monolithic Conductor into focused modules
Split 773-line Conductor class into 4 modular components using dependency injection:
- SessionLifecycle: Session CRUD operations
- AgentProcessManager: Agent process lifecycle management
- PromptHandler: Prompt sending with history replay and G-3 support
- G3Workaround: AskUserQuestion answer injection mechanism

Added comprehensive unit tests for all new modules (56 new tests), bringing total test coverage to 167 tests. Maintained backward compatibility - all callers continue using identical APIs. TypeScript compilation passes with no errors.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-19 13:11:23 +08:00
Naiyuan Qing
1cd9d16c47 Merge pull request #62 from multica-ai/feat/chat-scroll-optimization
feat: add scroll to bottom button and optimize chat scroll behavior
2026-01-19 13:06:08 +08:00
Naiyuan Qing
9e208562fa feat: add scroll to bottom button and optimize chat scroll behavior
- Add useChatScroll hook with IntersectionObserver for precise bottom detection
- Add "Scroll to bottom" button that appears when user scrolls up
- Use requestAnimationFrame for smooth scrolling without jitter
- Implement user scroll lock to respect user intent during streaming
- Auto-scroll only when user is at bottom

Also includes React best practices cleanup:
- Fix Rules of Hooks violation in ThoughtBlockView
- Add useMemo for expensive groupUpdatesIntoMessages
- Hoist ReactMarkdown components outside render
- Wrap handlers with useCallback

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 13:03:14 +08:00
Jiayuan
16e44cf323 Merge pull request #61 from multica-ai/forrestchang/readme-download-link
Add download link to releases page in README
2026-01-19 12:04:50 +08:00
Jiayuan
ce5566eea6 Add download link to releases page in README 2026-01-19 12:04:15 +08:00
Jiayuan
238e5f65ec Merge pull request #60 from multica-ai/forrestchang/acp-msg-render
docs: add ACP message rendering implementation guide
2026-01-19 11:05:00 +08:00
Jiayuan
c774c1eeb6 fix: format issue 2026-01-19 00:53:42 +08:00
Jiayuan
d01be5f8b7 docs: add ACP message rendering implementation guide 2026-01-19 00:47:36 +08:00
yushen
3b4ab35b32 chore: bump version to 0.1.3
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
desktop-v0.1.3 v0.1.3
2026-01-17 19:08:56 +08:00
Jiayuan
9403856707 Merge pull request #59 from multica-ai/forrestchang/fix-chinese-font
fix: replace Geist Sans with Inter and add Chinese font support
2026-01-17 11:44:49 +08:00
Jiayuan
48f5d7e66b docs: add format:check to pre-commit checks in CLAUDE.md
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-17 11:43:36 +08:00
Jiayuan
b7d5c78d5d style: fix formatting in index.css
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-17 11:42:28 +08:00
Jiayuan
dcd3acbfa4 fix: replace Geist Sans with Inter font and add Chinese font support
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>
2026-01-17 11:32:36 +08:00
Jiayuan
90b68e8911 Merge pull request #58 from multica-ai/forrestchang/format-code
style: format code with Prettier
2026-01-16 22:46:18 +08:00
Jiayuan
4ed992c299 style: format code with Prettier
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-16 22:44:34 +08:00
Jiayuan
aad1d8724b Merge pull request #57 from potapotato/fix/windows-path-separator
fix: correct PATH separator for Windows in agent detection
2026-01-16 22:27:32 +08:00
DANGO
65a809c138 fix: correct PATH separator for Windows in agent detection
- 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.
2026-01-16 21:50:51 +08:00
Naiyuan Qing
a16c2a361f Merge pull request #56 from multica-ai/fix/handle-missing-directory
Fix/handle missing directory
2026-01-16 18:05:13 +08:00
Naiyuan Qing
dad7006ce7 merge: resolve conflicts with origin/main
Keep both features:
- App focus event (HEAD)
- Auto-update functionality (origin/main)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 18:03:18 +08:00
Naiyuan Qing
780dc7389b style: update Tooltip to modern popover style
- 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>
2026-01-16 17:59:55 +08:00
Naiyuan Qing
6b3a397495 fix: enable scroll for RightPanel FileTree overflow
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>
2026-01-16 17:50:39 +08:00
Naiyuan Qing
3fcbaf3825 fix: handle missing directory - show warning and allow delete only
- 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>
2026-01-16 17:46:02 +08:00
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