Peter Steinberger
0ab2c82624
docs: dedupe 2026.3.1 changelog entries
2026-03-02 05:04:28 +00:00
Peter Steinberger
6ba7238ac6
build: bump versions to 2026.3.2
2026-03-02 04:55:53 +00:00
Umut CAN
d2472af724
Chore: add Dockerfile HEALTHCHECK and debug-log silent catch blocks ( #11478 )
...
* Docker: add /healthz-based container HEALTHCHECK
* Docs/Docker: document built-in image HEALTHCHECK
* Changelog: note Dockerfile healthcheck probe
* Docs/Docker: explain HEALTHCHECK behavior in plain language
* Docker: relax HEALTHCHECK interval to 3m
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 20:52:14 -08:00
Alberto Leal
449511484d
fix(gateway): allow ws:// to private network addresses ( #28670 )
...
* fix(gateway): allow ws:// to RFC 1918 private network addresses
resolve ws-private-network conflicts
* gateway: keep ws security strict-by-default with private opt-in
* gateway: apply private ws opt-in in connection detail guard
* gateway: apply private ws opt-in in websocket client
* onboarding: gate private ws urls behind explicit opt-in
* gateway tests: enforce strict ws defaults with private opt-in
* onboarding tests: validate private ws opt-in behavior
* gateway client tests: cover private ws env override
* gateway call tests: cover private ws env override
* changelog: add ws strict-default security entry for pr 28670
* docs(onboard): document private ws break-glass env
* docs(gateway): add private ws env to remote guide
* docs(docker): add private ws break-glass env var
* docs(security): add private ws break-glass guidance
* docs(config): document OPENCLAW_ALLOW_PRIVATE_WS
* Update CHANGELOG.md
* gateway: normalize private-ws host classification
* test(gateway): cover non-unicast ipv6 private-ws edges
* changelog: rename insecure private ws break-glass env
* docs(onboard): rename insecure private ws env
* docs(gateway): rename insecure private ws env in config reference
* docs(gateway): rename insecure private ws env in remote guide
* docs(security): rename insecure private ws env
* docs(docker): rename insecure private ws env
* test(onboard): rename insecure private ws env
* onboard: rename insecure private ws env
* test(gateway): rename insecure private ws env in call tests
* gateway: rename insecure private ws env in call flow
* test(gateway): rename insecure private ws env in client tests
* gateway: rename insecure private ws env in client
* docker: pass insecure private ws env to services
* docker-setup: persist insecure private ws env
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 20:49:45 -08:00
Peter Steinberger
92ad89da00
build: prepare 2026.3.1-beta.1 release
2026-03-02 04:38:03 +00:00
Vincent Koc
eeb72097ba
Gateway: add healthz/readyz probe endpoints for container checks ( #31272 )
...
* Gateway: add HTTP liveness/readiness probe routes
* Gateway tests: cover probe route auth bypass and methods
* Docker Compose: add gateway /healthz healthcheck
* Docs: document Docker probe endpoints
* Dockerfile: note built-in probe endpoints
* Gateway: make probe routes fallback-only to avoid shadowing
* Gateway tests: verify probe paths do not shadow plugin routes
* Changelog: note gateway container probe endpoints
2026-03-01 20:36:58 -08:00
cyb1278588254
96ffbb5aaf
CLI: add config path subcommand to print active config file path ( #26256 )
...
Merged via squash.
Prepared head SHA: b11c593a34
Co-authored-by: cyb1278588254 <48212932+cyb1278588254@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-03-01 23:33:20 -05: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
Peter Steinberger
aeb817353f
style(changelog): apply oxfmt
2026-03-02 04:30:05 +00:00
Peter Steinberger
fa9148400e
fix(android): align lint gates and photo permission handling
2026-03-02 04:28:17 +00:00
Peter Steinberger
37d036714e
fix(thinking): default Claude 4.6 to adaptive
2026-03-02 04:27:26 +00:00
Peter Steinberger
8208f5e822
docs: reorder unreleased changelog by user impact
2026-03-02 04:19:56 +00:00
Peter Steinberger
d17f4432b3
chore: fix gate formatting and raw-fetch allowlist lines
2026-03-02 04:18:48 +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
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
Mark L
5b06c8c6e3
fix(config): normalize gateway bind host aliases during migration ( #30855 )
...
* fix(config): normalize gateway bind host aliases during migration [AI-assisted]
* config(legacy): detect gateway.bind host aliases as legacy
* config(legacy): sanitize bind alias migration log output
* test(config): cover bind alias legacy detection and log escaping
* config(legacy): add source-literal gate to legacy rules
* config(legacy): make issue detection source-aware
* config(legacy): require source-literal gateway.bind alias detection
* config(io): pass parsed source to legacy issue detection
* test(config): cover resolved-only gateway.bind alias legacy detection
* changelog: format after #30855 rebase conflict resolution
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 19:53:00 -08:00
Peter Steinberger
ede944371f
fix(telegram): land #31067 first-chunk voice-fallback reply refs (@xdanger)
...
Landed from contributor PR #31067 by @xdanger.
Co-authored-by: Kros Dai <xdanger@gmail.com >
2026-03-02 03:50:09 +00:00
Anandesh Sharma
61ef76edb5
docs(gateway): document Docker bridge networking and loopback bind caveat ( #28001 )
...
* docs(gateway): document Docker bridge networking and loopback bind caveat
The default loopback bind makes the gateway unreachable with Docker
bridge networking because port-forwarded traffic arrives on eth0, not
lo. Add a note in both the Dockerfile and the configuration reference
explaining the workarounds (--network host or bind: lan).
Fixes #27950
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* docs(docker): note legacy gateway.bind alias migration
* docs(gateway): clarify legacy bind alias auto-migration
* docs(docker): require bind mode values in gateway.bind
* docs(gateway): avoid bind alias auto-migration claim
* changelog: add #28001 docker bind docs credit
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 19:45:27 -08:00
Peter Steinberger
e1bf9591c3
fix(web-tools): land #31176 allow RFC2544 trusted fetch range (@sunkinux)
...
Landed from contributor PR #31176 by @sunkinux.
Co-authored-by: sunkinux <sunkinux@users.noreply.github.com >
2026-03-02 03:43:25 +00:00
Peter Steinberger
2a252a14cc
fix(feishu): harden target routing, dedupe, and reply fallback
2026-03-02 03:41:53 +00:00
Clawborn
77ccd35e5e
Fix onboard ignoring OPENCLAW_GATEWAY_TOKEN env var ( #22658 )
...
* Fix onboard ignoring OPENCLAW_GATEWAY_TOKEN env var
When running onboard via docker-setup.sh, the QuickStart wizard
generates its own 48-char token instead of using the 64-char token
already set in OPENCLAW_GATEWAY_TOKEN. This causes a token mismatch
that breaks all CLI commands after setup.
Check process.env.OPENCLAW_GATEWAY_TOKEN before falling back to
randomToken() in both the interactive QuickStart path and the
non-interactive path.
Closes #22638
Co-authored-by: Clawborn <tianrun.yang103@gmail.com >
* Tests: cover quickstart env token fallback
* Changelog: note docker onboarding token parity fix
* Tests: restore env var after non-interactive token fallback test
* Update CHANGELOG.md
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-01 19:40:40 -08:00
Peter Steinberger
0202d79df4
fix(inbound-meta): land #30984 include account_id context (@Stxle2)
...
Landed from contributor PR #30984 by @Stxle2.
Co-authored-by: Stxle2 <166609401+Stxle2@users.noreply.github.com >
2026-03-02 03:36:48 +00:00
Ayaan Zaidi
c13b35b83d
feat(telegram): improve DM topics support ( #30579 ) (thanks @kesor)
2026-03-02 09:06:45 +05:30
Peter Steinberger
aafc4d56e3
docs(changelog): credit fixes from PRs #31058 #31211 #30941 #31047 #31205
2026-03-02 03:35:49 +00:00
Peter Steinberger
d446722f2f
docs(changelog): merge post-v2026.2.26 release notes
2026-03-02 03:34:00 +00: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
Glucksberg
08c35eb13f
fix(cron): re-arm one-shot at-jobs when rescheduled after completion (openclaw#28915) thanks @Glucksberg
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-01 21:31:24 -06:00
Peter Steinberger
08f8aea32e
fix(signal): land #31138 syncMessage presence filtering (@Sid-Qin)
...
Landed from contributor PR #31138 by @Sid-Qin.
Co-authored-by: Sid-Qin <sidqin0410@gmail.com >
2026-03-02 03:28:25 +00:00
Peter Steinberger
22666034a0
docs(changelog): credit feishu fix contributors
2026-03-02 03:24:21 +00:00
Vincent Koc
1a42ea3abf
fix(auto-reply): normalize block-reply callback to Promise for timeout path ( #31200 )
...
* Auto-reply: wrap block reply callback in Promise.resolve for timeout safety
* Build: add strict smoke build script for CI regression gating
* CI: gate strict TS smoke build in check workflow
* docs(changelog): add auto-reply block reply timeout fix under Unreleased
* docs(changelog): credit original #19779 contributor and vincentkoc
2026-03-01 19:23:38 -08:00
Vincent Koc
030565b18c
Docker: add OCI base-image labels and document base-image metadata ( #31196 )
...
* Docker: add OCI base image labels
* Docs(Docker): document base image metadata context
* Changelog: note Docker base annotation docs update
* Changelog: add author credit for Docker base annotations
* Update docker.md
* Docker: add OCI source and docs labels
* CI(Docker): publish OCI revision/version labels
* Docs(Docker): list OCI image annotations
* Changelog: expand OCI annotation coverage note
* Docker: set OCI license annotation to MIT
* Docs(Docker): align OCI license annotation to MIT
* Docker: note docs sync path for OCI annotations
* Docker: normalize OCI label block indentation
2026-03-01 19:22:44 -08: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
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
Peter Steinberger
c869ca4bbf
fix: harden discord agent cid parsing ( #29013 ) (thanks @Jacky1n7)
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
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
liuxiaopai-ai
e6e3a7b497
fix(telegram): retry DM thread sends without message_thread_id [AI-assisted]
2026-03-02 02:58:15 +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
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