fix(telegram): preserve proxy env when applying autoSelectFamily dispatcher workaround#26239
fix(telegram): preserve proxy env when applying autoSelectFamily dispatcher workaround#26239rylena wants to merge 658 commits intoopenclaw:mainfrom
Conversation
…re connected `pickDefaultNode()` returned null when multiple connected canvas-capable nodes existed and none matched the local Mac heuristic. This caused "node required" errors for agents (especially sub-agents) calling the canvas tool without an explicit node parameter. In multi-node setups, any canvas-capable node is a valid target — the receiving node broadcasts A2UI surfaces to all other connected devices. Fall back to the first connected candidate instead of failing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Default missing fill field type to 'text' in /act route to avoid spurious 'fields are required' failures from relay/tool callers. Add regression test for fill payloads with ref+value only.
…aw#27584 by @qualiobra) Co-authored-by: Lucas Teixeira Campos Araujo <lucas@MacBook-Pro-de-Lucas.local>
The codex forward-compat fallback only matched openai-codex, leaving github-copilot users without gpt-5.3-codex despite the model being available on the Copilot API. Made-with: Cursor
… blocking When an entry's backoff exceeds the recovery budget, the code was using break which blocked all subsequent entries from being processed. This caused permanent queue blockage for any installation with a delivery entry at retryCount >= 2. Fix: Changed break to continue so entries whose backoff exceeds the remaining budget are skipped individually rather than blocking the entire loop. Closes openclaw#27638
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
23 similar comments
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
1 similar comment
|
Closing this PR because it looks dirty (too many unrelated or unexpected changes). This usually happens when a branch picks up unrelated commits or a merge went sideways. Please recreate the PR from a clean branch. |
Summary
src/telegram/fetch.tsfromAgenttoEnvHttpProxyAgentautoSelectFamilyworkaround for Node 22 IPv6 fallback, but preserveHTTP_PROXY/HTTPS_PROXYbehavior for outbound requestsWhy
Issue #26207 reports a regression in v2026.2.24 where replacing the global Undici dispatcher with a bare
Agentcauses all outbound traffic to bypass proxy environment variables. This change keeps the original network workaround while restoring proxy support.Testing
pnpm vitest run src/telegram/fetch.test.ts src/telegram/network-config.test.tsFixes #26207
Greptile Summary
Replaced
AgentwithEnvHttpProxyAgentin the global Undici dispatcher workaround to restore HTTP/HTTPS proxy environment variable support for Telegram outbound requests. The previous implementation using bareAgentbypassed proxy settings, breaking environments that rely onHTTP_PROXY/HTTPS_PROXYvariables. This fix preserves the original Node 22 IPv6 fallback workaround (autoSelectFamily) while restoring proxy functionality.The change is minimal and surgical:
src/telegram/fetch.tsto import and instantiateEnvHttpProxyAgentinstead ofAgentsrc/telegram/fetch.test.tsto mock and assert the correct constructor is usedConfidence Score: 5/5
AgenttoEnvHttpProxyAgent), directly addresses the reported regression in [Bug]: 2026.2.24 regression — setGlobalDispatcher breaks HTTP proxy for all outbound requests #26207, preserves the existingautoSelectFamilyworkaround for Node 22 IPv6 fallback, and includes comprehensive test updates. The fix follows undici's documented pattern for proxy-aware dispatchers. All tests pass, indicating no behavioral regressions.Last reviewed commit: db06727