David Friedland
ebe54e6903
fix(adapters): restructure sendPayload media loop to avoid uninitialized lastResult
2026-03-02 15:35:47 +00:00
David Friedland
d06ee86292
feat(adapters): add sendPayload to batch-d adapters
2026-03-02 15:35:47 +00:00
Peter Steinberger
f1cab9c5e5
fix: stabilize zalouser account-scope regression hook ( #26672 ) (thanks @bmendonca3)
2026-03-02 15:34:17 +00:00
bmendonca3
f4c3e483fe
zalouser: update account-scope test for scoped store API
2026-03-02 15:34:17 +00:00
bmendonca3
6aa20e91d9
security(zalouser): scope pairing-store auth to accountId
2026-03-02 15:34:17 +00:00
Peter Steinberger
44c50d9a73
fix(types): tighten shared helper typing contracts
2026-03-02 15:21:19 +00:00
Peter Steinberger
ed21b63bb8
refactor(plugin-sdk): share auth, routing, and stream/account helpers
2026-03-02 15:21:19 +00:00
Peter Steinberger
741e74972b
refactor(plugin-sdk): share boolean action param parsing
2026-03-02 14:36:41 +00:00
Mark L
097ad88f9d
fix(feishu): tolerate missing webhook defaults in older plugin-sdk (openclaw#31639) thanks @liuxiaopai-ai
...
Verified:
- pnpm test extensions/feishu/src/monitor.state.defaults.test.ts
- pnpm exec vitest run extensions/feishu/src/monitor.state.defaults.test.ts
- pnpm exec oxfmt --check extensions/feishu/src/monitor.state.ts extensions/feishu/src/monitor.state.defaults.test.ts CHANGELOG.md
- CI note: non-required check "check" failed on unrelated TS errors outside this PR scope.
Co-authored-by: liuxiaopai-ai <73659136+liuxiaopai-ai@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 07:42:16 -06:00
Peter Steinberger
d977af5853
refactor(diffs): share artifact detail and screenshot test helpers
2026-03-02 12:13:45 +00:00
Peter Steinberger
033c731f19
fix(ci): annotate feishu hoisted mock type
2026-03-02 09:59:16 +00:00
Peter Steinberger
c1a46301b6
fix(ci): align strict nullable typing across channels and ui
2026-03-02 09:56:14 +00:00
Gustavo Madeira Santana
5f49a5da3c
Diffs: extend image quality configs and add PDF as a format option ( #31342 )
...
Merged via squash.
Prepared head SHA: cc12097851
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-02 04:38:50 -05:00
Peter Steinberger
ad8d766f65
refactor(extensions): dedupe channel config, onboarding, and monitors
2026-03-02 08:54:20 +00:00
Tyler Yust
f918b336d1
fix: agent-only announce path, BB message IDs, sender identity, SSRF allowlist ( #23970 )
...
* fix(agents): defer announces until descendant cleanup settles
* fix(bluebubbles): harden message metadata extraction
* feat(contributors): rank by composite score (commits, PRs, LOC, tenure)
* refactor(control-ui): move method guard after path checks to improve request handling
* fix subagent completion announce when only current run is pending
* fix(subagents): keep orchestrator runs active until descendants finish
* fix: prepare PR feedback follow-ups (#23970 ) (thanks @tyler6204)
2026-03-01 22:52:11 -08:00
garnetlyx
ffa7c13c9b
fix(voice-call): verify call status with provider before loading stale calls
...
On gateway restart, persisted non-terminal calls are now verified with
the provider (Twilio/Plivo/Telnyx) before being restored to memory.
This prevents phantom calls from blocking the concurrent call limit.
- Add getCallStatus() to VoiceCallProvider interface
- Implement for all providers with SSRF-guarded fetch
- Transient errors (5xx, network) keep the call with timer fallback
- 404/known-terminal statuses drop the call
- Restart max-duration timers for restored answered calls
- Skip calls older than maxDurationSeconds or without providerCallId
2026-03-01 22:13:24 -08:00
Peter Steinberger
4a1be98254
fix(diffs): harden viewer security and docs
2026-03-02 05:07:09 +00:00
Peter Steinberger
6ba7238ac6
build: bump versions to 2026.3.2
2026-03-02 04:55:53 +00:00
Vincent Koc
b7615e0ce3
Exec/ACP: inject OPENCLAW_SHELL into child shell env ( #31271 )
...
* exec: mark runtime shell context in exec env
* tests(exec): cover OPENCLAW_SHELL in gateway exec
* tests(exec): cover OPENCLAW_SHELL in pty mode
* acpx: mark runtime shell context for spawned process
* tests(acpx): log OPENCLAW_SHELL in runtime fixture
* tests(acpx): assert OPENCLAW_SHELL in runtime prompt
* docs(env): document OPENCLAW_SHELL runtime markers
* docs(exec): describe OPENCLAW_SHELL exec marker
* docs(acp): document OPENCLAW_SHELL acp marker
* docs(gateway): note OPENCLAW_SHELL for background exec
* tui: tag local shell runs with OPENCLAW_SHELL
* tests(tui): assert OPENCLAW_SHELL in local shell runner
* acp client: tag spawned bridge env with OPENCLAW_SHELL
* tests(acp): cover acp client OPENCLAW_SHELL env helper
* docs(env): include acp-client and tui-local shell markers
* docs(acp): document acp-client OPENCLAW_SHELL marker
* docs(tui): document tui-local OPENCLAW_SHELL marker
* exec: keep shell runtime env string-only for docker args
* changelog: note OPENCLAW_SHELL runtime markers
2026-03-01 20:31:06 -08:00
Sid
4691aab019
fix(cron): guard against year-rollback in croner nextRun ( #30777 )
...
* fix(cron): guard against year-rollback in croner nextRun
Croner can return a past-year timestamp for some timezone/date
combinations (e.g. Asia/Shanghai). When nextRun returns a value at or
before nowMs, retry from the next whole second and, if still stale,
from midnight-tomorrow UTC before giving up.
Closes #30351
* googlechat: guard API calls with SSRF-safe fetch
* test: fix hoisted plugin context mock setup
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 22:22:59 -06:00
Peter Steinberger
6fc0787bf0
chore(deps): bump workspace dependencies
2026-03-02 04:22:33 +00:00
Peter Steinberger
e1f3ded033
refactor: split telegram delivery and unify media/frontmatter/i18n pipelines
2026-03-02 04:14:06 +00:00
Peter Steinberger
f46bd2e0cc
refactor(feishu): split monitor startup and transport concerns
2026-03-02 04:09:24 +00:00
Peter Steinberger
c0bf42f2a8
refactor: centralize delivery/path/media/version lifecycle
2026-03-02 04:04:36 +00:00
Peter Steinberger
f4f094fc3b
test(mattermost): cover defaultAccount resolution
2026-03-02 04:03:55 +00:00
Peter Steinberger
41537e9303
fix(channels): add optional defaultAccount routing
2026-03-02 04:03:46 +00:00
Peter Steinberger
3fc19ed7d7
fix: harden feishu startup probe sequencing ( #29941 ) (thanks @bmendonca3)
2026-03-02 03:59:23 +00:00
bmendonca3
abc7b6fbec
Feishu: skip duplicate bot-info retries after preflight
2026-03-02 03:59:23 +00:00
bmendonca3
bdca44693c
Feishu: serialize startup bot-info probes
2026-03-02 03:59:23 +00:00
Peter Steinberger
02b1958760
fix(feishu): suppress stale replay typing indicators ( #30709 ) (thanks @arkyu2077)
2026-03-02 03:53:24 +00:00
yuxh1996
7fbc40f821
fix(feishu): skip typing indicator on old messages after context compaction ( #30418 )
2026-03-02 03:53:24 +00:00
Peter Steinberger
2a252a14cc
fix(feishu): harden target routing, dedupe, and reply fallback
2026-03-02 03:41:53 +00:00
Gustavo Madeira Santana
6532757cdf
Diffs: add viewer payload validation and presentation defaults
2026-03-01 22:38:14 -05:00
Peter Steinberger
edd9319552
fix(feishu): land #31209 prevent system preview leakage (@stakeswky)
...
Landed from contributor PR #31209 by @stakeswky.
Co-authored-by: stakeswky <stakeswky@users.noreply.github.com >
2026-03-02 03:33:48 +00:00
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
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
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
Ash (Bug Lab)
5b64b96c6c
fix(discord): add ackReactionScope channel override + off/none values ( #28268 )
2026-03-02 02:04:39 +00:00
Peter Steinberger
68a8a98ab7
fix(acpx): default strict windows wrapper policy on windows
2026-03-02 01:31:32 +00:00
Peter Steinberger
4320cde91d
fix(slack): land #31028 from @taw0002
...
Co-authored-by: taw0002 <webmaster@sodsolutions.com >
2026-03-02 01:03:39 +00:00
Peter Steinberger
dc816b84ea
refactor(matrix): unify startup + split monitor config flow
2026-03-02 00:37:09 +00:00
Peter Steinberger
412eabc42b
fix(session): retire stale dm main route after dmScope migration ( #31010 )
2026-03-02 00:33:54 +00:00
Peter Steinberger
3a68c56264
refactor(security): unify webhook guardrails across channels
2026-03-02 00:31:42 +00:00
Peter Steinberger
0c0f556927
fix(discord): unify reconnect watchdog and land #31025/#30530
...
Landed follow-up intent from contributor PR #31025 (@theotarr) and PR #30530 (@liuxiaopai-ai).
Co-authored-by: theotarr <theotarr@users.noreply.github.com >
Co-authored-by: liuxiaopai-ai <liuxiaopai-ai@users.noreply.github.com >
2026-03-02 00:24:15 +00:00
Peter Steinberger
84d0a794ec
fix: harden matrix startup errors + add regressions ( #31023 ) (thanks @efe-arv)
2026-03-02 00:15:10 +00:00
efe-arv
235ed71e94
fix: handle late client.start() failures via single catch handler
...
The .catch() handler now covers both early and late failures:
- Within 2s: sets settled=true, startup throws to caller
- After 2s: sets params.state.started=false so subsequent
resolveSharedMatrixClient() calls detect the dead client
Removed redundant second .catch() — single handler covers all cases.
2026-03-02 00:15:10 +00:00
efe-arv
4f9daf9821
fix: propagate client.start() errors to caller instead of swallowing
...
Codex review feedback: ensureSharedClientStarted now throws the error
from client.start() if it rejects during the 2s grace window, so
resolveSharedMatrixClient() properly reports failure (e.g. bad token,
unreachable homeserver) instead of leaving the provider in a
running-but-not-syncing state.
2026-03-02 00:15:10 +00:00
efe-arv
8884f99c92
fix: address review feedback — handle start failure, remove placeholder URL
...
- Don't mark client as started if client.start() errors during init
- Remove placeholder issue URL from comment
2026-03-02 00:15:10 +00:00