v0.24.2 — fix agy summarizer on Windows (home isolation + token EPERM)
agy summarizer now works on Windows
The agy provider shipped in 0.24.0 assuming POSIX. Two Windows-only bugs made it unusable there — both fixed. (Only agy on Windows was affected; claude-oauth — the recommended Windows provider — and codex were always fine.)
1. Home isolation silently failed → would have polluted the real ~/.gemini
agy is a Go binary using os.UserHomeDir(), which reads $HOME on POSIX but %USERPROFILE% on Windows. The transport set only HOME, so on Windows agy ignored it, fell back to the real user profile, and would have grown the user's real ~/.gemini history unbounded — the exact thing the isolated home exists to prevent. Now sets both HOME and USERPROFILE.
2. The token symlink threw EPERM on Windows → every summarize crashed
fs.symlinkSync needs Administrator or Developer Mode on Windows. The token is now copied on Windows (and re-copied when the real token is newer, so a re-login still propagates), while POSIX keeps the symlink so token refresh flows through the real home for free.
Also
- Home setup is now fail-safe: a missing token or a placement failure surfaces agy's own auth error on spawn instead of crashing the worker.
- New unit tests exercise the Windows branch on the POSIX CI (via injectable
isWindows/tokenSource): copy-not-symlink, re-copy-on-newer, POSIX-symlink, missing-token-no-throw. - Linux behavior re-verified live: real
~/.geminiconversation count stays at delta 0, token still symlinked.
Suite: 1099/1099.