Commit Graph

1111 Commits

Author SHA1 Message Date
Peter Steinberger 6aee2792d9 fix(whatsapp): exercise descriptor-safe credential persistence (#119621) 2026-08-05 10:36:36 -07:00
Peter Steinberger 60a8ec821c refactor(plugins): reuse canonical error coercion (#119451) 2026-08-04 21:05:45 -07:00
Patrick Erichsen 1aea2df935 fix(plugins): refresh bundled channel skills (#119020) 2026-08-03 17:31:00 -07:00
Peter Steinberger f9d9d1225a refactor(channels): own the lifecycle status contract in SDK patch factories (#118795)
* refactor(sdk): add channel lifecycle patch factories

* refactor(channels): adopt lifecycle patches in a-m

* refactor(channels): adopt lifecycle patches in n-z

* refactor(runtime): lifecycle-own ambient registries

* test(slack): assert lifecycle factory fields

* fix(sdk): preserve lifecycle patch extras types

* test(zalouser): widen lifecycle status sink

* test(irc): avoid shadowed status patch

* fix(zalo): reuse account-agnostic media route

* fix(gateway): accept explicit channel ready recovery

* test(qa): assert terminal Slack block fact

* test(qa): restore Slack blocked lifecycle scenario

* test(gateway): lock explicit lifecycle recovery contract
2026-08-03 12:39:48 -07:00
Peter Steinberger 09e40d0b74 fix(whatsapp): honor disabled self-chat without widening group access (#118711) 2026-08-03 07:57:23 -07:00
Peter Steinberger 3b6cad7e31 fix(whatsapp): preserve terminal retry exhaustion lifecycle (#118659)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-03 06:19:00 -07:00
Peter Steinberger fe6fa891ea fix(whatsapp): clear and migrate every Baileys credential class (#118610)
* fix(whatsapp): clear and migrate every auth credential class

* test(whatsapp): await nullable legacy migration detector
2026-08-03 03:54:41 -07:00
Peter Steinberger 8e35fb4963 test(channels): consolidate remaining channel scaffolding (#118493)
* test(channels): consolidate channel scaffolding

* test(channels): fix helper typings
2026-08-02 23:03:54 -07:00
Vincent Koc f32a266134 fix(whatsapp): render quoted self-chat replies with cached LIDs (#116814)
* fix(whatsapp): align quoted replies with resolved jid

* fix(whatsapp): preserve inbound media type import
2026-08-03 12:54:28 +08:00
Vincent Koc f5637c0685 fix(qa): restore prerelease validation (#118255)
* test(whatsapp): return accepted monitor send results

* fix(qa): recognize Code Mode write results
2026-08-03 10:09:19 +08:00
Vincent Koc b35b8e286d fix(plugins): unblock prerelease validation (#118103)
* fix(plugins): align compatibility registry identity

* fix(slack): compact response URL native fallbacks

* test(plugins): stabilize prerelease runtime checks

* fix(packaging): include CUA driver in root package

* fix(packaging): declare CUA runtime dependency

* fix(cua): defer native driver loading
2026-08-03 04:48:05 +08:00
Peter Steinberger 0c32879d45 feat(channels): publish recorded lifecycle from bundled channel transitions (#118110)
* feat(channels): publish recorded lifecycle from bundled channel transitions

* chore: remove lifecycle changelog entry
2026-08-02 13:04:49 -07:00
Santiago a2ffa4850d docs(whatsapp): document wacli messages show verification (#116410) 2026-08-02 12:03:42 -07:00
Peter Steinberger 641a4bf7b0 fix(whatsapp): reject unaccepted provider deliveries (#118114)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 12:01:38 -07:00
Dinesh H Suthar 35b00ddd14 fix(reply): preserve retryable final delivery recovery (#117597)
* fix(reply): preserve retryable final recovery

* fix(reply): preserve partial-delivery recovery markers

* fix(reply): keep delivery classification cycle-free

---------

Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 05:17:02 -07:00
Peter Steinberger 0aa262a795 fix(whatsapp): keep inbound media diagnostics safely redacted (#117939) 2026-08-02 03:16:24 -07:00
clawsweeper[bot] c8688051ed fix(whatsapp): log terminal inbound media failures (#117717)
* fix(whatsapp): log terminal inbound media failures

* fix(whatsapp): log terminal inbound media failures

* fix(whatsapp): surface media enrichment failures

* test(whatsapp): preserve caught media errors

---------

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-02 17:13:16 +08:00
Peter Steinberger d6aafb3dfc refactor(whatsapp): split inbox lifecycle coverage (#117910)
* test(whatsapp): split inbox lifecycle coverage

* test(whatsapp): import metadata cache type
2026-08-02 02:09:47 -07:00
Peter Steinberger dc38411ca4 test: consolidate WhatsApp monitor suites (#117854)
* test: consolidate WhatsApp monitor suites

* test: preserve WhatsApp max-lines ratchet path
2026-08-02 00:20:17 -07:00
Peter Steinberger e7f1202bbb refactor(whatsapp): consolidate QA message extraction (#117836) 2026-08-01 23:18:09 -07:00
clawsweeper[bot] 749226265c fix(whatsapp): preserve source direction for automatic reactions (#117697)
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-08-01 23:16:08 -07:00
Peter Steinberger 8ae21a6ae5 refactor(approvals): share native channel factory routing (#117811)
* refactor(approvals): share native channel factory routing

* fix(approvals): pin routed factory target types

* refactor(approvals): isolate forwarding factory entrypoint

* refactor(plugin-sdk): rename flat approval params type; budget +1 for routed approval factory

* chore(plugin-sdk): regenerate API baseline for routed approval factory

* fix(channels): bind approval authorizer references for lint
2026-08-01 23:08:36 -07:00
Peter Steinberger d6e537a859 refactor(channels): share persistent state error reporting (#117813) 2026-08-01 22:06:25 -07:00
Peter Steinberger ccee629359 refactor(plugins): delete registry compat scaffolding (#117749)
* refactor(plugins): delete registry compat scaffolding

* test(plugins): update CLI registry handle mock

* fix(plugins): preserve explicitly initialized hook registries

* test(plugins): update registry ownership fixtures

* fix(channels): restore registry snapshot memo
2026-08-01 21:18:47 -07:00
Peter Steinberger 95c037863f refactor(whatsapp): deduplicate reply delivery test fixtures (#117710) 2026-08-01 18:46:59 -07:00
Peter Steinberger 7c9794b5c6 fix(whatsapp): normalize future-proof QA poll and video note ingress (#117579)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 12:30:49 -07:00
Vincent Koc 263741b1f0 fix(ci): align release validation fixtures (#117494)
* fix(release): align beta 6 e2e fixtures

* fix(doctor): preserve missing state startup signal

* test(release): align beta e2e contracts

* test(agents): use canonical empty auth store

* test(agents): isolate prompt cooldown scheduling

* test(release): align main validation fixtures

* test(release): accept Code Mode plugin tool evidence

* fix(test): repair release validation checks

* test(cron): assert structured session targets
2026-08-02 00:39:36 +08:00
Peter Steinberger 568ea29d2e refactor(plugins): inherit shared package boundary settings (#117474) 2026-08-01 09:11:09 -07:00
Peter Steinberger aa2a5c96f6 feat(channels): record account lifecycle facts and retire inferred health vocabularies (#117300)
* fix(channels): record account lifecycle facts

* fix(channels): bound recorded lifecycle grace

* fix(channels): preserve authored health state

* test: dedupe health snapshot type literal and fix spread order
2026-08-01 02:51:47 -07:00
Peter Steinberger 8ed6c98b08 fix(whatsapp): reuse hydrated group participant metadata (#117234)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 00:11:34 -07:00
Peter Steinberger 1f130ce61d fix(whatsapp): normalize provider self-echo identities (#117228)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-08-01 00:08:28 -07:00
Peter Steinberger 121a862105 fix(whatsapp): preserve accepted delivery across failures (#117198)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 21:31:06 -07:00
Peter Steinberger 9e4381eb1c refactor(channels): unify bundled channel setup contracts (#117106)
* refactor(channels): canonicalize bundled setup contracts

* test(matrix): use scoped environment fixtures
2026-07-31 16:57:29 -07:00
Peter Steinberger 533807ab61 refactor: consolidate secure channel approval reaction bindings (#117105) 2026-07-31 16:51:25 -07:00
Peter Steinberger fbb489fedf fix(whatsapp): preserve transport envelope ownership (#116989)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 12:19:17 -07:00
Peter Steinberger e922b53675 fix(whatsapp): restore interactive mentions and inbound media variants (#116901)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 08:41:00 -07:00
Peter Steinberger a91d92796f fix(whatsapp): preserve interactive replies and normalize media MIME (#116816)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 05:11:15 -07:00
Peter Steinberger 402bd4af01 fix(whatsapp): keep sends running when typing presence fails (#116739)
Co-authored-by: Peter Steinberger <steipete@macos.shared>
2026-07-31 03:17:24 -07:00
pash-openai e52354ea13 fix(build): pin typebox to a published release (#116333) 2026-07-30 09:58:51 +00:00
Dallin Romney b765ada174 fix: stop WhatsApp restart loop after remote logout (#114445) 2026-07-30 16:48:32 +08:00
Yuval Dinodia 4e5bf66fb1 fix(whatsapp): silently drops inbound messages when more than 450 are waiting (#116179)
* fix(whatsapp): silently drops inbound messages when more than 450 are waiting

WhatsApp asked the shared ingress monitor to enforce a 450-entry cap and a
30-day TTL on pending durable ingress rows. Pending rows are undelivered work,
not history, and the monitor runs retention before its first claim, so an
account holding 451 accepted messages lost the oldest one to a hard DELETE
before it could ever be dispatched. Loss scaled linearly with backlog depth and
left no tombstone, no failure record, and no retained payload.

Drop pendingTtlMs and pendingMaxEntries from the WhatsApp retention config.
Completed and failed retention is unchanged so on-disk history stays bounded,
and the config now matches every other channel on the shared monitor, whose
defaults cover completed and failed only. The two values were carried over
mechanically from the pre-SQLite openKeyedStore replay-guard cache in
b0679d1f13 and inlined verbatim in #115824.

Add regression coverage driving the real monitor and the real SQLite ingress
queue over 451 accepted records.

* test(whatsapp): cover pending ingress retention

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 12:20:27 +08:00
joshavant 21db50efc7 refactor(whatsapp): keep inbound boundary transport-private 2026-07-29 20:34:55 -05:00
Vincent Koc 5c296b5a54 fix(whatsapp): preserve injected listener normalization 2026-07-29 20:34:55 -05:00
Vincent Koc f970e5093b refactor(channels): add portable inbound boundary 2026-07-29 20:34:55 -05:00
mids-neo 821b929c5b fix(whatsapp): emit sent events for native replies (#97728)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 04:28:11 +08:00
Vincent Koc 7833bab183 Merge pull request #115806 from openclaw/refactor/whatsapp-monitor-orchestration
refactor(whatsapp): split inbound monitor orchestration
2026-07-29 21:56:59 +08:00
loong 7bdd1f646b fix(memory-host-sdk): resolve stable execPath for worker fork to survive Homebrew Node upgrades (#99318)
* fix(memory): survive Homebrew Node upgrades

Co-authored-by: 袁龙辉0668001277 <yuan.longhui@xydigit.com>

* test(whatsapp): isolate last-route coverage

* fix(deepinfra): preserve offline model compatibility

* test(memory): isolate migration cleanup lifecycle

* test: stabilize aggregate extension gates

* ci: retrigger pull request workflow

* test: preserve inherited Node options

* test(cli): tolerate cold hosted startup

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-29 06:49:02 -04:00
Peter Steinberger 986e5d1758 refactor(channels): share ingress retention defaults (#115824) 2026-07-29 06:24:30 -04:00
Vincent Koc 9e246deb6e test(whatsapp): rely on monitor cache coverage 2026-07-29 17:56:40 +08:00
Vincent Koc 6d6908eabc fix(whatsapp): keep monitor helper types internal 2026-07-29 17:18:57 +08:00