Open
Conversation
…ch API The web_search tool was not respecting HTTP_PROXY/HTTPS_PROXY environment variables, causing 'fetch failed' errors when running behind a proxy. This fix adds ProxyAgent support for the Brave Search API, similar to how other tools in OpenClaw handle proxy configuration. Fixes #27405
@Sid-Qin) Co-authored-by: Sid Qin <s3734389@gmail.com>
… thanks @widingmarcus-cyber) Co-authored-by: Marcus Widing <widing.marcus@gmail.com>
…nks @widingmarcus-cyber) Co-authored-by: Marcus Widing <widing.marcus@gmail.com>
…hanks @Crpdim) Co-authored-by: Crpdim <crpdim@users.noreply.github.com>
…count mode (#27244) The bitable tool registration was reading credentials directly from top-level feishuCfg.appId/appSecret, missing the accounts.* path used in multi-account mode. Align with drive.ts and wiki.ts by using listEnabledFeishuAccounts() which handles both legacy and multi-account configurations.
Previously feishu_doc always used accounts[0], so multi-account setups created docs under the first bot regardless of the calling agent. This change resolves accountId via a before_tool_call hook (defaulting from agentAccountId) and selects the Feishu client per call. Fixes #27321
… of separate agent turn When the sender-name lookup fails with a Feishu permission error (code 99991672), the bot was dispatching two separate agent turns: 1. A dedicated permission-error notification turn 2. The regular inbound user message turn This caused two bot replies for a single user message, degrading UX and wasting tokens. Fix: instead of a separate dispatch, append the permission error notice directly to the main messageBody. The agent receives both the user's message and the system notice in a single turn, and responds once. Fixes #27372
The config schema validates provider api fields against ModelApiSchema, but openai-codex-responses was missing from the allowed values. This forces users to set api: "openai-responses" for the openai-codex provider, which routes requests to api.openai.com/v1/responses instead of chatgpt.com/backend-api/codex/responses, causing HTTP 401 errors because Codex OAuth tokens lack api.responses.write scope for the standard OpenAI Responses endpoint. The runtime already supports openai-codex-responses throughout: model registry, stream dispatch (streamOpenAICodexResponses), and provider detection (OPENAI_MODEL_APIS set). Only the config schema was missing the literal.
Fixes #27674 The TUI was erasing already-streamed assistant text when tool calls were triggered. This happened because the finalize() method in TuiStreamAssembler was not using the protectBoundaryDrops option when updating run state. Now finalize() applies the same boundary drop protection as ingestDelta(), ensuring that streamed text before tool calls is preserved when the final payload drops earlier content blocks.
… dispatch Several call sites of deliverOutboundPayloads() were not passing the sessionKey parameter, causing the internal message:sent hook to never fire (the guard `if (!sessionKeyForInternalHooks) return` in deliver.ts silently skipped the triggerInternalHook call). Fixed call sites: - commands/agent/delivery.ts (agent loop replies — main fix) - infra/heartbeat-runner.ts (heartbeat OK + alert delivery) - infra/outbound/message.ts (message tool sends) - cron/isolated-agent/delivery-dispatch.ts (cron job delivery) - gateway/server-node-events.ts (node event forwarding) The sessionKey parameter already existed in DeliverOutboundPayloadsCoreParams and was used by deliver.ts to emit the message:sent internal hook event, but was simply not being passed from most callers.
…t fallbacks (#16684) * fix(gemini-oauth): align loadCodeAssist metadata and endpoint fallback * test(gemini-oauth): cover endpoint fallback and env project fallback * fix(gemini-oauth): route timed fetches through ssrf guard * test(gemini-oauth): mock guarded fetch in oauth tests
…Auth and docs (#16683) * docs: add account-risk caution to Google OAuth provider docs * docs(plugin): add Gemini CLI account safety caution * CLI: add risk hint for Gemini CLI auth choice * Onboarding: require confirmation for Gemini CLI OAuth * Tests: cover Gemini CLI OAuth risk confirmation flow
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 free
to 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
Describe the problem and fix in 2–5 bullets:
Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
List user-visible changes (including defaults/config).
If none, write
None.Security Impact (required)
Yes/No)Yes/No)Yes/No)Yes/No)Yes/No)Yes, explain risk + mitigation:Repro + Verification
Environment
Steps
Expected
Actual
Evidence
Attach at least one:
Human Verification (required)
What you personally verified (not just CI), and how:
Compatibility / Migration
Yes/No)Yes/No)Yes/No)Failure Recovery (if this breaks)
Risks and Mitigations
List only real risks for this PR. Add/remove entries as needed. If none, write
None.