Tyler Yust
a290f5e50f
fix: persist outbound sends and skip stale cron deliveries ( #50092 )
...
* fix(bluebubbles): auto-create chats for new numbers, persist outbound messages to session transcripts
Two fixes for BlueBubbles message tool behavior:
1. **Attachment sends to new phone numbers**: sendBlueBubblesAttachment now
auto-creates a new DM chat (via /api/v1/chat/new) when no existing chat
is found for a handle target, matching the behavior already present in
sendMessageBlueBubbles for text sends. The existing createNewChatWithMessage
is refactored into a reusable createChatForHandle that returns the chatGuid.
2. **Outbound message session persistence**: Ensures outbound messages sent
via the message tool are reliably tracked in session transcripts:
- ensureOutboundSessionEntry now falls back to directly creating a session
store entry when recordSessionMetaFromInbound returns null, guaranteeing
a sessionId exists for the subsequent mirror append.
- appendAssistantMessageToSessionTranscript now normalizes the session key
(lowercased) when looking up the store, preventing case mismatches
between the store keys and the mirror sessionKey.
Tests added for all changes.
* test(slack): verify outbound session tracking and new target sends for Slack
The shared infrastructure changes from the BlueBubbles fix (session key
normalization in transcript.ts and fallback session entry creation in
outbound-session.ts) already cover Slack. Slack's sendMessageSlack uses
conversations.open to auto-create DM channels for new user targets.
Add tests confirming:
- Slack user DM and channel session route resolution (outbound.test.ts)
- Slack session key normalization for transcript append (sessions.test.ts)
- Slack outbound sendText/sendMedia to new user and channel targets (channel.test.ts)
* fix(cron): skip stale delayed deliveries
* fix: prep PR #50092
2026-03-19 11:40:34 +09:00
Peter Steinberger
c70837f07d
refactor: converge plugin sdk channel helpers
2026-03-19 00:25:19 +00:00
Peter Steinberger
07d9f725b6
refactor: unify plugin sdk primitives
2026-03-18 23:58:56 +00:00
Vincent Koc
757c2cc2de
fix(release): isolate bundled config docs loading
2026-03-18 16:01:43 -07:00
Peter Steinberger
8d73bc77fa
refactor: deduplicate reply payload helpers
2026-03-18 17:30:25 +00:00
Peter Steinberger
27f655ed11
refactor: deduplicate channel runtime helpers
2026-03-18 16:37:27 +00:00
Peter Steinberger
861fcb1575
fix: restore rebased full gate
2026-03-18 15:34:27 +00:00
Onur Solmaz
d41c9ad4cb
Release: add plugin npm publish workflow ( #47678 )
...
* Release: add plugin npm publish workflow
* Release: make plugin publish scope explicit
2026-03-18 13:44:23 +01:00
Vincent Koc
6e723dfd69
Plugins: internalize medium extension SDK imports
2026-03-17 23:09:26 -07:00
Peter Steinberger
05603e4e6c
refactor: deduplicate channel config adapters
2026-03-18 04:51:29 +00:00
Gustavo Madeira Santana
e93412b5ce
Outbound: move target resolution heuristics behind plugins
2026-03-18 04:24:54 +00:00
Gustavo Madeira Santana
0f7cd59824
BlueBubbles: move outbound session routing behind plugin boundary
2026-03-18 04:09:48 +00:00
Peter Steinberger
1a9114a169
refactor: deduplicate setup wizard helpers
2026-03-18 03:58:22 +00:00
Gustavo Madeira Santana
a8f433d611
BlueBubbles: move group policy behind plugin boundary
2026-03-18 03:40:42 +00:00
Peter Steinberger
9350cb19dd
refactor: deduplicate plugin setup and channel config helpers
2026-03-18 03:28:05 +00:00
Vincent Koc
2f21eeb3cb
Plugins: internalize bluebubbles SDK imports
2026-03-17 20:21:00 -07:00
Gustavo Madeira Santana
682f4d1ca3
Plugin SDK: require unified message discovery
2026-03-18 03:02:16 +00:00
Gustavo Madeira Santana
4b5e801d1b
BlueBubbles: scope group actions in message discovery
2026-03-17 23:48:43 +00:00
Peter Steinberger
4b125762f6
refactor: clean extension api boundaries
2026-03-17 09:38:21 -07:00
Peter Steinberger
39a8dab0da
refactor: dedupe plugin lazy runtime helpers
2026-03-17 09:24:22 -07:00
Peter Steinberger
9b22bd41d8
test: inline bluebubbles action mocks
2026-03-17 16:21:58 +00:00
Peter Steinberger
795f1f438b
refactor: expose lazy runtime helper to plugins
2026-03-17 08:37:11 -07:00
Peter Steinberger
f9588da3e0
refactor: split plugin testing seam from bundled extension helpers
2026-03-17 01:05:09 -07:00
Peter Steinberger
9648e7fecb
refactor: consolidate lazy runtime surfaces
2026-03-17 00:59:20 -07:00
Peter Steinberger
3dec814fda
refactor: bundle lazy runtime surfaces
2026-03-17 00:00:45 -07:00
Peter Steinberger
f6868b7e42
refactor: dedupe channel entrypoints and test bridges
2026-03-16 23:52:23 -07:00
Peter Steinberger
f2bd76cd1a
refactor: finalize plugin sdk legacy boundary cleanup
2026-03-16 22:51:46 -07:00
Peter Steinberger
0cfc80b81c
refactor: finish public plugin sdk boundary seams
2026-03-16 21:33:59 -07:00
Peter Steinberger
4ae71485e9
refactor(setup): share scoped config prelude
2026-03-17 04:10:03 +00:00
Peter Steinberger
2497b8147e
refactor: add shared setup sdk subpath
2026-03-16 20:17:13 -07:00
Vincent Koc
e1f759f4f1
BlueBubbles: lazy-load channel runtime paths
2026-03-16 02:35:43 -07:00
Peter Steinberger
823039c000
docs: prefer setup wizard command
2026-03-15 22:01:04 -07:00
Peter Steinberger
656848dcd7
refactor: rename setup wizard surfaces
2026-03-15 21:40:31 -07:00
Peter Steinberger
77d0ff629c
refactor: rename channel setup flow seam
2026-03-15 20:44:25 -07:00
Vincent Koc
4ed30abc7a
BlueBubbles: split setup adapter helpers
2026-03-15 19:10:54 -07:00
Peter Steinberger
fb991e6f31
perf(plugins): lazy-load setup surfaces
2026-03-15 18:46:54 -07:00
Peter Steinberger
bad65f130e
refactor: move bluebubbles to setup wizard
2026-03-15 17:34:36 -07:00
rstar327
ba6064cc22
feat(gateway): make health monitor stale threshold and max restarts configurable (openclaw#42107)
...
Verified:
- pnpm exec vitest --run src/config/config-misc.test.ts -t "gateway.channelHealthCheckMinutes"
- pnpm exec vitest --run src/gateway/server-channels.test.ts -t "health monitor"
- pnpm exec vitest --run src/gateway/channel-health-monitor.test.ts src/gateway/server/readiness.test.ts
- pnpm exec vitest --run extensions/feishu/src/outbound.test.ts
- pnpm exec tsc --noEmit
Co-authored-by: rstar327 <114364448+rstar327@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-14 21:21:56 -05:00
Peter Steinberger
49a2ff7d01
build: sync plugins for 2026.3.14
2026-03-14 06:05:39 +00:00
Peter Steinberger
9b0e333f2c
refactor: share bluebubbles multipart helpers
2026-03-13 23:35:28 +00:00
Peter Steinberger
fd58268f04
test: dedupe bluebubbles normalize fixtures
2026-03-13 23:35:27 +00:00
Peter Steinberger
d0337a18b6
fix: clear typecheck backlog
2026-03-13 22:09:06 +00:00
Peter Steinberger
8896a477df
test: dedupe bluebubbles local media send cases
2026-03-13 21:54:39 +00:00
Peter Steinberger
d5d2fe1b0e
test: reduce webhook auth test duplication
2026-03-13 21:40:53 +00:00
Peter Steinberger
eca22c0cc7
test: share bluebubbles attachment fixtures
2026-03-13 21:40:53 +00:00
Peter Steinberger
89e0e80db3
test: share bluebubbles removal reaction helper
2026-03-13 21:40:53 +00:00
Peter Steinberger
6756e376f3
refactor: share bluebubbles response and tapback helpers
2026-03-13 21:40:53 +00:00
Peter Steinberger
16ececf0a6
chore: bump version to 2026.3.13
2026-03-13 04:38:32 +00:00
Peter Steinberger
c25e46a433
chore: prepare 2026.3.12 release
2026-03-13 01:38:20 +00:00
Vincent Koc
4dfd8eea90
BlueBubbles: require confirmed outbound for self-chat cache
2026-03-12 03:22:57 -04:00