228 Commits

Author SHA1 Message Date
Peter Steinberger
05eda57b3c refactor: migrate bundled plugins to message lifecycle 2026-05-06 01:46:42 +01:00
Peter Steinberger
235d06bff1 refactor: trim imessage helper exports 2026-05-01 18:23:49 +01:00
Peter Steinberger
15649228d4 refactor: trim extension helper shims 2026-05-01 14:39:03 +01:00
Peter Steinberger
0fe007f71b refactor: trim extension test hooks 2026-05-01 14:32:30 +01:00
Alex Knight
e1a7c5b860 fix: handle EPIPE errors on child process stdin writes (#75602)
Fix three child-process stdin write paths that let async EPIPE errors
escape to uncaughtException and crash the gateway.

extensions/imessage/src/client.ts (the actual #75438 crash path):
- Add child.stdin.on('error') listener in start() to catch async EPIPE
  and reject all pending requests via failAll().
- Add write callback to request() stdin.write() that rejects the
  specific pending request on error, instead of leaving it hanging
  until timeout.

src/agents/mcp-stdio-transport.ts:
- Fix write callback race in send(): previously resolved the promise
  immediately when write() returned true, then the write callback with
  EPIPE would fire after the promise was already fulfilled. Now always
  settles the promise from the write callback so the outcome is known
  before resolving.

src/process/exec.ts:
- Add stdin.on('error') before writing input so EPIPE from a
  prematurely-exited child is swallowed — the process exit handler
  reports the real status.

One reporter observed a gateway crash after 10.5 hours of stable
uptime — a single EPIPE on an iMessage RPC child process stdin write
killed the gateway with code 1.

Fixes: #75438
2026-05-01 21:45:12 +10:00
Peter Steinberger
ffe67e9cdc refactor(channels): route inbound turns through kernel 2026-04-30 04:08:47 +01:00
Peter Steinberger
c403ea9063 refactor(channels): move more turn policy into kernel 2026-04-30 03:44:21 +01:00
Peter Steinberger
02ebac6250 refactor(channels): share turn dispatch results 2026-04-30 02:58:40 +01:00
Peter Steinberger
9a9cd0c0ab refactor(channels): add shared turn kernel 2026-04-29 23:16:16 +01:00
Peter Steinberger
7d74c1f4b9 test: align channel fixtures with open dm policy 2026-04-29 07:08:06 +01:00
Peter Steinberger
bd1d1f0f2b fix: align open DM allowlist policy (#74112)
* fix: harden telegram open dm allowlist merging

* fix: align open dm allowlist policy
2026-04-29 06:52:12 +01:00
openclaw-clownfish[bot]
be445dd1c1 fix(imessage): normalize leading echoed text corruption
Fixes #59973
2026-04-28 21:04:20 -07:00
Peter Steinberger
632b0fd580 chore: update workspace dependencies 2026-04-28 03:09:44 +01:00
Peter Steinberger
56875c4d32 refactor: split generic plugin test fixtures 2026-04-28 01:21:39 +01:00
Peter Steinberger
f34b41f198 refactor: split plugin sdk test helpers 2026-04-28 01:14:19 +01:00
Peter Steinberger
0df6e5a473 refactor: expose plugin test helpers via sdk 2026-04-27 23:45:26 +01:00
Peter Steinberger
74e62c32c3 test: route extension tests through sdk subpaths 2026-04-27 21:58:48 +01:00
Peter Steinberger
f0000ab72d refactor(plugin-sdk): split infra runtime barrel 2026-04-27 20:50:35 +01:00
Peter Steinberger
4336a7f3a9 refactor(plugin-sdk): narrow config runtime imports 2026-04-27 14:58:32 +01:00
Peter Steinberger
7f3f108521 refactor(config): migrate plugin config access 2026-04-27 12:35:58 +01:00
Peter Steinberger
8a731c1ef7 perf(plugin-sdk): add narrow outbound send deps entry 2026-04-25 22:19:09 +01:00
Peter Steinberger
f88da75ed9 refactor(channels): centralize runtime binding routes 2026-04-22 23:16:57 +01:00
Peter Steinberger
95331e5cc5 fix(channels): thread runtime config through sends 2026-04-22 06:47:51 +01:00
Peter Steinberger
8134fe737c test(extensions): move legacy schema assertions 2026-04-20 21:58:34 +01:00
Peter Steinberger
3a7a1f156d test(extensions): move remaining channel schema tests 2026-04-20 21:54:49 +01:00
Peter Steinberger
49b2ec1e2e test(extensions): move config regression coverage 2026-04-20 21:51:34 +01:00
Peter Steinberger
9c9ca5f431 test(extensions): move channel contracts to owners 2026-04-20 20:55:39 +01:00
Peter Steinberger
ca2d89bc4d test(extensions): move channel contracts out of core 2026-04-20 17:59:51 +01:00
Gustavo Madeira Santana
78ac118427 fix(plugins): stabilize bundled setup runtimes (#67200)
Merged via squash.

Prepared head SHA: e8d6738fd0
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-15 12:35:18 -04:00
Peter Steinberger
1ea332a658 fix: repair CI type checks 2026-04-12 12:04:59 -07:00
Vincent Koc
ea71a59127 fix(imessage): repair monitor retry type checks 2026-04-12 19:57:37 +01:00
Peter Steinberger
fa87c6334a fix(imessage): align monitor retry types 2026-04-12 11:52:33 -07:00
Vincent Koc
35a784c165 fix(imessage): retry watch.subscribe startup failures (#65482)
* fix(imessage): retry watch.subscribe startup failures

* fix(imessage): sanitize watch error logging
2026-04-12 19:40:19 +01:00
Peter Steinberger
d85b2a0e81 refactor: simplify core conversions 2026-04-11 01:17:51 +01:00
Peter Steinberger
c077af987f perf: add narrow inbound roots sdk surface 2026-04-10 17:34:41 +01:00
Peter Steinberger
bac98d4218 test: reduce media contract import cost 2026-04-10 17:31:08 +01:00
Neerav Makwana
782b5622b6 fix: strip wrapped imsg rpc text fields (#64000) (thanks @neeravmakwana)
* fix(imessage): strip length-prefixed UTF-8 from imsg rpc text

* fix: strip wrapped imsg rpc text fields (#64000) (thanks @neeravmakwana)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-10 14:00:09 +05:30
Ayaan Zaidi
e3e2a19ab7 fix(imessage): drop ambiguous reflected self-chat echoes 2026-04-10 13:42:02 +05:30
Neerav Makwana
8ed7c95a6a fix: require destination_caller_id for self-chat classification (#63989) (thanks @neeravmakwana)
* fix(imessage): require destination_caller_id for self-chat classification (#63980)

Made-with: Cursor

* fix(imessage): scope self-chat cache to self-chat

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-10 13:36:01 +05:30
Vincent Koc
503b43f43f fix(extensions): remove remaining line and imessage type back-edges 2026-04-10 08:16:28 +01:00
Vincent Koc
6784cc692c fix(extensions): split account config type seams 2026-04-10 08:16:28 +01:00
Ayaan Zaidi
1ee4a1606e fix: exclude DM participant lists from iMessage self-chat check 2026-04-09 17:23:22 +05:30
Neerav Makwana
9267c3f8f2 fix: preserve iMessage self-chat aliases (#61619) (thanks @neeravmakwana)
* fix(imessage): avoid DM self-chat false positives

* fix(imessage): treat blank destination caller id as missing

* fix(imessage): preserve alias self-chat

* fix: preserve iMessage self-chat aliases (#61619) (thanks @neeravmakwana)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-09 17:13:22 +05:30
Altay
554bc0a9fd fix(plugins): keep test helpers out of contract barrels (#63311)
Merged via squash.

Prepared head SHA: 769e90c6af
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Co-authored-by: altaywtf <9790196+altaywtf@users.noreply.github.com>
Reviewed-by: @altaywtf
2026-04-08 22:59:05 +01:00
Peter Steinberger
2187b19d7e refactor: dedupe extension lowercase helpers 2026-04-07 22:24:32 +01:00
Peter Steinberger
4bcbb22678 refactor: dedupe messaging lowercase helpers 2026-04-07 15:53:49 +01:00
Peter Steinberger
9314bb7180 refactor: dedupe extension lowercase helpers 2026-04-07 15:12:32 +01:00
Peter Steinberger
67da64f98d test: split imessage status coverage 2026-04-07 13:59:10 +01:00
Peter Steinberger
625fd5b3e3 refactor: centralize inbound mention policy 2026-04-07 07:51:00 +01:00
Peter Steinberger
1275b9b873 refactor: dedupe account name normalization 2026-04-07 06:07:13 +01:00