18 Commits
Author SHA1 Message Date
vin ab78d93252 fix: project id forwarding regression (#93)
* fix(proxy): avoid empty project context and hydrate project_id from account token

* test(proxy): add regressions for empty project and token project_id hydration

* test(scripts): add live request validator for project_id forwarding
2026-02-11 12:36:01 +08:00
vin e5037dabcb chore(lint): remove unused imports via eslint unused-imports (#89) 2026-02-11 02:54:23 +08:00
vin b89dd2c3bb feat: global error fallback and e2e (#91)
* fix(ui): add global route fallback with error toast and retry

* test(e2e): cover cloud accounts error fallback UI
2026-02-11 02:25:10 +08:00
vin 13f10fe32f feat: implement protocol parity and harden upstream handling (#88)
* feat: implement protocol parity and harden upstream handling

* docs(agents): add lodash-es utility method and named import guideline
2026-02-11 00:42:39 +08:00
Riccardo Venturini 5155e37fd1 fix: prevent sensitive data logging (#70)
* 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
2026-02-08 14:31:04 +08:00
vin a93c6d0cea feat: complete account-bound profile switching and hardening (#78) 2026-02-08 01:10:07 +08:00
vin 2ae2216f1e refactor: migrate to winston and enable daily rotated app logs (#71) 2026-02-06 21:10:54 +08:00
vin ed94abf0d6 fix: restore account switching on Antigravity 1.16.5 and migrate db sync to drizzle (#69) 2026-02-06 20:16:02 +08:00
Draculabo dd9e84a0db feat: implement smart foreground quota refresh with debounce
- 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.
2026-01-28 12:58:35 +08:00
vin 02080588b7 fix(security): add safeStorage fallback for production builds (#38) (#43)
Summary
  - Replace hard keytar dependency with a multi-strategy key storage:
    1) safeStorage (Electron built-in) — preferred
    2) keytar (system keychain) — fallback
    3) file-based encryption — last resort
  - Dynamically import keytar to avoid asar load failures
  - Refactor cloudHandler to use const (clean code)
  - Fix “Failed to load cloud accounts” in packaged app

  Rationale
  The keytar native module can fail to load from asar archives in production builds. This ensures the app works even when system keychain access is unavailable.

  Additional changes
  - Replace sync file ops with async (fs/promises)
  - Add atomic file writes to prevent data races
  - Implement concurrency lock for key generation
  - Add security error codes for better diagnostics
  - Add warnings for file-based fallback mode
  - Align error handling after merge
  - Migrate legacy encrypted account data

  References
  - Issue: #38
  - Commit: 92dc2f6
2026-01-27 03:05:41 +08:00
Draculabo 37a9750df2 feat: Improved process detection on macOS/Linux using find-process to reliably identify the main application 2026-01-21 20:48:03 +08:00
Draculabo f224fea081 feat: add expiration warning for Google OAuth authentication 2026-01-21 00:43:00 +08:00
Draculabo a343e0c1ae chore:: apply prettier formatting to entire codebase 2026-01-19 19:40:11 +08:00
Draculabo 5772e2e90e feat: implement stability fixes and enhance error handling 2026-01-16 02:51:29 +08:00
Draculabo fb13826afd feat: identity injection 2026-01-10 04:08:55 +08:00
Draculabo aec5c8ec39 fix: make E2E tests i18n-agnostic 2025-12-23 19:55:55 +08:00
Draculabo 628fae200b test: fix database path error 2025-12-23 19:36:49 +08:00
Draculabo d0417339c1 Initial Commit 2025-12-23 01:38:53 +08:00