From 1a684445278e66aea03215f2ae1e71c96a05c8c2 Mon Sep 17 00:00:00 2001 From: Merge_Conflict - Pasi Date: Tue, 11 Aug 2026 00:23:43 +1000 Subject: [PATCH] Accept current Coven daemon health shape Signed-off-by: Merge_Conflict - Pasi --- src/lib/daemon-startup-contract.test.ts | 12 ++++++++++++ src/lib/daemon-startup-contract.ts | 7 ++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/lib/daemon-startup-contract.test.ts b/src/lib/daemon-startup-contract.test.ts index 3d1df63cf..7589869d6 100644 --- a/src/lib/daemon-startup-contract.test.ts +++ b/src/lib/daemon-startup-contract.test.ts @@ -15,6 +15,18 @@ assert.deepEqual(assessDaemonStartupCompatibility(healthy, "1.2.3"), { apiVersion: "v1", }); +assert.deepEqual(assessDaemonStartupCompatibility({ ...healthy, apiVersion: "coven.daemon.v1" }, "1.2.3"), { + ok: true, + daemonVersion: "1.2.3", + apiVersion: "coven.daemon.v1", +}); + +assert.deepEqual(assessDaemonStartupCompatibility({ ...healthy, covenVersion: "0.0.0" }, "1.2.3"), { + ok: true, + daemonVersion: "1.2.3", + apiVersion: "v1", +}); + assert.deepEqual(assessDaemonStartupCompatibility({ ...healthy, apiVersion: "v2" }, "1.2.3"), { ok: false, code: "unsupported_api", diff --git a/src/lib/daemon-startup-contract.ts b/src/lib/daemon-startup-contract.ts index 7dd5d9dd5..6d37d2f6c 100644 --- a/src/lib/daemon-startup-contract.ts +++ b/src/lib/daemon-startup-contract.ts @@ -1,7 +1,7 @@ import { exactSemver } from "./exact-semver.ts"; /** The named daemon API versions Cave can safely adopt. */ -export const SUPPORTED_DAEMON_API_VERSIONS = new Set(["1", "v1"]); +export const SUPPORTED_DAEMON_API_VERSIONS = new Set(["1", "v1", "coven.daemon.v1"]); export type DaemonStartupHealth = { ok?: unknown; @@ -46,8 +46,8 @@ export function assessDaemonStartupCompatibility( }; } - const daemonVersion = exactSemver(health.covenVersion); - if (!daemonVersion) { + const reportedDaemonVersion = exactSemver(health.covenVersion); + if (!reportedDaemonVersion) { return { ok: false, code: "invalid_runtime_version", @@ -64,6 +64,7 @@ export function assessDaemonStartupCompatibility( }; } + const daemonVersion = reportedDaemonVersion === "0.0.0" ? expectedVersion : reportedDaemonVersion; if (daemonVersion !== expectedVersion) { return { ok: false,