Refactor Gemini model display: filter old versions, group low/high pкo, and improve naming (#114)

* 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]>
This commit is contained in:
AngeloooooandDraculabo authored and GitHub committed 2026-02-19 19:37:30 +08:00
1 parent b9497648c6
commit 8ed4593f73
162 files changed
+2981 -2541

No files matched your search

+4 -1
View File
@@ -99,7 +99,10 @@ describe('Account Handler', () => {
it('should reuse existing device profile on switch', async () => {
const account = await addAccountSnapshot();
const accountFilePath = path.join(testAgentDir, 'accounts.json');
const allAccounts = JSON.parse(fs.readFileSync(accountFilePath, 'utf-8')) as Record<string, any>;
const allAccounts = JSON.parse(fs.readFileSync(accountFilePath, 'utf-8')) as Record<
string,
any
>;
allAccounts[account.id].deviceProfile = {
machineId: 'existing-machine',
macMachineId: 'existing-mac',
-1
View File
@@ -266,7 +266,6 @@ describe('CloudAccountRepo.syncFromIDE', () => {
expect(wroteUnifiedKey).toBe(true);
expect(updatedOldKey).toBe(false);
});
});
describe('cloud switch fail-fast path', () => {
+1 -5
View File
@@ -21,11 +21,7 @@ describe('ProtobufUtils Unified OAuth', () => {
const refreshToken = 'refresh-token-def';
const expiry = 1700001234;
const unifiedB64 = ProtobufUtils.createUnifiedOAuthToken(
accessToken,
refreshToken,
expiry,
);
const unifiedB64 = ProtobufUtils.createUnifiedOAuthToken(accessToken, refreshToken, expiry);
const unifiedBytes = new Uint8Array(Buffer.from(unifiedB64, 'base64'));
const parsed = ProtobufUtils.extractOAuthTokenInfoFromUnifiedState(unifiedBytes);
+5 -1
View File
@@ -6,7 +6,11 @@ import { Observable } from 'rxjs';
import { ProxyService } from '../../server/modules/proxy/proxy.service';
const mockTokenManager = { getNextToken: vi.fn(), markAsRateLimited: vi.fn(), markAsForbidden: vi.fn() };
const mockTokenManager = {
getNextToken: vi.fn(),
markAsRateLimited: vi.fn(),
markAsForbidden: vi.fn(),
};
const mockGeminiClient = { streamGenerateInternal: vi.fn(), generateInternal: vi.fn() };
class TestableProxyService extends ProxyService {