Peter Steinberger
6ea3a47dae
fix(feishu): harden routing, parsing, and media delivery
2026-03-02 03:22:07 +00:00
Peter Steinberger
cdbed3c9b1
fix(googlechat): land #30965 thread reply option support (@novan)
...
Landed from contributor PR #30965 by @novan.
Co-authored-by: novan <novan@users.noreply.github.com >
2026-03-02 03:16:48 +00:00
Peter Steinberger
355b4c62bc
fix(mattermost): land #30891 route private channels as group (@BlueBirdBack)
...
Landed from contributor PR #30891 by @BlueBirdBack.
Co-authored-by: BlueBirdBack <BlueBirdBack@users.noreply.github.com >
2026-03-02 03:14:17 +00:00
Peter Steinberger
6bea38b21f
fix(models): land #31202 normalize custom provider keys (@stakeswky)
...
Landed from contributor PR #31202 by @stakeswky.
Co-authored-by: stakeswky <stakeswky@users.noreply.github.com >
2026-03-02 03:11:55 +00:00
Peter Steinberger
342bf4838e
fix(cli): preserve json stdout while keeping doctor migration ( #24368 ) (thanks @altaywtf)
2026-03-02 03:10:02 +00:00
Altay
67b98139b9
test(cli): avoid brittle mock call indexing in json-mode checks
2026-03-02 03:10:02 +00:00
Altay
9e4a366ee6
fix(cli): keep json preflight stdout machine-readable
2026-03-02 03:10:02 +00:00
Peter Steinberger
493ebb915b
refactor: simplify telegram delivery and outbound session resolver flow
2026-03-02 03:09:40 +00:00
Peter Steinberger
166ae8f002
fix(matrix): land #31201 preserve room ID casing (@williamos-dev)
...
Landed from contributor PR #31201 by @williamos-dev.
Co-authored-by: williamos-dev <williamos-dev@users.noreply.github.com >
2026-03-02 03:09:23 +00:00
Peter Steinberger
efd303dbc4
fix: normalize Discord wildcard sentinel parsing ( #29459 ) (thanks @Sid-Qin)
2026-03-02 03:08:32 +00:00
SidQin-cyber
6210d2e238
fix(discord): prevent wildcard component registration collisions
...
Assign distinct sentinel registration ids to Discord wildcard handlers while preserving wildcard parser keys, so select/menu/modal handlers no longer get dropped on runtimes that dedupe by raw customId.
2026-03-02 03:08:32 +00:00
Peter Steinberger
c869ca4bbf
fix: harden discord agent cid parsing ( #29013 ) (thanks @Jacky1n7)
2026-03-02 03:07:48 +00:00
李肖然
c14c17403e
style: oxfmt for agent-components
2026-03-02 03:07:48 +00:00
李肖然
e95f96f77a
fix(discord): guard cid decode to avoid URIError
2026-03-02 03:07:48 +00:00
李肖然
9aba8422ca
fix(discord): accept cid in agent component interactions
2026-03-02 03:07:48 +00:00
Peter Steinberger
25b731c34a
fix: harden discord media fallback regressions ( #28906 ) (thanks @Sid-Qin)
2026-03-02 03:05:12 +00:00
SidQin-cyber
0a67033fe3
fix(discord): keep attachment metadata when media fetch is blocked
...
Preserve inbound attachment/sticker metadata in Discord message context when media download fails (for example due to SSRF blocking), so agents still see file references instead of silent drops.
Closes #28816
2026-03-02 03:05:12 +00:00
Peter Steinberger
e4e5d9c98c
fix(model): land #30932 auth-profile @ parsing for /model (@haosenwang1018)
...
Landed from contributor PR #30932 by @haosenwang1018.
Co-authored-by: haosenwang1018 <haosenwang1018@users.noreply.github.com >
2026-03-02 03:05:03 +00:00
Peter Steinberger
15c1c93a95
docs: add missing changelog entry for #31064
2026-03-02 03:04:10 +00:00
Hyup
9c03f8be08
telegram: retry media fetch with IPv4 fallback on connect errors ( #30554 )
...
* telegram: retry fetch once with IPv4 fallback on connect errors
* test(telegram): format fetch fallback test
* style(telegram): apply oxfmt for fetch test
* fix(telegram): retry ipv4 fallback per request
* test: harden telegram ipv4 fallback coverage (#30554 )
---------
Co-authored-by: root <root@vultr.guest >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-03-02 03:00:33 +00:00
Peter Steinberger
31c4722e90
docs: credit telegram empty-final regression coverage ( #30746 )
2026-03-02 02:59:08 +00:00
Rylen Anil
48d369749c
fix(telegram): skip null/undefined final text payloads
2026-03-02 02:59:08 +00:00
liuxiaopai-ai
e6e3a7b497
fix(telegram): retry DM thread sends without message_thread_id [AI-assisted]
2026-03-02 02:58:15 +00:00
Peter Steinberger
ef9085927b
test: cover voice fallback first-chunk reply behavior ( #31077 )
2026-03-02 02:57:10 +00:00
scoootscooob
2a381e6d7b
fix(telegram): replyToMode 'first' now only applies reply-to to first chunk
...
The `replyToMessageIdForPayload` was computed once outside the chunk
and media loops, so all chunks received the same reply-to ID even when
replyToMode was set to "first". This replaces the static binding with
a lazy `resolveReplyTo()` function that checks `hasReplied` at each
send site, and updates `hasReplied` immediately after the first
successful send.
Fixes #31039
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 02:57:10 +00:00
Brian Le
f64d25bd3e
fix(telegram): scope DM topic thread keys by chat id ( #31064 )
...
* fix(telegram): scope DM topic thread keys by chat id
* test(telegram): update dm topic session-key expectation
* fix(telegram): parse scoped dm thread ids in outbound recovery
* chore(telegram): format accounts config merge block
* test(nodes): simplify mocked exports for ts tuple spreads
2026-03-02 02:54:45 +00:00
Tak Hoffman
bbab94c1fe
security(feishu): bind doc create grants to trusted requester context ( #31184 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 20:51:45 -06:00
不做了睡大觉
e482da6682
fix(ollama): prioritize provider baseUrl for embedded runner ( #30964 )
...
* fix(ollama): honor provider baseUrl in embedded runner
* Embedded Ollama: clarify provider baseUrl precedence comment
* Changelog: note embedded Ollama baseUrl precedence fix
* Telegram: apply required formatter update in accounts config merge
* Revert "Telegram: apply required formatter update in accounts config merge"
This reverts commit d372b26975 .
* Update CHANGELOG.md
---------
Co-authored-by: User <user@example.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 18:38:42 -08:00
Gustavo Madeira Santana
fd341d0d3f
docs(changelog): add diffs entry
2026-03-01 21:36:42 -05:00
Peter Steinberger
b0c7f1ebe2
fix: harden sessions_spawn delivery params and telegram account routing ( #31000 , #31110 )
2026-03-02 02:35:48 +00:00
Peter Steinberger
684ac44b71
fix(ui): land #31133 cron edit form viewport scrolling (@Sid-Qin)
...
Landed from contributor PR #31133 by @Sid-Qin.
Co-authored-by: Sid-Qin <Sid-Qin@users.noreply.github.com >
2026-03-02 02:34:43 +00:00
Peter Steinberger
8eac33d4e0
fix(ui): land #30978 debug event log full-width payloads (@stozo04)
...
Landed from contributor PR #30978 by @stozo04.
Co-authored-by: stozo04 <stozo04@users.noreply.github.com >
2026-03-02 02:32:18 +00:00
Vincent Koc
601d1ccd24
Docs(Docker): clarify official GHCR image usage and setup flow ( #31180 )
...
* Add pre built images to docker docs
* Docs(Docker): clarify official GHCR image guidance
* Changelog: document Docker docs image clarification
* Update CHANGELOG.md
---------
Co-authored-by: Ken <ken@ipl31.net >
2026-03-01 18:31:20 -08:00
Peter Steinberger
5850045df6
fix(cron): land #31145 explicit delivery none in editor (@byungsker)
...
Landed from contributor PR #31145 by @byungsker.
Co-authored-by: byungsker <byungsker@users.noreply.github.com >
2026-03-02 02:29:42 +00:00
Peter Steinberger
1da7906a5d
fix(line): land #31151 M4A voice MIME detection (@scoootscooob)
...
Landed from contributor PR #31151 by @scoootscooob.
Co-authored-by: scoootscooob <scoootscooob@users.noreply.github.com >
2026-03-02 02:26:41 +00:00
Peter Steinberger
a1a8ec6870
fix(windows): land #31147 plugin install spawn EINVAL (@codertony)
...
Landed from contributor PR #31147 by @codertony.
Co-authored-by: codertony <codertony@users.noreply.github.com >
2026-03-02 02:23:53 +00:00
Peter Steinberger
00d2df46c7
docs(changelog): note security audit and slack download scope hardening
2026-03-02 02:23:43 +00:00
Peter Steinberger
40fda40aa7
fix(slack): scope download-file to channel and thread context
2026-03-02 02:23:22 +00:00
Peter Steinberger
17bae93680
fix(security): warn on wildcard control-ui origins and feishu owner grants
2026-03-02 02:23:22 +00:00
Peter Steinberger
cc0806dfab
docs(discord): standardize eventQueue timeout guidance
2026-03-02 02:22:59 +00:00
Peter Steinberger
4f8c49e85b
docs: backfill telegram changelog credits for merged PRs
2026-03-02 02:14:14 +00:00
Jose E Velez
0c8fa63b93
feat: lightweight bootstrap context mode for heartbeat/cron runs (openclaw#26064) thanks @jose-velez
...
Verified:
- pnpm build
- pnpm check (fails on pre-existing unrelated repo issues in extensions/diffs and src/agents/tools/nodes-tool.test.ts)
- pnpm vitest run src/agents/bootstrap-files.test.ts src/infra/heartbeat-runner.model-override.test.ts src/cli/cron-cli.test.ts
- pnpm test:macmini (fails on pre-existing extensions/diffs import errors; touched suites pass)
Co-authored-by: jose-velez <10926182+jose-velez@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 20:13:24 -06:00
Peter Steinberger
0a182bb4d1
docs(changelog): add entries for recent landed Discord PRs
2026-03-02 02:11:21 +00:00
liuxiaopai-ai
042d06a19b
Telegram: stop bot on polling teardown
2026-03-02 02:09:52 +00:00
Phineas1500
666a4763ee
Telegram: preserve proxy-aware global dispatcher
2026-03-02 02:09:49 +00:00
Peter Steinberger
b3990ad58a
fix: add changelog for #8805 (thanks @Arthur742Ramos)
2026-03-02 02:09:40 +00:00
Arthur Freitas Ramos
2dcd2f9094
fix: refresh Copilot token before expiry and retry on auth errors
...
GitHub Copilot API tokens expire after ~30 minutes. When OpenClaw spawns
a long-running subagent using Copilot as the provider, the token would
expire mid-session with no recovery mechanism, causing 401 auth errors.
This commit adds:
- Periodic token refresh scheduled 5 minutes before expiry
- Auth error detection with automatic token refresh and single retry
- Proper timer cleanup on session shutdown to prevent leaks
The implementation uses a per-attempt retry flag to ensure each auth
error can trigger one refresh+retry cycle without creating infinite
retry loops.
🤖 AI-assisted: This fix was developed with GitHub Copilot CLI assistance.
Testing: Fully tested with 3 new unit tests covering auth retry, retry
reset, and timer cleanup scenarios. All 11 auth rotation tests pass.
2026-03-02 02:09:40 +00:00
Peter Steinberger
e54ddf6161
fix: add changelog for #19077 (thanks @ayanesakura)
2026-03-02 02:08:27 +00:00
Ayane
5b562e96cb
test: add missing ENETRESET test case
2026-03-02 02:08:27 +00:00
Ayane
76ed274aad
fix(agents): trigger model failover on connection-refused and network-unreachable errors
...
Previously, only ETIMEDOUT / ESOCKETTIMEDOUT / ECONNRESET / ECONNABORTED
were recognised as failover-worthy network errors. Connection-level
failures such as ECONNREFUSED (server down), ENETUNREACH / EHOSTUNREACH
(network disconnected), ENETRESET, and EAI_AGAIN (DNS failure) were
treated as unknown errors and did not advance the fallback chain.
This is particularly impactful when a local fallback model (e.g. Ollama)
is configured: if the remote provider is unreachable due to a network
outage, the gateway should fall back to the local model instead of
returning an error to the user.
Add the missing error codes to resolveFailoverReasonFromError() and
corresponding e2e tests.
Closes #18868
2026-03-02 02:08:27 +00:00