Commit Graph

36 Commits

Author SHA1 Message Date
yushen
ca63ccda9b chore: bump version to 0.1.7 2026-02-05 12:10:07 +08:00
yushen
8e4de4722a chore: bump version to 0.1.6 2026-01-25 10:43:53 +08:00
Jiayuan
5b8d1abbb6 Merge pull request #97 from multica-ai/forrestchang/ui-redesign
feat: redesign UI with Project -> Session hierarchy
2026-01-23 15:40:15 +08:00
Naiyuan Qing
aabedab72f feat: add syntax highlighting for code blocks
- Integrate Shiki for VS Code-quality syntax highlighting
- Add dark mode support with MutationObserver
- Implement LRU cache (200 entries) for performance
- Add streaming optimization with block-level memoization
- Auto-detect and linkify URLs and file paths
- Update CSP to allow WebAssembly for Shiki

Closes #98

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 15:28:07 +08:00
Jiayuan Zhang
5956554fa6 feat: redesign UI with Project -> Session hierarchy
- Add SQLite storage using sql.js for Project and Session data
- Implement Project -> Session hierarchical structure in sidebar
- Add drag-and-drop reordering for projects
- Reduce sidebar padding for better space utilization
- Show session title in top bar, remove folder name/path/status
- Add delete confirmation modals for projects and sessions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 15:11:45 +08:00
yushen
0c71a3165b chore: bump version to 0.1.5
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 17:30:19 +08:00
yushen
2522dbe71e feat: add per-session input draft persistence
- Add draftStore to manage input drafts per session
- Save/restore drafts when switching between sessions
- Auto-save drafts with debounce (300ms)
- Clear drafts when session is deleted
- Add unit tests for draftStore and MessageInput draft behavior
- Update vitest config to include .tsx test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:14:24 +08:00
yushen
bbf4979cb9 feat: integrate electron-log and improve error message parsing
- Add electron-log for production logging (writes to ~/Library/Logs/Multica/)
- Development mode logs to console only, no file writes
- Improve parseAcpError() with more specific error handling:
  - Connection errors (ECONNREFUSED, ECONNRESET)
  - Timeout errors (ETIMEDOUT, timeout)
  - Process exit errors
  - Authentication errors (401, API key)
  - Rate limit errors (429)
- Fallback now shows actual error message (truncated to 150 chars)
  instead of generic "Agent encountered an error"
- Add comprehensive tests for new error types

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 16:28:41 +08:00
yushen
a6e6b1f6aa feat: update release skill for complete build artifacts
- Update build:mac script to build both arm64 and x64 architectures
- Update release skill to include all build artifacts:
  - DMG files with blockmaps
  - ZIP files with blockmaps
  - latest-mac.yml for auto-updater

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 15:40:09 +08:00
yushen
d83ea64eac chore: bump version to 0.1.4
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 15:27:08 +08:00
yushen
3b4ab35b32 chore: bump version to 0.1.3
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 19:08:56 +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
yushen
e7ff4977c8 chore: bump version to 0.1.2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:07:53 +08:00
Jiang Bohan
21e3e1dd86 Merge remote main with auto-update feature 2026-01-16 16:25:10 +08:00
yushen
fe9536860f chore: bump version to 0.1.1
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:51:10 +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
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
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
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
c293cacda3 Optimize typography and layout for better readability
- Add Geist Mono font with multiple weights for consistent design
- Set user message background to #f9f7f5 for better visual distinction
- Improve markdown rendering with professional typographic spacing:
  - Increase paragraph margins and line height
  - Add proper heading hierarchy with asymmetric spacing
  - Fix code block styling to eliminate extra padding
  - Improve list and blockquote styling
- Expand chat view padding (px-6→px-8, py-4→py-6) and message spacing (space-y-4→space-y-5) for better breathing room

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 19:07:25 +08:00
Jiayuan
3fdd38a3a9 feat: add DropdownMenu UI component
Add Radix UI based dropdown menu component for use in AgentSelector.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:32:13 +08:00
Jiayuan
cc3ddecb85 docs: Add Apache 2.0 license
Add LICENSE file with Apache License 2.0 terms and update package.json with license field.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 13:20:57 +08:00
Jiayuan
7967d79768 rebrand: Update to Multica (Multiplexed Information and Computing Agent)
- Rename product and update branding across electron-builder.yml and package.json
- Rewrite README with comprehensive project vision and problem statement
- Add translated README files in Simplified Chinese, Traditional Chinese, Japanese, and Korean

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 12:47:29 +08:00
Jiayuan
cb67f5d340 feat: add comprehensive test suite with Vitest
Add unit and integration tests covering core business logic:
- SessionStore: 18 tests for session persistence and management
- Conductor: 13 tests for session orchestration and agent lifecycle
- IPC Handlers: 19 tests for main-renderer communication
- Agent check: 10 tests for agent detection utilities

Tests achieve 31.74% overall coverage with focus on critical paths. Includes Vitest configuration, mock setup, and test utilities.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 04:11:56 +08:00
Jiayuan
0ffe2c82a9 Merge pull request #9 from multica-ai/forrestchang/right-sidebar-tree
feat: add directory tree to right sidebar with security fixes
2026-01-15 02:07:22 +08:00
Jiayuan
9ca2014d68 fix: address security and performance issues in right-sidebar-tree
- Fix command injection vulnerability by using spawn with argument arrays instead of shell string interpolation
- Fix stale closure in FileTree.loadChildren by checking cache inside state setter
- Remove unused next-themes dependency
- Add path validation to prevent directory traversal attacks

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-15 02:06:14 +08:00
Jiayuan
4688c3bcac feat(ui): add toast notification for copy path action
Shows a success toast at bottom-right when path is copied to clipboard.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 02:00:00 +08:00
Jiayuan
ea29bdce13 feat: add directory tree to right sidebar
Implements a file tree browser in the right panel that displays the
current session's working directory with:
- Lazy-loaded directory tree with expand/collapse
- File-type-specific icons (TypeScript, JavaScript, JSON, YAML, etc.)
- Right-click context menu with auto-detected apps (Finder, VS Code,
  Cursor, terminals, etc.)
- Copy path functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 01:52:41 +08:00
Jiayuan
b9d6ff86cf feat(ui): use Geist Sans font
Add @fontsource/geist-sans package and set it as the primary font
with system-ui and sans-serif as fallbacks.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 01:31:36 +08:00
Jiayuan
c48b217161 fix: add markdown table rendering support in session history
- Add remark-gfm dependency for GitHub Flavored Markdown support
- Configure ReactMarkdown with remarkGfm plugin
- Add custom table component handlers (table, thead, tbody, tr, th, td)
- Style tables with borders, header backgrounds, and proper spacing
- Remove unused AgentConfig import in cli.ts

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 20:49:42 +08:00
Naiyuan Qing
71ab27d02a feat: add zustand modal store and clean up theme variables
- Add zustand for global modal state management
- Create modalStore with settings/newSession/deleteSession modals
- Create Modals.tsx component for centralized modal rendering
- Move Settings button to sidebar footer
- Clean up old --color-* CSS variables, use shadcn standard variables
- Delete unused base.css and main.css files
- Update components to use Tailwind classes (bg-background, text-foreground, etc.)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 16:45:40 +08:00
Naiyuan Qing
27c66e7fa1 feat(ui): redesign sidebar with shadcn and macOS traffic lights support
- Add trafficLightPosition for inline macOS traffic lights
- Replace SessionList with AppSidebar using shadcn sidebar
- Add Linear-style hover/active states for session items
- Show delete button and tooltip on hover per item
- Add delete confirmation dialog
- Handle traffic lights padding for collapsed/mobile states
- Add New task button with primary icon color
- Add Recent label for session list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 15:02:55 +08:00
Naiyuan Qing
33c66c77c6 feat(ui): initialize shadcn/ui design system
- Add fake vite.config.ts to support shadcn CLI detection
- Configure path aliases (@/*) in tsconfig files
- Add components.json for shadcn configuration
- Install shadcn dependencies (clsx, tailwind-merge, etc.)
- Add Button component and replace MessageInput buttons
- Update CSS with shadcn design tokens

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:53:50 +08:00
Jiayuan
0929154f0f feat: redesign Settings UI and add markdown rendering to ChatView
- Redesign Settings as minimalist agent setup with bordered cards
- Add react-markdown for rendering assistant messages
- Expand thinking blocks with collapsible UI
- Adjust theme colors for dark mode (primary #292929)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 04:45:56 +08:00
Jiayuan
6b0f3a4372 feat: add comprehensive interactive CLI
- Add interactive REPL mode with session/agent management
- Commands: /sessions, /new, /resume, /delete, /history
- Commands: /agents, /agent, /status, /cancel, /quit
- Support one-shot prompt mode (pnpm cli prompt "message")
- Fix SessionStore to work outside Electron (CLI mode)
- Update README with CLI documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 03:04:01 +08:00
Jiayuan
69b07f18b7 feat: initial project setup with Electron + ACP conductor architecture
- Set up Electron + React + TypeScript + Tailwind CSS v4
- Implement Conductor for ACP agent communication
- Add AgentProcess for subprocess lifecycle management
- Create CLI test command (pnpm test:acp) with --cwd and --log options
- Support multiple agents: opencode, codex, gemini

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 01:27:09 +08:00