summaryrefslogtreecommitdiffhomepage
path: root/packages/host-bin/src/main.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/host-bin/src/main.ts')
-rw-r--r--packages/host-bin/src/main.ts9
1 files changed, 8 insertions, 1 deletions
diff --git a/packages/host-bin/src/main.ts b/packages/host-bin/src/main.ts
index 1594dcc..420f12e 100644
--- a/packages/host-bin/src/main.ts
+++ b/packages/host-bin/src/main.ts
@@ -19,6 +19,7 @@ import {
type SecretsAccess,
type StorageNamespace,
} from "@dispatch/kernel";
+import { extension as lspExt } from "@dispatch/lsp";
import { extension as providerOpenaiCompatExt } from "@dispatch/provider-openai-compat";
import { extension as sessionOrchestratorExt } from "@dispatch/session-orchestrator";
import { extension as skillsExt } from "@dispatch/skills";
@@ -75,6 +76,7 @@ const CORE_EXTENSIONS: readonly Extension[] = [
sessionOrchestratorExt,
skillsExt,
cacheWarmingExt,
+ lspExt,
createTransportHttpExtension(),
// Surface extensions — dependency order: surface-registry first, then consumers.
createSurfaceRegistryExtension(),
@@ -169,8 +171,13 @@ async function boot(): Promise<void> {
}
}
+ let shuttingDown = false;
const shutdown = async () => {
- logger.info("Shutting down — draining collector");
+ if (shuttingDown) return;
+ shuttingDown = true;
+ logger.info("Shutting down — deactivating extensions");
+ await host.deactivate();
+ logger.info("Draining collector");
await supervisor.stop();
process.exit(0);
};