mirror of
https://github.com/NanmiCoder/claude-code-haha.git
synced 2026-10-10 11:53:10 +08:00
44137ccb91
The NSIS installer spawned by quitAndInstall() inherits the app process environment, including the app-managed CLAUDE_CONFIG_DIR / CC_HAHA_APP_PORTABLE_DIR pair that applyStartupPortableMode() derives from app-mode.json. The installer's recovery helper then re-validated that snapshot against the persisted mode it reads via its own APPDATA and blocked the whole upgrade on any disagreement (mode switched without a restart, APPDATA differing from the app's known-folder view), even though an active data directory outside every install directory cannot be touched by removing the old version. Manually launched setups never saw the variables, which is why they kept working. - clear the app-managed portable env before handing off to the spawned installer (shared with the existing app.relaunch() cleanup), so built-in updates present the same clean environment as a manual setup - downgrade the recovery helper's managed-mode consistency check from fail-closed to treating the directory as externally managed; the install-contained legacy data guard below it still refuses unsafe removals, and matching persisted modes behave exactly as before