zisisp
38c0d42542
skills/video-quote-finder: add markdown PR hygiene checks
2026-02-16 23:17:53 +02:00
zisisp
464df01912
docs: use markdown link to satisfy no-bare-urls lint
2026-02-16 22:59:26 +02:00
zisisp
677708c808
docs: wrap original prompt blockquote for lint compliance
2026-02-16 22:51:15 +02:00
zisisp
1f8dece46d
skills/video-quote-finder: strip URL fragments before adding timestamp
2026-02-16 22:47:51 +02:00
zisisp
923dc33f49
skills: add video-quote-finder with timestamp links
2026-02-16 22:39:09 +02: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
Vignesh Natarajan
1f99d82712
test (heartbeat): relax brittle reply option assertions
2026-02-16 11:57:32 -08: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
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: 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
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: 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
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