7 Commits

Author SHA1 Message Date
Jiang Bohan
b29b8b77d0 test: update Conductor tests for lazy agent start 2026-01-16 14:23:58 +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
ddad9ef21d Revert "Fix npm global install permission error by using user-level prefix" 2026-01-16 12:36:25 +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
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
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
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