Gustavo Madeira Santana
d35172cce5
docs: add changelog entry for Telegram media placeholder fix
2026-02-16 23:50:59 +01:00
Peter Steinberger
21e5c0ce57
chore: reorder latest changelog bullets by user impact
2026-02-16 23:27:23 +01:00
Vignesh Natarajan
4e930db432
fix: guard reminder note ( #18588 ) (thanks @vignesh07)
2026-02-16 14:13:17 -08:00
Seb Slight
0f6b39ea57
Docs/Changelog: add missing entry for #18586 ( #18604 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 5134983645
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 17:10:14 -05:00
pip-nomel
1567d6cbb4
feat(discord): download attachments from forwarded messages ( #17049 )
...
Co-authored-by: Shadow <shadow@openclaw.ai >
2026-02-16 15:23:40 -06:00
Shadow
c593709d25
Discord: add per-button component allowlist
2026-02-16 15:15:00 -06:00
Shadow
05a83b9e97
Discord: add reusable component option
2026-02-16 14:22:49 -06:00
Shadow
fc60336c18
Discord: add native exec options
2026-02-16 14:18:17 -06:00
Sk Akram
e5eb5b3e43
feat: add stuck loop detection and exponential backoff infrastructure for agent polling ( #17118 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: eebabf679b
Co-authored-by: akramcodez <179671552+akramcodez@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-16 15:16:35 -05:00
Shadow
3646625dc1
Infra: skip Discord text exec approvals
2026-02-16 13:53:12 -06:00
zerone0x
81d2a91a90
fix(discord): send initial message for non-forum thread creation ( #18117 )
...
Co-authored-by: Shadow <shadow@openclaw.ai >
2026-02-16 13:48:46 -06:00
victor-wu.eth
7c240a2b58
feat(discord): faster reaction status state machine (watchdog + debounce) ( #18248 )
...
* fix(discord): avoid unnecessary message fetches in reaction notifications
* style(discord): format reaction listener for CI
* feat(discord): add reaction status machine and fix tool/final wiring
* fix(discord): harden reaction status transitions and cleanup
* revert(discord): restore status-machine flow from 0a5a72204
* fix(auto-reply): restore lifecycle callback forwarding for channels
* chore(ci): add daily upstream sync workflow for custom branch
* fix(discord): non-blocking reactions and robust cleanup
* chore: remove unrelated workflow from Discord-only PR
* Discord: streamline reaction handling
* Docs: add Discord reaction changelog
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-02-16 13:38:39 -06:00
Vignesh Natarajan
c953cfdee7
chore (changelog): note webchat command auth fix
2026-02-16 11:30:49 -08:00
Shadow
72e228e14b
Heartbeat: allow suppressing tool warnings ( #18497 )
...
* Heartbeat: allow suppressing tool warnings
* Changelog: note heartbeat tool-warning suppression
2026-02-16 13:29:24 -06:00
nabbilkhan
03cadc4b7a
fix(auth): auto-expire stale auth profile cooldowns and reset error count
...
When an auth profile hits a rate limit, `errorCount` is incremented and
`cooldownUntil` is set with exponential backoff. After the cooldown
expires, the time-based check correctly returns false — but `errorCount`
persists. The next transient failure immediately escalates to a much
longer cooldown because the backoff formula uses the stale count:
60s × 5^(errorCount-1), max 1h
This creates a positive feedback loop where profiles appear permanently
stuck after rate limits, requiring manual JSON editing to recover.
Add `clearExpiredCooldowns()` which sweeps all profiles on every call to
`resolveAuthProfileOrder()` and clears expired `cooldownUntil` /
`disabledUntil` values along with resetting `errorCount` and
`failureCounts` — giving the profile a fair retry window (circuit-breaker
half-open → closed transition).
Key design decisions:
- `cooldownUntil` and `disabledUntil` handled independently (a profile
can have both; only the expired one is cleared)
- `errorCount` reset only when ALL unusable windows have expired
- `lastFailureAt` preserved for the existing failureWindowMs decay logic
- In-memory mutation; disk persistence happens lazily on the next store
write, matching the existing save pattern
Fixes #3604
Related: #13623 , #15851 , #11972 , #8434
2026-02-16 12:53:45 -06:00
Vignesh Natarajan
1cf3aba3f6
chore (changelog): note qmd multi-agent startup fix
2026-02-16 10:35:48 -08:00
Vignesh
b0a01fe482
Agents/Tools: preflight exec script files for shell var injection ( #18457 )
...
* fix(agents): don't force store=true for codex responses
* test: stabilize respawn + subagent usage assertions
* Agents/Tools: preflight exec to detect shell variable injection in scripts
* Changelog: fix merge marker formatting
2026-02-16 10:34:29 -08:00
Shadow
1b7301051b
Config: require Discord ID strings ( #18220 )
2026-02-16 12:22:58 -06:00
Nimrod Gutman
5a39e13c92
fix(ios): restore missing location monitor merge files ( #18260 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f60cd10f6d
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-02-17 01:41:53 +08:00
Mariano
f2e12646b4
docs(changelog): credit @Marvae for iOS onboarding QR ( #18325 )
...
Co-authored-by: Mariano Belinky <mariano@mb-server-643.local >
2026-02-16 17:39:53 +00:00
Mariano
9e26fe4459
fix(ios): gate talk barge-in on isolated audio routes ( #18265 )
...
Co-authored-by: Mariano Belinky <mariano@mb-server-643.local >
2026-02-16 17:37:10 +00:00
Mariano
b3859b488c
feat(ios): add background listening core toggle ( #18261 )
...
Co-authored-by: Mariano Belinky <mariano@mb-server-643.local >
2026-02-16 17:36:17 +00:00
Mariano
ad27716d3f
feat(ios): add Talk voice directive hint toggle ( #18250 )
...
* feat(ios): add Talk voice directive hint toggle
* docs(changelog): credit voice directive hint slice
---------
Co-authored-by: Mariano Belinky <mariano@mb-server-643.local >
2026-02-16 17:33:42 +00:00
Ayaan Zaidi
16327f21da
feat(telegram): support inline button styles ( #18241 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 239cb3552e
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 22:48:47 +05:30
Gustavo Madeira Santana
8a67016646
Agents: raise bootstrap total cap and warn on /context truncation ( #18229 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f6620526df
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-16 12:04:53 -05:00
Ayaan Zaidi
c8a536e30a
fix(agents): scope message tool schema by channel ( #18215 )
...
Co-authored-by: Shadow <shadow@openclaw.ai >
2026-02-16 10:34:18 -06:00
Mariano
130e59a9c0
iOS: port onboarding + QR pairing flow stability ( #18162 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a87eadea19
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:22:51 +00:00
Mariano
9a1e168685
iOS: port gateway connect/discovery stability + onboarding reset ( #18164 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8165ec5bae
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:07:22 +00:00
Mariano
2e7fac2231
iOS: port talk redaction, accessibility, and ATS hardening ( #18163 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8a9a05f04e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:00:08 +00:00
Mariano
6effcdb551
OpenClawKit: stabilize iOS ChatUI updates after gateway replies ( #18165 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9b6e38d5be
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 15:51:11 +00:00
Mariano
68e39cf2c3
CLI: restore and harden qr --remote pairing behavior ( #18166 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a79fc2a3c6
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 15:38:07 +00:00
Peter Steinberger
fc9fae2c29
chore(changelog): restore 2026.2.15 and move entries to 2026.2.16
2026-02-16 15:53:00 +01:00
Mariano
599c890221
CLI/Gateway: restore qr flow with --remote support (clean) ( #18091 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 4bee77ce06
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 14:48:14 +00:00
pierreeurope
fec4be8dec
fix(cron): prevent daily jobs from skipping days (48h jump) #17852 ( #17903 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 1ffe6a45af
Co-authored-by: pierreeurope <248892285+pierreeurope@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:35:49 -05:00
brandonwise
095d522099
fix(security): create session transcript files with 0o600 permissions ( #18066 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 962f497d24
Co-authored-by: brandonwise <21148772+brandonwise@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:33:40 -05:00
sebslight
f4b2fd00bc
fix(config): harden object-array merge-by-id fallback
2026-02-16 08:24:55 -05:00
Hongwei Ma
dddb1bc942
fix(telegram): fix streaming with extended thinking models overwriting previous messages/ also happens to Execution error ( #17973 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 34b52eead8
Co-authored-by: Marvae <11957602+Marvae@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 18:54:34 +05:30
Jackten
e3e8046a93
fix(infra): avoid detached finally unhandled rejection in fetch wrapper ( #18014 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 4ec21c89cb
Co-authored-by: Jackten <2895479+Jackten@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:17:23 -05:00
不做了睡大觉
cb391f4bdc
fix(config): prevent config.patch from destroying arrays when patch entries lack id ( #18030 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a857df9e32
Co-authored-by: stakeswky <64798754+stakeswky@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:13:51 -05:00
zerone0x
c2a0cf0c28
fix(tts): update tool description to prevent duplicate audio delivery ( #18046 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 70c096abaa
Co-authored-by: zerone0x <39543393+zerone0x@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:09:02 -05:00
Ítalo Souza
39bb1b3322
fix: auto-recover primary model after rate-limit cooldown expires ( #17478 ) ( #18045 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f7a7865727
Co-authored-by: PlayerGhost <28265945+PlayerGhost@users.noreply.github.com >
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com >
Reviewed-by: @sebslight
2026-02-16 08:03:35 -05:00
yinghaosang
244ed9db39
fix(telegram): draft stream preview not threaded when replyToMode is on ( #17880 ) ( #17928 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: cfd4181a23
Co-authored-by: yinghaosang <261132136+yinghaosang@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 18:10:24 +05:30
Ayaan Zaidi
b2aa6e094d
fix(telegram): prevent non-abort slash commands from racing chat replies ( #17899 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 5c2f6f2c96
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 16:21:10 +05:30
Advait Paliwal
bc67af6ad8
cron: separate webhook POST delivery from announce ( #17901 )
...
* cron: split webhook delivery from announce mode
* cron: validate webhook delivery target
* cron: remove legacy webhook fallback config
* fix: finalize cron webhook delivery prep (#17901 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM >
2026-02-16 02:36:00 -08:00
Peter Steinberger
39fa81dc96
chore: bump version to 2026.2.16
2026-02-16 06:08:47 +01:00
Varun Kruthiventi
c62b90a2b7
fix(telegram): stop block streaming from splitting messages when streamMode is off ( #17704 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 847162caad
Co-authored-by: saivarunk <2976867+saivarunk@users.noreply.github.com >
Co-authored-by: obviyus <22031114+obviyus@users.noreply.github.com >
Reviewed-by: @obviyus
2026-02-16 09:57:29 +05:30
Vignesh Natarajan
3e1986f119
chore (changelog): note qmd collection isolation fix
2026-02-15 20:15:12 -08:00
Peter Steinberger
3fe22ea2fd
chore(release): align .15 changelog ordering and release notes
2026-02-16 04:50:24 +01:00
Peter Steinberger
41ded303b4
fix(sandbox): preserve array order in config hashing
2026-02-16 04:32:03 +01:00
Vignesh Natarajan
cbf58d2e1c
fix(memory): harden context window cache collisions
2026-02-15 19:31:52 -08:00