fix(opencode): remove deferred MCP step gate

This commit is contained in:
Aiden Cline
2026-06-29 08:17:53 -05:00
parent c2d619741b
commit 421e33e531
4 changed files with 3 additions and 15 deletions
+1 -2
View File
@@ -51,7 +51,6 @@ interface Input {
bypassAgentCheck: boolean
messages: SessionV1.WithParts[]
promptOps: TaskPromptOps
canDeferMcpTools?: boolean
}
interface DeferredToolDescriptor {
@@ -248,7 +247,7 @@ export const resolve = Effect.fn("SessionMcpTools.resolve")(function* (input: In
Object.entries(mcpTools).filter(([key]) => userTools?.[key] !== false && !mcpDisabled.has(key)),
)
const deferredDescriptors =
(input.canDeferMcpTools ?? true) && flags.experimentalToolSearch && Object.keys(allowedMcpTools).length > 0
flags.experimentalToolSearch && Object.keys(allowedMcpTools).length > 0
? yield* deferredToolDescriptors(allowedMcpTools)
: []
const deferMcpTools =
-1
View File
@@ -1231,7 +1231,6 @@ export const layer = Layer.effect(
bypassAgentCheck,
messages: msgs,
promptOps,
canDeferMcpTools: maxSteps - step >= 2,
}).pipe(
Effect.provideService(Plugin.Service, plugin),
Effect.provideService(Permission.Service, permission),
-1
View File
@@ -25,7 +25,6 @@ export const resolve = Effect.fn("SessionTools.resolve")(function* (input: {
bypassAgentCheck: boolean
messages: SessionV1.WithParts[]
promptOps: TaskPromptOps
canDeferMcpTools?: boolean
}) {
const tools: Record<string, Tool> = {}
const run = yield* EffectBridge.make()
+2 -11
View File
@@ -132,7 +132,7 @@ const belowThresholdIt = makeIt({
queryDescription: "Natural language analytics query",
})
function resolveToolResult(input: { messages?: SessionV1.WithParts[]; canDeferMcpTools?: boolean } = {}) {
function resolveToolResult(input: { messages?: SessionV1.WithParts[] } = {}) {
return SessionTools.resolve({
agent,
model,
@@ -141,11 +141,10 @@ function resolveToolResult(input: { messages?: SessionV1.WithParts[]; canDeferMc
bypassAgentCheck: false,
messages: input.messages ?? [],
promptOps,
canDeferMcpTools: input.canDeferMcpTools,
})
}
function resolveTools(input: { messages?: SessionV1.WithParts[]; canDeferMcpTools?: boolean } = {}) {
function resolveTools(input: { messages?: SessionV1.WithParts[] } = {}) {
return resolveToolResult(input).pipe(Effect.map((result) => result.tools))
}
@@ -236,12 +235,4 @@ describe("session.tools", () => {
expect(Object.keys(tools).sort()).toEqual(["posthog_feature_flags", "posthog_query_trends"])
}),
)
deferredIt.instance("keeps MCP tools direct when deferred search cannot finish before the last step", () =>
Effect.gen(function* () {
const tools = yield* resolveTools({ canDeferMcpTools: false })
expect(Object.keys(tools).sort()).toEqual(["posthog_feature_flags", "posthog_query_trends"])
}),
)
})