* Helper function to handle teleport prerequisites (authentication and git state) * Shows TeleportError dialog rendered into the existing root if needed
(root: Root, errorsToIgnore?: Set<TeleportLocalErrorType>)
| 507 | * Shows TeleportError dialog rendered into the existing root if needed |
| 508 | */ |
| 509 | async function handleTeleportPrerequisites(root: Root, errorsToIgnore?: Set<TeleportLocalErrorType>): Promise<void> { |
| 510 | const errors = await getTeleportErrors(); |
| 511 | if (errors.size > 0) { |
| 512 | // Log teleport errors detected |
| 513 | logEvent('tengu_teleport_errors_detected', { |
| 514 | error_types: Array.from(errors).join(',') as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, |
| 515 | errors_ignored: Array.from(errorsToIgnore || []).join(',') as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS |
| 516 | }); |
| 517 | |
| 518 | // Show TeleportError dialog for user interaction |
| 519 | await new Promise<void>(resolve => { |
| 520 | root.render(<AppStateProvider> |
| 521 | <KeybindingSetup> |
| 522 | <TeleportError errorsToIgnore={errorsToIgnore} onComplete={() => { |
| 523 | // Log when errors are resolved |
| 524 | logEvent('tengu_teleport_errors_resolved', { |
| 525 | error_types: Array.from(errors).join(',') as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS |
| 526 | }); |
| 527 | void resolve(); |
| 528 | }} /> |
| 529 | </KeybindingSetup> |
| 530 | </AppStateProvider>); |
| 531 | }); |
| 532 | } |
| 533 | } |
| 534 | |
| 535 | /** |
| 536 | * Creates a remote Claude.ai session with error handling and UI feedback. |
no test coverage detected