MCPcopy Create free account
hub / github.com/Zoo-Code-Org/Zoo-Code / dispose

Method dispose

apps/cli/src/agent/extension-host.ts:562–613  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

560 // ==========================================================================
561
562 async dispose(): Promise<void> {
563 // Clear managers.
564 this.outputManager.clear()
565 this.askDispatcher.clear()
566
567 // Remove message listener.
568 if (this.messageListener) {
569 this.off("extensionWebviewMessage", this.messageListener)
570 this.messageListener = null
571 }
572
573 // Reset client.
574 this.client.reset()
575
576 // Deactivate extension.
577 if (this.extensionModule?.deactivate) {
578 try {
579 await this.extensionModule.deactivate()
580 } catch {
581 // NO-OP
582 }
583 }
584
585 // Clear references.
586 this.vscode = null
587 this.extensionModule = null
588 this.extensionAPI = null
589
590 // Clear globals.
591 delete (global as Record<string, unknown>).vscode
592 delete (global as Record<string, unknown>).__extensionHost
593
594 // Restore console.
595 this.restoreConsole()
596
597 // Clean up ephemeral storage.
598 if (this.ephemeralStorageDir) {
599 try {
600 await fs.promises.rm(this.ephemeralStorageDir, { recursive: true, force: true })
601 this.ephemeralStorageDir = null
602 } catch {
603 // NO-OP
604 }
605 }
606
607 // Restore previous CLI runtime marker for process hygiene in tests.
608 if (this.previousCliRuntimeEnv === undefined) {
609 delete process.env.ROO_CLI_RUNTIME
610 } else {
611 process.env.ROO_CLI_RUNTIME = this.previousCliRuntimeEnv
612 }
613 }
614}

Callers

nothing calls this directly

Calls 4

restoreConsoleMethod · 0.95
clearMethod · 0.65
offMethod · 0.65
resetMethod · 0.45

Tested by

no test coverage detected