mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-16 13:03:31 +08:00
Desktop portable mode depends on CLI-driven installs using the same filesystem root as the app. The installed terminal launcher now carries CLAUDE_CONFIG_DIR into macOS/Linux shell invocations and uses a Windows cmd wrapper so plugin, skill, and MCP operations do not fall back to the native home config. Moved portable bundles also rebase cached plugin install paths when the cache exists under the current config root. Constraint: Desktop portable bundles are file-system based and must survive zip/unzip relocation. Rejected: Copy the sidecar binary directly into user bin | it cannot inject the selected portable config directory for future CLI installs. Rejected: Rewrite plugin install paths unconditionally | missing cache directories should remain visible as broken state instead of being silently retargeted. Confidence: high Scope-risk: moderate Directive: Keep desktop launcher wrappers as env-carrying sh/cmd files; do not revert to raw sidecar copies without portable install verification. Tested: bun test src/server/__tests__/desktop-cli-launcher.test.ts src/utils/plugins/installedPluginsManager.test.ts Tested: cargo test portable --manifest-path desktop/src-tauri/Cargo.toml Tested: bun run check:server Tested: bun run check:native Tested: macOS launcher fixture plus Computer Use Finder verification of portable marker output. Not-tested: Windows physical desktop execution; Windows wrapper behavior is covered by unit test only.