Peter Steinberger
9cca8a6de5
fix(matrix): assert outbound runtime hooks
2026-03-15 18:20:53 -07:00
Peter Steinberger
b54e37c71f
feat(plugins): merge openai vendor seams into one plugin
2026-03-15 18:20:52 -07:00
Peter Steinberger
bc5054ce68
refactor(google): merge gemini auth into google plugin
2026-03-16 01:19:32 +00:00
Peter Steinberger
d56559bad7
fix: repair node24 ci type drift
2026-03-16 01:15:31 +00:00
Peter Steinberger
b8dbc12560
fix: align channel adapters with plugin sdk
2026-03-16 01:10:27 +00:00
Vincent Koc
7a93f7d9df
WhatsApp: lazy-load setup wizard surface
2026-03-15 18:09:05 -07:00
Peter Steinberger
579d0ebe2b
refactor(web-search): move providers into company plugins
2026-03-16 01:07:45 +00:00
Peter Steinberger
e8156c8281
feat(web-search): add plugin-backed search providers
2026-03-16 01:07:44 +00:00
Peter Steinberger
59bcac472e
fix: gate setup-only plugin side effects
2026-03-16 01:05:42 +00:00
Vincent Koc
ae6ee73097
Google Chat: lazy-load runtime-heavy channel paths
2026-03-15 18:02:27 -07:00
Vincent Koc
66a8c257b9
Feishu: lazy-load runtime-heavy channel paths
2026-03-15 18:01:43 -07:00
Peter Steinberger
18e4e4677c
refactor: move googlechat to setup wizard
2026-03-15 17:57:04 -07:00
Peter Steinberger
8c71b36acb
refactor: move tlon to setup wizard
2026-03-15 17:57:04 -07:00
Peter Steinberger
a8bee6fb6c
refactor: move irc to setup wizard
2026-03-15 17:57:04 -07:00
Peter Steinberger
0da588d2d2
refactor: move whatsapp to setup wizard
2026-03-15 17:57:03 -07:00
Vincent Koc
da4f82503f
MSTeams: lazy-load runtime-heavy channel paths
2026-03-15 17:50:35 -07:00
Vincent Koc
a782358c9b
Matrix: lazy-load runtime-heavy channel paths
2026-03-15 17:38:39 -07:00
Peter Steinberger
c455cccd3d
refactor: move nextcloud talk to setup wizard
2026-03-15 17:34:36 -07:00
Peter Steinberger
bad65f130e
refactor: move bluebubbles to setup wizard
2026-03-15 17:34:36 -07:00
Peter Steinberger
cbb8c43f60
refactor: tighten setup wizard onboarding bridge
2026-03-15 17:34:36 -07:00
Peter Steinberger
c156f7c7e3
fix: reduce plugin and discord warning noise
2026-03-16 00:24:44 +00:00
Peter Steinberger
a9317a4c28
test(discord): cover startup phase logging
2026-03-16 00:11:26 +00:00
Peter Steinberger
ee7ecb2dd4
feat(plugins): move anthropic and openai vendors to plugins
2026-03-15 17:07:28 -07:00
Peter Steinberger
1f37203f88
refactor: move signal imessage mattermost to setup wizard
2026-03-15 17:06:42 -07:00
Peter Steinberger
8e2a1d0941
feat(plugins): move bundled providers behind plugin hooks
2026-03-15 16:57:24 -07:00
Peter Steinberger
5a68e8261e
refactor: drop onboarding adapter sdk exports
2026-03-15 16:48:43 -07:00
Peter Steinberger
bb160ebe89
refactor: move discord and slack to setup wizard
2026-03-15 16:48:43 -07:00
Peter Steinberger
6e047eb683
refactor: expand setup wizard flow
2026-03-15 16:48:43 -07:00
Peter Steinberger
a4047bf148
refactor: move telegram onboarding to setup wizard
2026-03-15 16:26:09 -07:00
Peter Steinberger
9eed6e674b
fix(plugins): restore provider compatibility fallbacks
2026-03-15 16:09:40 -07:00
Peter Steinberger
684e5ea249
build(plugins): add bundled provider plugin packages
2026-03-15 16:09:40 -07:00
Peter Steinberger
4adcfa3256
feat(plugins): move provider runtimes into bundled plugins
2026-03-15 16:09:40 -07:00
Harold Hunt
aa1454d1a8
Plugins: broaden plugin surface for Codex App Server ( #45318 )
...
* Plugins: add inbound claim and Telegram interaction seams
* Plugins: add Discord interaction surface
* Chore: fix formatting after plugin rebase
* fix(hooks): preserve observers after inbound claim
* test(hooks): cover claimed inbound observer delivery
* fix(plugins): harden typing lease refreshes
* fix(discord): pass real auth to plugin interactions
* fix(plugins): remove raw session binding runtime exposure
* fix(plugins): tighten interactive callback handling
* Plugins: gate conversation binding with approvals
* Plugins: migrate legacy plugin binding records
* Plugins/phone-control: update test command context
* Plugins: migrate legacy binding ids
* Plugins: migrate legacy codex session bindings
* Discord: fix plugin interaction handling
* Discord: support direct plugin conversation binds
* Plugins: preserve Discord command bind targets
* Tests: fix plugin binding and interactive fallout
* Discord: stabilize directory lookup tests
* Discord: route bound DMs to plugins
* Discord: restore plugin bindings after restart
* Telegram: persist detached plugin bindings
* Plugins: limit binding APIs to Telegram and Discord
* Plugins: harden bound conversation routing
* Plugins: fix extension target imports
* Plugins: fix Telegram runtime extension imports
* Plugins: format rebased binding handlers
* Discord: bind group DM interactions by channel
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-03-15 16:06:11 -07:00
Peter Steinberger
4eee827dce
Channels: use owned helper imports
2026-03-15 15:59:12 -07:00
Peter Steinberger
8b001d6e4d
Channels: move onboarding adapters into extensions
2026-03-15 15:59:12 -07:00
Peter Steinberger
392ddb56e2
build(plugins): add bundled provider plugin manifests
2026-03-15 15:18:32 -07:00
Peter Steinberger
4a0f72866b
feat(plugins): move provider runtimes into bundled plugins
2026-03-15 15:18:32 -07:00
Nimrod Gutman
47fd8558cd
fix(plugins): fix bundled plugin roots and skill assets ( #47601 )
...
* fix(acpx): resolve bundled plugin root correctly
* fix(plugins): copy bundled plugin skill assets
* fix(plugins): tolerate missing bundled skill paths
2026-03-15 23:00:30 +02:00
Nimrod Gutman
e2dac5d5cb
fix(plugins): load bundled extensions from dist ( #47560 )
2026-03-15 21:16:27 +02:00
Vincent Koc
132e459009
fix(ci): config drift found and documented
2026-03-15 10:43:03 -07:00
Vincent Koc
5e78c8bc95
Webhooks: tighten pre-auth body handling ( #46802 )
...
* Webhooks: tighten pre-auth body handling
* Webhooks: clean up request body guards
2026-03-15 09:45:18 -07:00
Vincent Koc
a47722de7e
Integrations: tighten inbound callback and allowlist checks ( #46787 )
...
* Integrations: harden inbound callback and allowlist handling
* Integrations: address review follow-ups
* Update CHANGELOG.md
* Mattermost: avoid command-gating open button callbacks
2026-03-15 09:24:24 -07:00
Peter Steinberger
87c4ae36b4
refactor: drop deprecated whatsapp mention pattern sdk helper
2026-03-15 08:50:31 -07:00
Tak Hoffman
89e3969d64
feat(feishu): add ACP and subagent session binding ( #46819 )
...
* feat(feishu): add ACP session support
* fix(feishu): preserve sender-scoped ACP rebinding
* fix(feishu): recover sender scope from bound ACP sessions
* fix(feishu): support DM ACP binding placement
* feat(feishu): add current-conversation session binding
* fix(feishu): avoid DM parent binding fallback
* fix(feishu): require canonical topic sender ids
* fix(feishu): honor sender-scoped ACP bindings
* fix(feishu): allow user-id ACP DM bindings
* fix(feishu): recover user-id ACP DM bindings
2026-03-15 10:33:49 -05:00
Peter Steinberger
b2e9221a8c
test(whatsapp): fix stale append inbox expectation
2026-03-15 07:57:26 -07:00
Ayaan Zaidi
c4265a5f16
fix: preserve Telegram word boundaries when rechunking HTML ( #47274 )
...
* fix: preserve Telegram chunk word boundaries
* fix: address Telegram chunking review feedback
* fix: preserve Telegram retry separators
* fix: preserve Telegram chunking boundaries (#47274 )
2026-03-15 18:10:49 +05:30
Jason
9d3e653ec9
fix(web): handle 515 Stream Error during WhatsApp QR pairing ( #27910 )
...
* fix(web): handle 515 Stream Error during WhatsApp QR pairing
getStatusCode() never unwrapped the lastDisconnect wrapper object,
so login.errorStatus was always undefined and the 515 restart path
in restartLoginSocket was dead code.
- Add err.error?.output?.statusCode fallback to getStatusCode()
- Export waitForCredsSaveQueue() so callers can await pending creds
- Await creds flush in restartLoginSocket before creating new socket
Fixes #3942
* test: update session mock for getStatusCode unwrap + waitForCredsSaveQueue
Mirror the getStatusCode fix (err.error?.output?.statusCode fallback)
in the test mock and export waitForCredsSaveQueue so restartLoginSocket
tests work correctly.
* fix(web): scope creds save queue per-authDir to avoid cross-account blocking
The credential save queue was a single global promise chain shared by all
WhatsApp accounts. In multi-account setups, a slow save on one account
blocked credential writes and 515 restart recovery for unrelated accounts.
Replace the global queue with a per-authDir Map so each account's creds
serialize independently. waitForCredsSaveQueue() now accepts an optional
authDir to wait on a single account's queue, or waits on all when omitted.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* test: use real Baileys v7 error shape in 515 restart test
The test was using { output: { statusCode: 515 } } which was already
handled before the fix. Updated to use the actual Baileys v7 shape
{ error: { output: { statusCode: 515 } } } to cover the new fallback
path in getStatusCode.
Co-Authored-By: Claude Code (Opus 4.6) <noreply@anthropic.com >
* fix(web): bound credential-queue wait during 515 restart
Prevents restartLoginSocket from blocking indefinitely if a queued
saveCreds() promise stalls (e.g. hung filesystem write).
Co-Authored-By: Claude <noreply@anthropic.com >
* fix: clear flush timeout handle and assert creds queue in test
Co-Authored-By: Claude <noreply@anthropic.com >
* fix: evict settled credsSaveQueues entries to prevent unbounded growth
Co-Authored-By: Claude <noreply@anthropic.com >
* fix: share WhatsApp 515 creds flush handling (#27910 ) (thanks @asyncjason)
---------
Co-authored-by: Jason Separovic <jason@wilma.dog >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-03-15 17:00:07 +05:30
Ted Li
843e3c1efb
fix(whatsapp): restore append recency filter lost in extensions refactor, handle Long timestamps ( #42588 )
...
Merged via squash.
Prepared head SHA: 8ce59bb715
Co-authored-by: MonkeyLeeT <6754057+MonkeyLeeT@users.noreply.github.com >
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com >
Reviewed-by: @scoootscooob
2026-03-15 03:03:31 -07:00
Frank Yang
4bb8a65edd
fix: forward forceDocument through sendPayload path (follow-up to #45111 ) ( #47119 )
...
Merged via squash.
Prepared head SHA: d791190f83
Co-authored-by: thepagent <262003297+thepagent@users.noreply.github.com >
Reviewed-by: @frankekn
2026-03-15 17:23:53 +08:00
Vincent Koc
3cbf932413
Tlon: honor explicit empty allowlists and defer cite expansion ( #46788 )
...
* Tlon: fail closed on explicit empty allowlists
* Tlon: preserve cited content for owner DMs
2026-03-14 23:24:53 -07:00