feat: bump version to 0.14.0

Includes all changes from this release cycle:
- Top header navigation (sidebar removed)
- Accounts screen decomposition and visual redesign
- Dev/prod environment isolation
- Usage Analytics with accurate averages, cost reporting, OpenRouter pricing
- Monitor moved to Usage with per-request token/cost tracking
- Clickable traffic logs with expandable JSON body viewer
- OpenCode IDE config in Quick Setup
- API Proxy reorganization (flattened tabs)
- CI/CD pipeline fixes (release config, Node version, pnpm alignment)
- Repository cleanup (~80MB of binaries removed)
This commit is contained in:
Gemini Nexus Bot committed 2026-05-02 00:32:21 -03:00
1 parent 3752dfda91
commit a905877c76
67 files changed
+9303 -3862

No files matched your search

+1 -1
View File
@@ -685,7 +685,7 @@ export async function setAutoSwitchEnabled(enabled: boolean): Promise<void> {
// Trigger an immediate check if enabled
if (enabled) {
const { CloudMonitorService } = await import('../../services/CloudMonitorService');
CloudMonitorService.poll().catch((err: unknown) =>
CloudMonitorService.poll().catch((err: unknown) =>
logger.error('Failed to poll after enabling auto-switch', err),
);
}
+20 -4
View File
@@ -193,7 +193,11 @@ export const cloudRouter = os.router({
try {
await CloudAccountRepo.setAccountProxy(input.accountId, input.proxyUrl);
} catch (error: unknown) {
logger.error('[ORPC] setAccountProxy error:', extractErrorMessage(error), error instanceof Error ? error.stack : undefined);
logger.error(
'[ORPC] setAccountProxy error:',
extractErrorMessage(error),
error instanceof Error ? error.stack : undefined,
);
throw error;
}
}),
@@ -204,7 +208,11 @@ export const cloudRouter = os.router({
return result;
} catch (error: unknown) {
logger.error('[ORPC] syncLocalAccount error:', extractErrorMessage(error), error instanceof Error ? error.stack : undefined);
logger.error(
'[ORPC] syncLocalAccount error:',
extractErrorMessage(error),
error instanceof Error ? error.stack : undefined,
);
throw toSyncLocalAccountORPCError(error);
}
}),
@@ -274,7 +282,11 @@ export const cloudRouter = os.router({
try {
return await exportCloudAccounts(input.stripTokens);
} catch (error: unknown) {
logger.error('[ORPC] exportCloudAccounts error:', extractErrorMessage(error), error instanceof Error ? error.stack : undefined);
logger.error(
'[ORPC] exportCloudAccounts error:',
extractErrorMessage(error),
error instanceof Error ? error.stack : undefined,
);
throw error;
}
}),
@@ -298,7 +310,11 @@ export const cloudRouter = os.router({
try {
return await importCloudAccounts(input.jsonContent, input.strategy);
} catch (error: unknown) {
logger.error('[ORPC] importCloudAccounts error:', extractErrorMessage(error), error instanceof Error ? error.stack : undefined);
logger.error(
'[ORPC] importCloudAccounts error:',
extractErrorMessage(error),
error instanceof Error ? error.stack : undefined,
);
throw error;
}
}),
+1 -7
View File
@@ -1,9 +1,5 @@
import { logger } from '../../utils/logger';
import {
bootstrapNestServer,
isNestServerRunning,
stopNestServer,
} from '../../server/main';
import { bootstrapNestServer, isNestServerRunning, stopNestServer } from '../../server/main';
import { ConfigManager } from '../config/manager';
/**
@@ -25,8 +21,6 @@ export async function closeGeminiNexus(): Promise<void> {
await stopNestServer();
}
/**
* Waits for the Gemini Nexus process to exit.
* Polls the NestJS server status until it stops or the timeout is reached.