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' },