mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-16 13:03:31 +08:00
The bypass-permission confirmation was resolving its displayed workspace from the session list's activeSessionId, while the chat composer sends runtime updates to the currently active tab. When those two UI states diverged after tab restores or project switches, the confirmation could show a parent or stale workspace path even though the chat was operating in another project. Constraint: Desktop tabs and session-list selection can diverge during restore and multi-tab workflows. Rejected: Thread workDir through every chat-composer call site | the selector already has the active tab context needed for uncontrolled usage. Confidence: high Scope-risk: narrow Directive: Keep uncontrolled permission-mode actions keyed to the same active tab used for set_permission_mode. Tested: cd desktop && bun run test -- src/components/controls/PermissionModeSelector.test.tsx --run Tested: cd desktop && bun run lint Not-tested: Live Windows desktop packaging smoke.
Claude Code Haha Desktop
基于 Tauri 2 + React 的桌面客户端。
开发
bun install
bun run tauri dev
构建
# macOS (Apple Silicon)
./scripts/build-macos-arm64.sh
# Windows (x64, MSI only)
.\scripts\build-windows-x64.ps1
构建产物位于 build-artifacts/ 目录,文件名会显式包含平台、架构和包类型。
常见问题
macOS 提示"已损坏,无法打开"
xattr -cr /Applications/Claude\ Code\ Haha.app