Commit Graph

43448 Commits

Author SHA1 Message Date
Peter Steinberger
d0a41b1041 test: tighten tlon upload body assertions 2026-05-09 04:25:54 +01:00
Shakker
7d4f76fa5e test: tighten matrix empty state assertions 2026-05-09 04:25:34 +01:00
Peter Steinberger
7b6307ef7f test: tighten xai transcription error assertion 2026-05-09 04:24:51 +01:00
Shakker
880a542944 test: tighten channel plugin empty assertions 2026-05-09 04:24:16 +01:00
Peter Steinberger
1dd05923d6 test: tighten nextcloud talk status timestamp assertion 2026-05-09 04:23:54 +01:00
Peter Steinberger
2bdb774726 test: tighten tokenjuice middleware assertion 2026-05-09 04:22:45 +01:00
Shakker
9757a62397 test: tighten provider empty payload assertions 2026-05-09 04:22:31 +01:00
Peter Steinberger
2d10afa6d7 test: tighten talkback consult signal assertions 2026-05-09 04:21:30 +01:00
Peter Steinberger
31e1d2e701 test: tighten audio pin dns request assertion 2026-05-09 04:20:03 +01:00
Shakker
3a654fd5eb test: tighten ui empty form assertions 2026-05-09 04:19:22 +01:00
Peter Steinberger
068bbf0a17 test: tighten ssrf dispatcher lookup assertion 2026-05-09 04:19:01 +01:00
Shakker
bcec18d38b test: tighten helper empty object assertions 2026-05-09 04:18:03 +01:00
Peter Steinberger
6dea4f5421 test: tighten provider validation assertion 2026-05-09 04:17:22 +01:00
Shakker
be3fd09ae0 test: tighten cron empty state assertions 2026-05-09 04:16:38 +01:00
Peter Steinberger
2a70264b83 test: tighten plugin lookup metrics assertions 2026-05-09 04:16:23 +01:00
Peter Steinberger
b2507b9a79 test: tighten plugin cli node runtime assertion 2026-05-09 04:15:28 +01:00
Josh Avant
b30ead9ca8 fix: hide subagent announce handoff prompts (#79618)
* fix: hide subagent announce handoff prompts

* chore: update subagent announce changelog entry
2026-05-08 22:15:01 -05:00
Peter Steinberger
1c2a0b4b89 test: tighten plugin cleanup timeout assertion 2026-05-09 04:14:35 +01:00
Shakker
2a272aa4a8 test: tighten shared empty object assertions 2026-05-09 04:13:56 +01:00
Peter Steinberger
d9f0ffc424 test: tighten proxy lifecycle assertions 2026-05-09 04:13:42 +01:00
Peter Steinberger
067dda2f26 test: tighten web push subscription assertion 2026-05-09 04:12:46 +01:00
Shakker
dcf3c851f0 test: tighten config snapshot empty assertions 2026-05-09 04:11:57 +01:00
Peter Steinberger
c5a3ed698d test: tighten global hook runner assertion 2026-05-09 04:11:54 +01:00
Shakker
fa83925fab test: tighten plugin empty state assertions 2026-05-09 04:10:32 +01:00
Peter Steinberger
5720aa08d2 test: tighten minimax image endpoint assertion 2026-05-09 04:10:28 +01:00
Peter Steinberger
441e1b2930 test: tighten minimax music header assertion 2026-05-09 04:09:30 +01:00
Shakker
3076da5e31 test: tighten plugin empty result assertions 2026-05-09 04:09:00 +01:00
Peter Steinberger
dc36430df3 test: tighten mattermost retry delay assertion 2026-05-09 04:08:32 +01:00
Peter Steinberger
594abbd44b test: tighten plugin loader transform assertions 2026-05-09 04:07:17 +01:00
Shakker
73f6344906 test: tighten gateway empty result assertions 2026-05-09 04:07:06 +01:00
Peter Steinberger
71a4c29d51 test: tighten sdk alias runtime assertion 2026-05-09 04:06:16 +01:00
Peter Steinberger
5bec7022c7 test: tighten plugin loader hook assertion 2026-05-09 04:05:24 +01:00
Peter Steinberger
1c19ce4e1b test: tighten trajectory recorder assertion 2026-05-09 04:04:38 +01:00
Peter Steinberger
e110b09b9f test: tighten temp home directory assertion 2026-05-09 04:03:50 +01:00
Shakker
7442355088 test: tighten config empty map assertions 2026-05-09 04:03:34 +01:00
Peter Steinberger
97757dd324 test: tighten fs-safe directory assertion 2026-05-09 04:03:07 +01:00
Peter Steinberger
8562aa8ab2 test: tighten cron task cleanup assertion 2026-05-09 04:02:22 +01:00
Peter Steinberger
83c238d6da test: tighten gateway lock helper assertion 2026-05-09 04:01:33 +01:00
Shakker
cf71412a35 test: tighten config empty object assertions 2026-05-09 04:01:03 +01:00
Peter Steinberger
3ba8c2cd52 test: tighten install target directory assertion 2026-05-09 04:00:42 +01:00
Peter Steinberger
08076208cd test: tighten timer delay callback assertion 2026-05-09 03:59:47 +01:00
Shakker
1b60d4f761 test: tighten command config cleanup assertions 2026-05-09 03:59:05 +01:00
Peter Steinberger
fa04bb9175 test: tighten cli respawn bridge assertion 2026-05-09 03:57:45 +01:00
Ayaan Zaidi
b66cc66440 fix(telegram): share bot api throttler 2026-05-09 08:27:39 +05:30
Shakker
a9d168ca23 test: tighten command empty result assertions 2026-05-09 03:57:18 +01:00
Peter Steinberger
45d67b98d1 test: tighten compile cache bridge assertion 2026-05-09 03:56:07 +01:00
Omar Shahine
81e0a1a99b feat(imessage): inbound catchup (cursor + replay loop + monitor wiring) (#79387)
Closes #78649. Adds opt-in inbound iMessage catchup that recovers messages landing in chat.db while the gateway is offline (crash, restart, mac sleep). Mirrors the design of the retired BlueBubbles catchup, adapted for the imsg JSON-RPC chats.list + messages.history fetch path.

- Schema: new channels.imessage.catchup block with enabled / maxAgeMinutes (1..720) / perRunLimit (1..500) / firstRunLookbackMinutes (1..720) / maxFailureRetries (1..1000). Disabled by default — opt-in.
- Cursor + replay loop (extensions/imessage/src/monitor/catchup.ts): per-account state under <openclawStateDir>/imessage/catchup/. Walks rows oldest-first, advances on success/give-up, holds at failed.rowid - 1 when a failure is below maxFailureRetries (cannot leapfrog held failures even when later rows in the same batch succeed). Watermark floor for parse-rejected rows.
- Bridge (extensions/imessage/src/monitor/catchup-bridge.ts): live chats.list + per-chat messages.history fetch adapter; dispatch adapter routes through the live handleMessageNow path so allowlists / group policy / dedupe / echo cache behave identically on replayed and live messages. Watermark clamped to last dispatched rowid when the cap truncates.
- Monitor wiring (extensions/imessage/src/monitor/monitor-provider.ts): catchup runs once between watch.subscribe and the live dispatch loop when enabled. Bypasses the inbound debouncer for serial per-row dispatch.
- Echo-cache TTL bumped 2 min → 12 h so own outbound rows from before a gap are not re-fed as inbound on replay.
- Generated bundled-channel-config-metadata.generated.ts so the runtime AJV schema accepts the new catchup block.
- Docs: new "Catching up after gateway downtime" section + BlueBubbles migration parity update.

Tests: 322/322 in extensions/imessage/, including 5 regression tests covering the cursor-leapfrog, parse-rejected stall, watermark vs held failure, and cap-truncation-cursor-floor edge cases that codex (gpt-5.4) and clawsweeper (gpt-5.5) found during review. Live-tested end-to-end against the running gateway: replayed=1 fetchedCount=1, agent reply observed, cursor persisted at the test row's exact rowid.

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 22:55:59 -04:00
Shakker
8989d0a777 test: tighten doctor empty config assertions 2026-05-09 03:55:42 +01:00
Peter Steinberger
c9f3b099b2 test: tighten task maintenance recovery timestamp assertion 2026-05-09 03:54:24 +01:00
Shakker
561df3fe03 test: tighten model picker empty assertions 2026-05-09 03:54:12 +01:00