Vignesh Natarajan
e95134ba3f
fix (commands): keep webchat auth on internal provider
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
Latitude Bot
3238bd78d9
fix(discord): normalize bare numeric IDs in outbound target resolution
...
Bare numeric Discord IDs (e.g. '1470130713209602050') in cron
delivery.to caused 'Ambiguous Discord recipient' errors and silent
delivery failures.
Adds normalizeDiscordOutboundTarget() to the existing Discord
normalize module (channels/plugins/normalize/discord.ts) alongside
normalizeDiscordMessagingTarget. Defaults bare numeric IDs to
'channel:<id>', matching existing behavior.
Both the Discord extension plugin and standalone outbound adapter
use the shared helper via a one-liner resolveTarget.
Fixes #14753 . Related: #13927
2026-02-16 13:25:58 -06:00
nabbilkhan
250896cf6e
fix: correct contradictory test name (Greptile review)
...
The test verifies that cooldownUntil IS cleared when it equals exactly
`now` (>= comparison), but the test name said "does not clear". Fixed
the name to match the actual assertion behavior.
2026-02-16 12:53:45 -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
Shadow
d3707147c0
chore: update carbon
2026-02-16 12:45:08 -06:00
Vignesh Natarajan
1cf3aba3f6
chore (changelog): note qmd multi-agent startup fix
2026-02-16 10:35:48 -08:00
Vignesh Natarajan
02c268eec1
fix (gateway/memory): start qmd onBoot for all agents
2026-02-16 10:35:26 -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
Peter Steinberger
9b70849567
refactor(test): dedupe trusted-proxy auth test setup
2026-02-16 18:31:37 +00:00
Peter Steinberger
96eabcbe89
refactor(test): share antigravity usage endpoint fixtures
2026-02-16 18:31:31 +00:00
Peter Steinberger
b0035a1e49
refactor(test): table-drive web tool defaults checks
2026-02-16 18:31:27 +00:00
Peter Steinberger
8a1893a215
refactor(test): table-drive legacy config policy assertions
2026-02-16 18:25:04 +00:00
Peter Steinberger
9372df45f2
refactor(test): table-drive auth choice option checks
2026-02-16 18:25:04 +00:00
Peter Steinberger
23480bb4e3
refactor(test): dedupe trigger model command fixtures
2026-02-16 18:25:04 +00:00
Peter Steinberger
9ff473fa05
refactor(test): share sandbox config test helpers
2026-02-16 18:25:04 +00:00
Peter Steinberger
30c8361d0a
refactor(test): dedupe isolated cron turn setup
2026-02-16 18:25:04 +00:00
Shadow
1b7301051b
Config: require Discord ID strings ( #18220 )
2026-02-16 12:22:58 -06:00
Peter Steinberger
5d40d47501
refactor(test): reduce dispatch-from-config setup duplication
2026-02-16 18:09:49 +00:00
Peter Steinberger
74c49c943d
refactor(test): share web fetch e2e setup helpers
2026-02-16 18:09:45 +00:00
Peter Steinberger
9c6e879a06
refactor(test): dedupe heartbeat runner e2e scaffolding
2026-02-16 18:09:38 +00:00
Peter Steinberger
c7e386982f
refactor(test): dedupe agent and memory cli test setup
2026-02-16 17:57:45 +00:00
Peter Steinberger
616d4692a9
refactor(hooks): share install temp-dir and archive fixtures
2026-02-16 17:57:45 +00:00
Peter Steinberger
9a29d7833b
refactor(cli): dedupe browser and hooks command handlers
2026-02-16 17:57:45 +00:00
Nimrod Gutman
5a39e13c92
fix(ios): restore missing location monitor merge files ( #18260 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f60cd10f6d0b089efc2f146c570efc4c8c250175
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
Peter Steinberger
d688188864
refactor(tests): share outbound runner and delivery helpers
2026-02-16 17:22:26 +00:00
Peter Steinberger
71111c9978
refactor(tests): dedupe gateway send and threading fixtures
2026-02-16 17:22:26 +00:00
Peter Steinberger
291275982c
refactor(web): reuse send api + access-control test helpers
2026-02-16 17:22:26 +00:00
Peter Steinberger
94a4dd0189
refactor(gateway): dedupe wizard and exec approval handler paths
2026-02-16 17:22:26 +00:00
Ayaan Zaidi
16327f21da
feat(telegram): support inline button styles ( #18241 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 239cb3552e4eaf2597b8e1f4af82ab2ffd1d446c
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
Peter Steinberger
a177f7b9fe
refactor(tests): dedupe slack telegram and web monitor setup
2026-02-16 17:06:40 +00:00
Peter Steinberger
8df83d1835
refactor(core): extract shared runtime and wizard schemas
2026-02-16 17:06:40 +00:00
Peter Steinberger
c37f65a449
refactor(tests): share harnesses for cli and monitor fixtures
2026-02-16 17:06:40 +00:00
Peter Steinberger
b991919755
refactor(cron): dedupe next-run recompute paths
2026-02-16 17:06:40 +00:00
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: f6620526df231b571a8821edf9fc5f76c3994583
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
Peter Steinberger
5b185da366
refactor(test): remove remaining command test duplication
2026-02-16 16:52:53 +00:00
Peter Steinberger
0d51869c3c
refactor(test): consolidate doctor health and sandbox fixtures
2026-02-16 16:48:55 +00:00
Peter Steinberger
2d8edf85ad
refactor(test): share onboarding and model auth test helpers
2026-02-16 16:48:55 +00:00
Peter Steinberger
ac5f6e7c9d
refactor(test): dedupe agent and status command fixtures
2026-02-16 16:48:55 +00:00
Mariano
44ef045614
fix(canvas): port remaining iOS branch stability fixes ( #18228 )
...
* fix(canvas): prevent snapshot disconnects on proxied gateways
(cherry picked from commit 2a3c9f746a65f3301c0cfe58ebe6596fed06230f)
* fix(canvas): accept url alias for present and navigate
(cherry picked from commit 674ee86a0b776cbb738add1920a4031246125312)
---------
Co-authored-by: Nimrod Gutman <nimrod.g@singular.net >
2026-02-16 16:42:28 +00: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
Peter Steinberger
3a2fffefdb
refactor(test): centralize doctor e2e runtime and snapshot scaffolding
2026-02-16 16:32:37 +00:00
Peter Steinberger
ffeeb835aa
refactor(test): extract shared doctor migration test setup
2026-02-16 16:32:37 +00:00
Peter Steinberger
261f5ee492
refactor(test): dedupe command config and model test fixtures
2026-02-16 16:32:37 +00:00
Mariano
130e59a9c0
iOS: port onboarding + QR pairing flow stability ( #18162 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a87eadea19e9d2e693300ac7382cd338eb87b472
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
Peter Steinberger
df6d0ee92b
refactor(core): dedupe tool policy and IPv4 matcher logic
2026-02-16 16:14:54 +00:00