From 874037326f8bb6723a086e5992555fbcc89a613c Mon Sep 17 00:00:00 2001 From: Ryder Sun Date: Sat, 7 Nov 2026 22:56:14 +0800 Subject: [PATCH] Reject newly unidentified or incompatible agents during runs Revalidate explicit version and compatibility failures before invoking an active run or reusing its snapshot. Checked workspace and catalog tests and desktop pack. --- desktop/src/workspace/local-workspace-agent-invocation.cjs | 1 + desktop/test/workspace/local-workspace.test.cjs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/desktop/src/workspace/local-workspace-agent-invocation.cjs b/desktop/src/workspace/local-workspace-agent-invocation.cjs index 411cb13..7ff688a 100644 --- a/desktop/src/workspace/local-workspace-agent-invocation.cjs +++ b/desktop/src/workspace/local-workspace-agent-invocation.cjs @@ -342,6 +342,7 @@ class LocalWorkspaceAgentInvocation { const runtimeBlocked = runtime?.credentialState === 'missing' || this.isProjectAuthBlocked(kind, group.workdir) const usable = item => item.installed !== false && item.invocable !== false + && item.versionIdentified !== false && item.compatible !== false && item.runtimePrerequisitesReady !== false && !item.runtimeBlockSource && item.compatibilityState !== 'incompatible' && item.credentialState !== 'missing' && !['runtime-auth-failure', 'none'].includes(item.availabilitySource) diff --git a/desktop/test/workspace/local-workspace.test.cjs b/desktop/test/workspace/local-workspace.test.cjs index 9f1a3ef..f121fad 100644 --- a/desktop/test/workspace/local-workspace.test.cjs +++ b/desktop/test/workspace/local-workspace.test.cjs @@ -493,6 +493,8 @@ test('an active run cannot bypass newly failed Agent prerequisites or reuse a bl workspace.activeRuns.set(group.id, { runId: 'run-readiness', targetKinds: ['codex'] }) for (const blocked of [ { invocable: false }, + { versionIdentified: false }, + { compatible: false }, { runtimePrerequisitesReady: false }, { runtimeBlockSource: 'workbuddy-model-unavailable' }, { credentialState: 'missing' },