Commit Graph
115 Commits
Author SHA1 Message Date
7418andClaude Opus 4.6 51d4906c77 fix: address Codex review — Node auto-install, first-launch prompt, IPC consistency
P1: When Node.js is missing, auto-install via brew (macOS) or winget (Windows)
    instead of stopping and asking user to install manually.
P1: Auto-open install wizard on first disconnect detection in Electron,
    with localStorage flag to avoid re-prompting after dismissal.
P2: IPC install:start now throws on concurrent calls instead of returning
    silent { error } object. Removed unused return values from handlers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:33:54 +08:00
7418andClaude Opus 4.6 e4b917172c feat: add one-click Claude Code install wizard
Add an auto-install wizard accessible from the ConnectionStatus dialog
when Claude Code CLI is not detected (Electron only).

- Electron main: install orchestrator with IPC handlers for check/start/cancel
- Preload: expose install API via contextBridge
- InstallWizard: multi-step dialog with real-time log streaming
- ConnectionStatus: add "Install Automatically" button when disconnected

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:29:39 +08:00
7418andClaude Opus 4.6 23d05cabe1 fix: file tree attachment fails on non-home paths in packaged app
- Remove homedir-only restriction from /api/files/raw (desktop app
  doesn't need this sandbox, projects can be anywhere)
- Add console.warn on fetch failure instead of silent swallow
- Fix filename extraction for Windows backslash paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:01:54 +08:00
7418andClaude Opus 4.6 097bd2ad8a docs: remove "native" wording from README descriptions
Closes #74

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:13:35 +08:00
7418andClaude Opus 4.6 d2c6964fd8 fix: CI changelog echo breaks on special chars in commit messages
Use heredoc instead of single-quoted echo to write changelog into
release notes, preventing shell syntax errors from quotes/pipes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:47:43 +08:00
7418andClaude Opus 4.6 11565de083 chore: bump version to 0.10.3
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:37:20 +08:00
7418andClaude Opus 4.6 ccd687c8f5 fix: don't cache "not found" binary result, use ref lock for pagination
- platform.ts: only cache positive findClaudeBinary results so a fresh
  CLI install is detected immediately on next check
- ChatView.tsx: use useRef as atomic lock to prevent double-fetch from
  rapid clicks on "Load earlier messages"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:34:36 +08:00
7418andClaude Opus 4.6 9b166be8d6 fix: resolve 25 error-level lint issues (P1-3)
Fix no-require-imports, no-explicit-any, no-html-link-for-pages,
set-state-in-effect, purity, static-components, and refs rules
across 15 files. 0 errors remain (52 warnings unchanged).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:51 +08:00
7418andClaude Opus 4.6 e86f0cfd8f perf: optimize polling with caching and event-driven approach (P1-2)
- CLI binary detection cached with 60s TTL
- Settings poll replaced with visibility/focus events
- Health check uses adaptive backoff (30s → 60s when stable)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:43 +08:00
7418andClaude Opus 4.6 a5805cb380 refactor: extract SSE parsing into shared consumeSSEStream (P1-1)
Deduplicate 150-line inline SSE parsing from ChatView into a reusable
hook. ChatView reduced from 594 to 490 lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:35 +08:00
7418andClaude Opus 4.6 af2830db9b feat: add cursor-based message pagination (P0-3)
Backend returns paginated messages with hasMore flag. Frontend shows
"Load earlier messages" button with scroll anchor preservation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:27 +08:00
7418andClaude Opus 4.6 128ccf951c perf: convert sync file I/O to async in API routes (P0-2)
Replace all readFileSync/existsSync/readdirSync with fs.promises
equivalents to unblock the Node event loop under concurrency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:21 +08:00
7418andClaude Opus 4.6 f3c49a9e49 fix: deduplicate attachment file writes (P0-1)
Upload route now passes persisted filePath to claude-client, which
reuses it instead of writing the file again.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:24:12 +08:00
7418andClaude Opus 4.6 5878b36ff6 chore: bump version to 0.10.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 01:05:19 +08:00
7418andClaude Opus 4.6 b22788920b fix: file tree folder — separate toggle trigger from row, remove unused select
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 21:49:05 +08:00
7418andClaude Opus 4.6 d5b1d6eb9d feat: redesign settings page with sidebar navigation
Extract settings into General / Providers / Claude CLI sections with
a left sidebar layout. Keep Skills and MCP on the Extensions page.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 17:28:29 +08:00
7418andClaude Opus 4.6 a5cff792e3 fix: read MCP servers from both ~/.claude.json and ~/.claude/settings.json
Claude CLI stores user-scoped MCP servers in ~/.claude.json, while
CodePilot was only reading from ~/.claude/settings.json. Now both
the MCP list API and streamClaude merge configs from both sources.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 11:28:56 +08:00
7418andClaude Opus 4.6 d3a7fd745e fix: file tree attachment bridge stale closure — use ref for attachments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 02:12:40 +08:00
7418andClaude Opus 4.6 181da8cf09 chore: bump version to 0.10.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:33:10 +08:00
7418andClaude Opus 4.6 38ca38e3cb fix: auto-refresh file tree after AI finishes streaming
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:31:48 +08:00
7418andClaude Opus 4.6 695daa60e1 fix: allow typing in input while AI is streaming, only block sending
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:29:13 +08:00
7418andClaude Opus 4.6 25abfb5404 fix: show "generating response" status when tools completed but AI still streaming
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:25:47 +08:00
7418andClaude Opus 4.6 4fa26032a4 feat: tool timeout auto-retry, file tree attachment, force stop button
- Add configurable tool timeout with auto-retry: when a tool exceeds the
  timeout threshold, abort and send a follow-up message asking Claude to
  try a different approach
- Add "+" button on file tree items to attach files directly to chat
  input via new /api/files/raw endpoint and custom event bridge
- Add force stop button in streaming status bar when tool runs >90s,
  with warning indicators at 60s
- Improve doc preview markdown rendering (padding, list indentation)
- Bump version to 0.10.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:33:21 +08:00
7418andClaude Opus 4.6 8747464c2f fix: doc preview bugs — close on chat switch, copy content, filter binary files
- Close doc preview when switching between chats (pathname change)
- Copy button now copies file content instead of file path
- Skip preview for images, videos, audio, archives, and other binary files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 23:26:29 +08:00
7418andClaude Opus 4.6 57ba6b2584 docs: update CLAUDE.md with CI auto-release workflow
Clarify that pushing a v* tag triggers CI to automatically build
all platforms and create the GitHub Release. Do not manually create
releases to avoid conflicts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:45:28 +08:00
7418andClaude Opus 4.6 8c6e7bba5b feat: add doc preview panel for HTML and Markdown files
Click files in the file tree to open a dedicated preview panel with
source/rendered toggle for .md/.mdx/.html/.htm files. Preview panel
supports drag-to-resize (320–800px) with localStorage persistence.

Bump version to 0.9.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 13:50:21 +08:00
7418andClaude Opus 4.6 f335c7f821 docs: update README with new features, CI/CD, and Linux support
Add resizable panels, file attachments, auto update check, graceful
shutdown to features. Update platform badge and download section for
Windows NSIS installer and Linux packages. Add CI/CD section with
tag-based auto-release workflow. Update project structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 00:55:47 +08:00
7418andClaude Opus 4.6 21ca106720 fix: graceful server shutdown with SIGKILL fallback
Add killServer() that sends SIGTERM via UtilityProcess.kill(), waits
up to 3s, then escalates to SIGKILL via process.kill(pid). Fixes
window-all-closed to await shutdown before quitting, and uses a
persistent isQuitting flag in before-quit to prevent infinite loops.

Closes #51

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:55:04 +08:00
歸藏 7ce93b1102 Merge pull request #45 from eltociear/add-ja-doc
docs: add Japanese README
2026-02-10 22:51:23 +08:00
7418andClaude Opus 4.6 41f08c37cf fix(ci): add author/description for Linux deb/rpm, allow partial release
Linux deb/rpm packaging requires maintainer email. Also make release
job run even if some platform builds fail (e.g. partial release with
available artifacts).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:24:32 +08:00
7418andClaude Opus 4.6 63e2521c9b chore: bump version to 0.8.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:05:36 +08:00
7418andClaude Opus 4.6 3e56d358b7 ci: publish release directly instead of draft
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:04:46 +08:00
7418andClaude Opus 4.6 a346ef230b ci: auto-create GitHub Release on tag push
When a v* tag is pushed, all platforms build in parallel then
a release job collects artifacts and creates a draft GitHub
Release with changelog and download instructions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 22:03:48 +08:00
7418andClaude Opus 4.6 5d80969b3b fix(ci): add --publish never and simplify Windows matrix
electron-builder auto-publishes in CI without GH_TOKEN, causing
failure. Also remove redundant Windows arch matrix since NSIS
bundles both x64 and arm64 in a single installer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:56:23 +08:00
7418andClaude Opus 4.6 57f1679585 ci: add GitHub Actions workflow for multi-platform builds
Supports Windows (NSIS), macOS (DMG), and Linux (AppImage/deb/rpm)
builds via native runners. Triggered manually or on version tags.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 21:50:46 +08:00
7418andClaude Opus 4.6 da07f1bd1b feat: draggable panel resize handles and remove extensions divider
Add ResizeHandle component for drag-to-resize side panels.
ChatListPanel (180–400px) and RightPanel (200–480px) widths
are persisted via localStorage. Also remove the border line
below the Extensions page tab selector.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 12:57:37 +08:00
7418andClaude Opus 4.6 7b64948cb4 feat: compact collapsible tool actions UI
Replace full-card tool rendering with a compact, collapsible group.
Each tool action is a single line with category icon, summary, and
status indicator. Collapsed by default for history, auto-expands
during streaming. Uses blockquote-style left border when expanded.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 12:09:20 +08:00
Ikko Ashimine 2d3e1d6998 docs: add Japanese README 2026-02-10 03:14:50 +09:00
7418andClaude Opus 4.6 74fb784f6d feat: auto update check and dangerously-skip-permissions mode
Add automatic update detection (checks GitHub Releases every 8h with
dialog prompt and blue dot on Settings icon) and a skip-permissions
toggle in Settings that uses the SDK's native bypassPermissions mode
to auto-approve all tool actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 23:14:42 +08:00
7418andClaude Opus 4.6 e4bbe8578a fix: persist file attachments so images/documents survive page reload
Previously uploaded files were only held in memory (optimistic message)
and lost when navigating away. Now:
- API route saves all uploaded files to .codepilot-uploads/ on disk
- File metadata (with filePath, not base64) is embedded in message content
- New /api/uploads endpoint serves persisted files
- FileAttachmentDisplay handles both base64 (in-memory) and filePath (DB)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:02:34 +08:00
7418andClaude Opus 4.6 183860587f fix: send images as multimodal vision content instead of file path references
Images were being saved to disk and referenced by text path in the prompt,
causing Claude to hallucinate about image contents since it never actually
saw the image data. Now images are sent as base64 content blocks via the
SDK's multimodal SDKUserMessage, enabling Claude's vision capability.
Non-image files continue to be saved to disk for Read tool access.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 20:51:23 +08:00
7418andClaude Opus 4.6 9926ce5f64 chore: bump version to 0.6.2
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:48:12 +08:00
7418andClaude Opus 4.6 9635585ab6 feat: blue theme migration and chat input UI polish
- Migrate purple/violet theme to blue across entire codebase (globals.css,
  ToolCallBlock, ChatListPanel, SkillEditor, SkillListItem, e2e tests)
- Increase input box border radius (rounded-md → rounded-2xl) and shadow
- Add arrow flip animation on mode/model selector dropdowns
- Change send button to circular with up-arrow icon
- Increase global Hugeicons stroke weight (1.5 → 2)
- Remove theme-colored focus ring on input box

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:48:06 +08:00
7418andClaude Opus 4.6 ee65c62d62 feat: collapse long user messages with expand/collapse toggle (#37)
User messages exceeding 300px are now collapsed by default with a
gradient fade overlay and expand/collapse button. Only applies to
user messages; assistant messages remain fully visible.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:33:49 +08:00
7418andClaude Opus 4.6 c405d7a677 chore: bump version to 0.6.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:05:07 +08:00
7418andClaude Opus 4.6 f861b3fca1 feat: slash command popover redesign, import dialog scroll fix, and new logo
- Slash command popover: add search box, group commands/skills with section
  headers, assign unique icons per built-in command, remove Built-in badge,
  show source labels for skills, deduplicate API skills with built-in names
- Import CLI Session dialog: fix list overflow and enable scrolling by
  replacing Radix ScrollArea with native overflow-y-auto
- New chat empty state: replace BotIcon with custom CodePilotLogo SVG
  component supporting light/dark theme

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:57:49 +08:00
7418andClaude Opus 4.6 dc320e7933 chore: bump version to 0.6.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:09:40 +08:00
歸藏 487c0a5cb7 fix: prevent path traversal in file APIs (#16)
fix: prevent path traversal in file tree and preview APIs
2026-02-09 16:08:11 +08:00
歸藏 8dcc19d077 fix: add graceful database shutdown (#20)
fix: add graceful database shutdown to prevent WAL file leaks
2026-02-09 16:08:07 +08:00
歸藏 c2c53e9591 feat: import and resume Claude Code CLI sessions (#28)
feat: import and resume Claude Code CLI sessions (closes #10)
2026-02-09 16:08:02 +08:00