Uh oh!
There was an error while loading. Please reload this page.
fix(core): deduplicate websearch consent prompts - #40869
Merged
Merged
Conversation
| const stored = yield* kv.get("websearch:provider") | ||
| if (stored === false) return yield* new WebSearch.DisabledError() | ||
| if (typeof stored === "string" && providers.some((provider) => provider.id === stored)) | ||
| return yield* Effect.void |
| return yield* kv.set("websearch:provider", providerID) | ||
| }), | ||
| ) | ||
| .pipe(Effect.andThen(ctx.websearch.query(input))) |
Contributor
There was a problem hiding this comment.
what happens if the first form is ignored? don't think NOT ask for the form again?
opencode-agentBotforce-pushed
the
websearch-consent-lock
branch
5 times, most recently
from
August 6, 2026 18:34
a2c000e to
9c68c96Compareopencode-agentBotforce-pushed
the
websearch-consent-lock
branch
from
August 6, 2026 18:42
9c68c96 to
3207722Comparejlongster
disabled auto-merge
August 6, 2026 21:50
Uh oh!
There was an error while loading. Please reload this page.
github-actionsBot
pushed a commit
to ReStranger/opencode
that referenced
this pull request
Aug 7, 2026
* upstream/v2: (84 commits) fix(core): align shell output limits (anomalyco#41007) feat(core): bound tool output (anomalyco#40929) refactor(app): remove legacy layout (anomalyco#40947) refactor(core): simplify file tools to lexical paths (anomalyco#40962) fix(core): default custom agents to primary (anomalyco#40880) fix(core): migrate legacy small model (anomalyco#40966) fix(tui): dismiss stale permission prompts (anomalyco#40960) fix(tui): use tab layout setting (anomalyco#40952) fix(tui): keep model selection session scoped (anomalyco#40913) feat(ai): expose model compatibility options (anomalyco#40942) feat(cli): add session import and export (anomalyco#40914) fix(core): deduplicate websearch consent prompts (anomalyco#40869) test(core): cover config precedence feat(tui): enable cwd-scoped session tabs by default feat(core): normalize mixed config formats (anomalyco#40919) fix(tui): simplify MCP status rows (anomalyco#40916) fix(tui): compact single-line prompts (anomalyco#40924) fix(config): omit unset optional values (anomalyco#40918) fix(tui): open authorization links (anomalyco#40912) refactor(mcp): remove unused registration status (anomalyco#40904) ...
teknium1 added a commit
to NousResearch/hermes-agent
that referenced
this pull request
Aug 17, 2026
Port from anomalyco/opencode#40869: parallel tool calls hitting the same dangerous-command gate each enqueued their own _ApprovalEntry and fired their own notify_cb — the user got N identical prompts and had to /approve N times while the agent sat wedged. _await_gateway_decision now detects an already-pending identical approval (same command text + pattern-key set) in the session queue and waits on the leader's event via _await_coalesced_leader instead of re-prompting. Followers adopt session/always (persistence would auto-pass a re-check anyway) and deny/timeout (re-asking a just-declined command is prompt spam); a single-use 'once' makes the follower issue a fresh prompt. Pre/post approval hooks fire with coalesced=True for followers.
teknium1 added a commit
to NousResearch/hermes-agent
that referenced
this pull request
Aug 17, 2026
Port from anomalyco/opencode#40869: parallel tool calls hitting the same dangerous-command gate each enqueued their own _ApprovalEntry and fired their own notify_cb — the user got N identical prompts and had to /approve N times while the agent sat wedged. _await_gateway_decision now detects an already-pending identical approval (same command text + pattern-key set) in the session queue and waits on the leader's event via _await_coalesced_leader instead of re-prompting. Followers adopt session/always (persistence would auto-pass a re-check anyway) and deny/timeout (re-asking a just-declined command is prompt spam); a single-use 'once' makes the follower issue a fresh prompt. Pre/post approval hooks fire with coalesced=True for followers.
lisajlau pushed a commit
to lisajlau/hermes-agent
that referenced
this pull request
Aug 20, 2026
Port from anomalyco/opencode#40869: parallel tool calls hitting the same dangerous-command gate each enqueued their own _ApprovalEntry and fired their own notify_cb — the user got N identical prompts and had to /approve N times while the agent sat wedged. _await_gateway_decision now detects an already-pending identical approval (same command text + pattern-key set) in the session queue and waits on the leader's event via _await_coalesced_leader instead of re-prompting. Followers adopt session/always (persistence would auto-pass a re-check anyway) and deny/timeout (re-asking a just-declined command is prompt spam); a single-use 'once' makes the follower issue a fresh prompt. Pre/post approval hooks fire with coalesced=True for followers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Checks
bun test test/tool-websearch.test.ts --only-failures(frompackages/core)GOMAXPROCS=2 bun typecheck(frompackages/core)bun run lint packages/core/src/tool/plugin/websearch.ts packages/core/test/tool-websearch.test.tsgit diff --checkRequested by: @jlongster (James Long via Slack)