()
| 363 | return result; |
| 364 | } |
| 365 | async function logStartupTelemetry(): Promise<void> { |
| 366 | if (isAnalyticsDisabled()) return; |
| 367 | const [isGit, worktreeCount, ghAuthStatus] = await Promise.all([getIsGit(), getWorktreeCount(), getGhAuthStatus()]); |
| 368 | logEvent('ncode_startup_telemetry', { |
| 369 | is_git: isGit, |
| 370 | worktree_count: worktreeCount, |
| 371 | gh_auth_status: ghAuthStatus as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, |
| 372 | sandbox_enabled: SandboxManager.isSandboxingEnabled(), |
| 373 | are_unsandboxed_commands_allowed: SandboxManager.areUnsandboxedCommandsAllowed(), |
| 374 | is_auto_bash_allowed_if_sandbox_enabled: SandboxManager.isAutoAllowBashIfSandboxedEnabled(), |
| 375 | auto_updater_disabled: isAutoUpdaterDisabled(), |
| 376 | prefers_reduced_motion: getInitialSettings().prefersReducedMotion ?? false, |
| 377 | ...getCertEnvVarTelemetry() |
| 378 | }); |
| 379 | } |
| 380 | |
| 381 | // @[MODEL LAUNCH]: Consider any migrations you may need for model strings. See migrateSonnet1mToSonnet45.ts for an example. |
| 382 | // Bump this when adding a new sync migration so existing users re-run the set. |
no test coverage detected