- Add IS_DEV_ENVIRONMENT flag to paths.ts for automatic detection
- Dev uses 'Gemini Nexus Dev' app data dir and '.geminiNexus-agent-dev' agent dir
- Dev proxy defaults to port 8046, production stays on 8045
- Move app.setName() before packetLogPath to ensure correct userData path
- Config, DB, logs, and ORPC packets fully isolated between dev and prod
- Use app.getPreferredSystemLanguages() for reliable OS language detection
instead of relying solely on app.getLocale() which returns Chromium's
internal locale (was returning zh-CN on pt-BR systems)
- Support both Squirrel (%LOCALAPPDATA%) and WiX/MSI (Program Files)
install directories when checking if app runs from expected location
- Extract matchLocaleTag helper for cleaner language resolution logic
- Add getAllExpectedInstallRoots to enumerate all valid install paths
* Refactor Gemini model display: filter old versions, group low/high pro, and improve naming
* Fix potential negative minutes and refine Gemini 3 Pro grouping logic based on PR feedback
* The account change process has been sped up
* Address PR review: enhance error message and parameterize polling interval in process handler
* Address PR review: fix potential race condition in database backup logic
* fix: prevent renderer white screen and harden sentry gating
* feat: localize model labels
* chore: enable hoisted node-linker
* chore: ignore .agent/.claude/.codex in prettier
---------
Co-authored-by: Draculabo <[email protected]>
* feat: Add sensitive data masking to packet logging by introducing a sanitization function and a list of sensitive keys.
* test: mock console methods in logger tests and restore after each test
* refactor: remove redundant sensitive data masking functions and integrate safeStringifyPacket utility for improved logging
* fix: run format:write
* test: enhance logger tests with error handling for directory setup and cleanup
* refactor: optimize sensitive data masking logic by checking for exact matches in sensitive keys
* refactor: enhance sensitive data masking to handle circular references and improve sanitization logic
* refactor: update sensitive data masking comments and test descriptions to improve clarity and consistency
* test: enhance logger tests with dynamic log directory creation and cleanup after tests
* test: add unit tests for handling malformed JSON strings in sensitive data masking
- Trigger immediate quota poll when main window gains focus.
- Add 10s debounce to prevent API spam on frequent window switching.
- Add concurrency guard to prevent overlapping poll requests.
- Reset background polling interval after manual refresh.
- Add unit tests for polling, debounce, and concurrency logic.
* Fix: Linux tray quit and zombie icons (#23)
- Add before-quit handler to set isQuitting flag
- Change pgrep -x to pgrep -xi for case-insensitive matching on Linux
- Add antigravity-manager to self-kill exclusion filter
- Destroy existing tray before creating new one in initTray()
- Destroy tray in will-quit handler
- Export destroyTray function for cleanup
Fixes#23
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* Fix: Address code review feedback
- Add icon validation before creating tray (isEmpty check)
- Add try/catch around tray.destroy() calls for error handling
- Add try/catch around destroyTray() in will-quit handler
- Add explicit !manager check in Linux process filter for defensive coding
Co-Authored-By: Claude Opus 4.5 <[email protected]>
---------
Co-authored-by: Jirka <[email protected]>
Co-authored-by: Claude Opus 4.5 <[email protected]>