feat: implement telemetry system for application usage tracking
- Added telemetry utility to capture application events and metrics. - Integrated PostHog for event tracking with distinct user identification. - Implemented telemetry initialization, event capturing, and shutdown procedures. feat: add UV environment setup for Python management - Created utilities to manage Python installation and configuration. - Implemented network optimization checks for Python installation mirrors. - Added functions to set up managed Python environments with error handling. feat: enhance host API communication with token management - Introduced host API token retrieval and management for secure requests. - Updated host API fetch functions to include token in headers. - Added support for creating event sources with authentication. test: add comprehensive tests for gateway protocol and startup helpers - Implemented unit tests for gateway protocol helpers, event dispatching, and state management. - Added tests for startup recovery strategies and process policies. - Ensured coverage for connection monitoring and restart governance logic.
This commit is contained in:
36
electron/gateway/launch-strategy.ts
Normal file
36
electron/gateway/launch-strategy.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
export type GatewayLaunchStrategy = 'utility-process' | 'node-runtime';
|
||||
|
||||
function normalizeForcedStrategy(
|
||||
forced: string | undefined,
|
||||
): GatewayLaunchStrategy | null {
|
||||
const normalized = forced?.trim().toLowerCase();
|
||||
switch (normalized) {
|
||||
case 'utility':
|
||||
case 'utility-process':
|
||||
return 'utility-process';
|
||||
case 'node-runtime':
|
||||
case 'node':
|
||||
case 'cli':
|
||||
case 'electron-run-as-node':
|
||||
return 'node-runtime';
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export function resolveGatewayLaunchStrategy(options: {
|
||||
platform: NodeJS.Platform;
|
||||
mode: 'dev' | 'packaged';
|
||||
forced?: string | undefined;
|
||||
}): GatewayLaunchStrategy {
|
||||
const forced = normalizeForcedStrategy(options.forced);
|
||||
if (forced) {
|
||||
return forced;
|
||||
}
|
||||
|
||||
if (options.platform === 'win32' && options.mode === 'dev') {
|
||||
return 'node-runtime';
|
||||
}
|
||||
|
||||
return 'utility-process';
|
||||
}
|
||||
Reference in New Issue
Block a user