scoootscooob
24032dcc0e
Reply: fix generated image delivery to Discord ( #52489 )
2026-03-22 15:18:16 -07:00
Peter Steinberger
6d34d62795
test: harden no-isolate gateway auth and pairing
2026-03-22 15:15:50 -07:00
Peter Steinberger
91cd38f4d4
fix(test): repair main CI drift
2026-03-22 22:12:43 +00:00
Peter Steinberger
030e950e5f
test: simplify ACP spawn scenarios
2026-03-22 15:11:22 -07:00
Peter Steinberger
a81e671509
refactor: extract ACP spawn flow helpers
2026-03-22 15:11:22 -07:00
Peter Steinberger
eca0809a6d
refactor: convert session manager cache to factory
2026-03-22 22:10:48 +00:00
Peter Steinberger
8eadc2f43b
refactor: extract shared expiring cache
2026-03-22 22:10:48 +00:00
Peter Steinberger
e06b8d3e62
fix: harden update channel switching
2026-03-22 15:09:38 -07:00
Peter Steinberger
66743b84fa
refactor(whatsapp): centralize web monitor state
2026-03-22 22:07:41 +00:00
Peter Steinberger
cfd9242e5d
perf: lazy-load memory runtime surfaces
2026-03-22 22:06:45 +00:00
Vincent Koc
e15f156f85
fix(test): reduce node hotspot startup cost
...
Scope: conversation-binding/targets startup trimming + schema help isolation guardrail
2026-03-22 15:05:00 -07:00
Peter Steinberger
ee077804b0
refactor(gateway): separate ciao classification from logging
2026-03-22 15:02:43 -07:00
Peter Steinberger
31ee442d3f
refactor(gateway): share interface discovery helpers
2026-03-22 15:02:43 -07:00
Peter Steinberger
c0d4abc59e
fix(gateway): suppress ciao interface assertions
...
Closes #38628 .
Refs #47159 , #52431 .
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-22 15:02:43 -07:00
Peter Steinberger
3faaf8984f
fix(gateway): guard interface discovery failures
...
Closes #44180 .
Refs #47590 .
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-22 15:02:43 -07:00
Vincent Koc
f7bc9818b5
feat(minimax): support fast mode and sync pi defaults
2026-03-22 14:54:30 -07:00
Felix
57267b23d5
fix(acp): restore inline delivery for run-mode spawns from main sessions ( #52426 )
...
* fix(acp): restore inline delivery for run-mode spawns from main sessions
* test: restore matrix ACP spawn coverage (#52426 ) (thanks @distractedCoding)
---------
Co-authored-by: Felix <distractedCoding@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-22 14:54:09 -07:00
Peter Steinberger
ef3f64952a
fix: bound session manager cache growth ( #52427 ) (thanks @karanuppal)
2026-03-22 14:54:04 -07:00
Karan Uppal
30090e4895
fix: evict expired SESSION_MANAGER_CACHE entries on TTL miss
...
isSessionManagerCached() checks TTL before returning stale hits but
never deletes expired entries from the Map. They accumulate
indefinitely over the lifetime of a long-running gateway.
Delete the expired entry when the TTL check fails so the Map stays
bounded to active sessions.
Closes #51820
2026-03-22 14:54:04 -07:00
Peter Steinberger
1e1372027e
perf: avoid cron startup store reload churn
2026-03-22 21:52:42 +00:00
Peter Steinberger
f075e2eebd
perf: lazy-load hook install runtime helpers
2026-03-22 21:52:42 +00:00
Peter Steinberger
5d379f92a3
perf: lazy-load plugin install runtime helpers
2026-03-22 21:52:42 +00:00
Peter Steinberger
4235fb16d6
perf: split provider metadata from runtime loading
2026-03-22 21:52:42 +00:00
Peter Steinberger
ae6f42484f
fix: restore cron and bundled plugin test metadata
2026-03-22 14:49:40 -07:00
Vincent Koc
11ca41f457
fix(test): repair cron and loader regressions
2026-03-22 14:39:17 -07:00
Peter Steinberger
dcd5473283
refactor: adopt shared chat plugin builder
2026-03-22 21:37:32 +00:00
Peter Steinberger
99462776d1
refactor: compose shared channel security adapters
2026-03-22 21:37:31 +00:00
Peter Steinberger
87b2672126
refactor: centralize computed channel status adapters
2026-03-22 21:37:31 +00:00
Peter Steinberger
2773f33084
test: stabilize vitest no-isolate suites
2026-03-22 14:28:43 -07:00
Peter Steinberger
9267e694f7
perf: reduce cron persistence churn
2026-03-22 21:28:16 +00:00
Peter Steinberger
46876edd86
perf: add lightweight memory status manager
2026-03-22 21:28:16 +00:00
Peter Steinberger
ca99163b98
perf: precompute base config schema
2026-03-22 21:28:16 +00:00
Peter Steinberger
593e333c10
perf: avoid plugin loader on provider fast paths
2026-03-22 21:28:16 +00:00
Peter Steinberger
171b24c5c5
perf: generate bundled plugin metadata for cold startup
2026-03-22 21:28:16 +00:00
Peter Steinberger
3ca7922dfe
refactor: split plugin command registration startup path
2026-03-22 21:28:16 +00:00
Vincent Koc
8745132f9c
fix(plugin-sdk): restore extension guardrails
2026-03-22 14:24:56 -07:00
Peter Steinberger
2c05e07f68
test: reset leaked cron fake timers
2026-03-22 14:22:21 -07:00
Jacob Tomlinson
2e246b47b9
docs: fix hook load order, command event payload, and session-memory confirmation
2026-03-22 21:09:36 +00:00
Peter Steinberger
ff6e0bed5f
refactor: finish remaining status helper dedupe
2026-03-22 21:07:19 +00:00
Vincent Koc
26db578edc
perf(inbound): trim reply startup imports ( #52470 )
...
* perf(inbound): trim dispatch and command startup imports
* fix(reply): restore command alias canonicalization
* style(reply): format command context
* fix(reply): restore runtime shim exports
* test(reply): mock ACP route seam
* fix(reply): repair dispatch type seams
* perf(inbound): defer followup reply helpers
* refactor(tts): share auto mode normalization
* fix(reply): catch followup compaction notice failures
2026-03-22 14:04:00 -07:00
Peter Steinberger
1efda3d041
test: improve live test progress feedback
2026-03-22 20:57:04 +00:00
Peter Steinberger
2a1acec6a7
refactor: reuse account status helpers in bundled channels
2026-03-22 20:55:16 +00:00
Peter Steinberger
87722d6327
refactor: extend shared account status snapshot helpers
2026-03-22 20:55:16 +00:00
Peter Steinberger
00b2f10dec
refactor: share account snapshot descriptions
2026-03-22 20:55:16 +00:00
Peter Steinberger
7a3346871e
test: fix no-isolate integration regressions
2026-03-22 20:41:03 +00:00
Peter Steinberger
822c68a2d0
test: remove remaining account helper boilerplate
2026-03-22 20:34:09 +00:00
Peter Steinberger
8eb881ef18
test: harden no-isolate mock and timer cleanup
2026-03-22 13:32:59 -07:00
Peter Steinberger
fa13c2960e
refactor: share scoped account accessor adapters
2026-03-22 20:30:21 +00:00
Peter Steinberger
8aca2fdc73
refactor: reuse shared core account lookups
2026-03-22 20:30:20 +00:00
Vincent Koc
5369ea53be
perf(inbound): trim dispatch and command startup imports ( #52374 )
...
* perf(inbound): trim dispatch and command startup imports
* fix(reply): restore command alias canonicalization
* style(reply): format command context
* fix(reply): restore runtime shim exports
* test(reply): mock ACP route seam
* fix(reply): repair dispatch type seams
2026-03-22 13:19:57 -07:00
Peter Steinberger
e04d203bff
test: remove heartbeat runner jiti mock pollution
2026-03-22 13:10:55 -07:00
Peter Steinberger
cf8891a824
fix: stabilize docker live test lanes
2026-03-22 20:07:27 +00:00
Vincent Koc
4bd90f24d1
perf(ci): gate install smoke on changed-smoke ( #52458 )
2026-03-22 12:58:08 -07:00
Onur Solmaz
b369397b43
ACP: revert acpx-plugin package naming ( #52456 )
...
* ACP: revert acpx-plugin package naming
* Test: format acp install hints expectations
2026-03-22 20:55:48 +01:00
Peter Steinberger
ff941b0193
refactor: share nested account config merges
2026-03-22 19:53:51 +00:00
Peter Steinberger
0404c16217
test: harden media local roots path assertions
2026-03-22 19:47:11 +00:00
Peter Steinberger
3c071a397f
refactor: share account id selection helpers
2026-03-22 19:45:59 +00:00
Peter Steinberger
bddb6fca7b
refactor: share remaining account config helpers
2026-03-22 19:45:59 +00:00
Vincent Koc
59837b25bd
fix(doctor): scope discord off hint to legacy migration
2026-03-22 12:42:47 -07:00
Vincent Koc
5f723ecd7f
fix(doctor): explain discord streaming opt-in ( #52450 )
2026-03-22 12:37:03 -07:00
Peter Steinberger
c26655d397
fix: stabilize plugin sdk api baselines
2026-03-22 19:32:29 +00:00
Peter Steinberger
4240c64491
test: harden no-isolate oauth contract coverage
2026-03-22 12:31:36 -07:00
Peter Steinberger
52b9d2091e
fix: ignore poisoned home env values
2026-03-22 12:31:36 -07:00
Vincent Koc
dbd26e49f1
fix(test): reduce startup-heavy hotspot retention ( #52381 )
2026-03-22 12:28:55 -07:00
Peter Steinberger
e64dbb00b3
fix: prefer source plugin-sdk root alias in tests
2026-03-22 12:25:51 -07:00
Vincent Koc
f85cfc8b6c
fix(gateway): harden first-turn startup readiness ( #52387 )
...
* fix(gateway): harden first-turn startup readiness
* fix(gateway): scope startup model retry
2026-03-22 12:12:08 -07:00
Peter Steinberger
aef2c60aa5
test: fix no-isolate canvas and timer regressions
2026-03-22 12:10:08 -07:00
Peter Steinberger
1822db9227
test: harden no-isolate timer and undici seams
2026-03-22 12:04:11 -07:00
Peter Steinberger
1b1167012f
test(cli): split plugin cli test coverage by surface
2026-03-22 12:02:53 -07:00
Peter Steinberger
e3151af6bc
refactor(cli): extract hook pack update flow
2026-03-22 12:02:52 -07:00
Peter Steinberger
5696e24c3f
refactor(cli): use typed clawhub fallback decisions
2026-03-22 12:02:52 -07:00
Peter Steinberger
145e514bb5
refactor(cli): share plugin install persistence
2026-03-22 12:02:52 -07:00
Peter Steinberger
5920ea838d
refactor(cli): extract plugin install and update commands
2026-03-22 12:02:52 -07:00
Peter Steinberger
c74a50e4f1
refactor: share merged account config helper
2026-03-22 19:01:52 +00:00
Peter Steinberger
d06413e335
refactor: share normalized account lookups
2026-03-22 19:01:52 +00:00
Peter Steinberger
ff759f991e
refactor: share account config merge helper
2026-03-22 19:01:52 +00:00
Peter Steinberger
8e09568bc7
perf: expand base vitest thread lanes
2026-03-22 11:59:38 -07:00
Peter Steinberger
412a3eb1ac
build: bump version to 2026.3.22
2026-03-22 11:58:33 -07:00
Peter Steinberger
c40488453e
test: remove thread-unsafe cwd mutations
2026-03-22 11:47:28 -07:00
Peter Steinberger
7d1ab5baca
fix: restore CI type and baseline checks
2026-03-22 18:46:50 +00:00
Onur Solmaz
b79560c7f0
ACP: fully rename acpx plugin ( #52404 )
...
* ACP: rename acpx plugin package
* ACP: fully rename acpx plugin
* ACP: remove old acpx paths
* Docs: add bundled plugin naming guardrails
* Docs: keep plugin naming guardrails internal
* ACP: keep acpx plugin id stable
* ACP: drop old acpx-plugin tree
2026-03-22 19:33:31 +01:00
Peter Steinberger
59b5583e0a
test: merge registry-backed channel contract suites
2026-03-22 18:31:52 +00:00
Peter Steinberger
04b283ffc2
fix: restore clawhub archive installs and gateway params
2026-03-22 18:31:52 +00:00
Peter Steinberger
aa80b1eb7c
feat(cli): unify hook pack installs under plugins
2026-03-22 11:20:50 -07:00
Peter Steinberger
8d9686bd0f
feat!: prefer clawhub plugin installs before npm
2026-03-22 18:17:45 +00:00
Peter Steinberger
13c239039a
refactor: consolidate qmd mcporter state
2026-03-22 18:09:45 +00:00
Peter Steinberger
23a6e0ccd3
refactor: share remaining runtime listener state
2026-03-22 18:09:45 +00:00
Peter Steinberger
17739910e9
refactor: centralize channel plugin registry lookups
2026-03-22 18:09:45 +00:00
Peter Steinberger
2c919078e1
refactor: share memory and discord singleton state
2026-03-22 18:09:45 +00:00
Peter Steinberger
88d39b1542
refactor: simplify remaining runtime singletons
2026-03-22 18:09:45 +00:00
Peter Steinberger
89d65521fe
refactor: dedupe extension runtime caches
2026-03-22 18:09:45 +00:00
Peter Steinberger
f095bbd7b0
refactor: simplify plugin runtime singletons
2026-03-22 18:09:45 +00:00
Peter Steinberger
9428b38452
refactor: consolidate core runtime state helpers
2026-03-22 18:09:45 +00:00
Peter Steinberger
ca986d05aa
test: trim repeated archive install work
2026-03-22 18:05:44 +00:00
Peter Steinberger
1ceaad18a6
test: harden vitest no-isolate coverage
2026-03-22 10:48:21 -07:00
Peter Steinberger
405d808409
fix: restore repo-wide gate after exec safe-bin refactor
2026-03-22 17:28:04 +00:00
Peter Steinberger
5863ce1f78
fix(media): narrow default local attachment roots
2026-03-22 10:24:47 -07:00
Peter Steinberger
14074d3337
fix: restore repo-wide gate after upstream sync
2026-03-22 17:16:43 +00:00
Peter Steinberger
0ac939059e
refactor(exec): split safe-bin semantics
2026-03-22 10:14:46 -07:00
Peter Steinberger
6c2a3b74e3
fix(exec): harden jq safe-bin policy
2026-03-22 10:04:40 -07:00
Peter Steinberger
91b2800241
feat: add native clawhub install flows
2026-03-22 17:03:49 +00:00
Peter Steinberger
5cb2f45585
refactor(hooks): unify hook policy resolution
2026-03-22 09:59:51 -07:00
Peter Steinberger
c96c319db3
refactor(plugin-sdk): share direct dm ingress helpers
2026-03-22 09:57:51 -07:00
Peter Steinberger
42f23619e3
fix(hooks): harden workspace hook loading
2026-03-22 09:38:09 -07:00
Peter Steinberger
1ee9611079
fix(nostr): enforce inbound dm policy before decrypt
2026-03-22 09:37:40 -07:00
Peter Steinberger
a94ec3b79b
fix(security): harden exec approval boundaries
2026-03-22 09:35:25 -07:00
Peter Steinberger
1d2dff0c4e
test: trim import-heavy startup paths
2026-03-22 16:34:09 +00:00
Peter Steinberger
3fa2300ba1
perf: reduce plugin runtime startup overhead
2026-03-22 16:34:09 +00:00
Bob
4f1e12a2b1
Docs: prototype generated plugin SDK reference ( #51877 )
...
* Chore: unblock synced main checks
* Docs: add plugin SDK docs implementation plan
* Docs: scaffold plugin SDK reference phase 1
* Docs: mark plugin SDK reference surfaces unstable
* Docs: prototype generated plugin SDK reference
* docs(plugin-sdk): replace generated reference with api baseline
* docs(plugin-sdk): drop generated reference plan
* docs(plugin-sdk): align api baseline flow with config docs
---------
Co-authored-by: Onur <2453968+osolmaz@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-22 09:19:00 -07:00
Vincent Koc
3ce5a8366a
fix(plugins): enforce minimum host versions for installable plugins ( #52094 )
...
* fix(plugins): enforce min host versions
* fix(plugins): tighten min host version validation
* chore(plugins): trim dead min host version code
* fix(plugins): handle malformed min host metadata
* fix(plugins): key manifest cache by host version
2026-03-22 09:12:08 -07:00
Vincent Koc
6b7206ed35
perf(inbound): trim reply-run startup imports ( #52332 )
...
* perf(inbound): trim reply-run startup imports
* style(reply): format body runtime import
* test(reply): restore runtime seam mocks
2026-03-22 09:05:14 -07:00
Peter Steinberger
05279539a8
docs(plugin-sdk): document public SDK surface
2026-03-22 08:50:48 -07:00
Vincent Koc
e1ff24903f
fix(gateway): follow up startup import reviews ( #52337 )
2026-03-22 08:48:53 -07:00
Vincent Koc
b9e71240ed
refactor(doctor): centralize channel capability metadata ( #52325 )
...
* refactor(doctor): centralize channel capabilities
* fix(doctor): preserve msteams sender warnings
2026-03-22 08:47:16 -07:00
Vincent Koc
d3a0a623a3
fix(gateway): trim startup plugin imports ( #52326 )
...
* fix(gateway): trim startup plugin imports
* fix(gateway): follow up startup import reviews
2026-03-22 08:43:54 -07:00
Peter Steinberger
49091ebcbd
chore: update dependencies except carbon
2026-03-22 08:37:03 -07:00
Vincent Koc
4685fc7e77
fix(doctor): align matrix and zalouser allowlist semantics ( #52096 )
...
* fix(doctor): align extension allowlist semantics
* fix(doctor): skip generic zalouser group warning
2026-03-22 08:19:24 -07:00
CharZhou
a07dcfde84
fix: pass clientTools to runEmbeddedAttempt in /v1/responses agent path ( #52171 )
...
Merged via squash.
Prepared head SHA: 74519e7da6
Co-authored-by: CharZhou <17255546+CharZhou@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-03-22 22:05:00 +08:00
Luke
ad24fccff5
test(gateway): stabilize suite session-store config ( #52193 )
...
* test(gateway): stabilize suite session-store config
* test(gateway): preserve seeded config semantics
* test(gateway): update seeded session store overrides
2026-03-22 19:18:44 +08:00
Bartok9
c70ae1c96e
fix(poll-params): treat zero-valued numeric poll params as unset ( #52150 )
...
Merged via squash.
Prepared head SHA: 189e695b7c
Co-authored-by: Bartok9 <259807879+Bartok9@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-03-22 18:39:31 +08:00
Peter Steinberger
b70b7b0d94
test: trim more local test startup overhead
2026-03-22 09:35:36 +00:00
Peter Steinberger
3382ef2724
perf: reduce plugin runtime startup overhead
2026-03-22 09:35:36 +00:00
Bob
aa6b962a3a
Discord/ACP: forward abort signals into ACP turns ( #52148 )
...
* Discord/ACP: forward abort signals into ACP turns
* ACP: abort queued turns before actor start
2026-03-22 10:04:32 +01:00
Peter Steinberger
574cc9de64
test: trim more unit test startup overhead
2026-03-22 07:52:58 +00:00
Peter Steinberger
3cd4978fc2
refactor(agents): unify tool media reply delivery
2026-03-22 00:49:56 -07:00
Peter Steinberger
4becbc8b25
test: remove duplicate outbound plugin tests
2026-03-22 07:38:01 +00:00
Peter Steinberger
b4656f193a
test: strengthen regression coverage and trim low-value checks
2026-03-22 07:38:01 +00:00
Peter Steinberger
94ec0d6aeb
test: trim plugin-sdk import-heavy startup
2026-03-22 07:22:42 +00:00
Peter Steinberger
b2f9ab9a1f
test: trim import-heavy startup paths
2026-03-22 05:59:46 +00:00
Vincent Koc
041f0b87ec
perf(inbound): trim cold startup import graph ( #52082 )
...
* perf(inbound): trim cold startup import graph
* chore(reply): drop redundant inline action type import
* fix(inbound): restore warning and maintenance seams
* fix(reply): restore type seam and secure forked transcripts
2026-03-21 22:32:21 -07:00
Vincent Koc
c96a12aeb9
Agents: add per-agent defaults and safe model fallback ( #51974 )
...
* Agents: add per-agent defaults and safe model fallback
* Docs: add per-agent thinking/reasoning/fast defaults to config reference and thinking docs
* Format get-reply directives
* Auto-reply: guard agent reasoning defaults
* Docs: update config baseline
2026-03-21 22:27:24 -07:00
Bryan Tegomoh, MD, MPH
f783101735
fix: accept session_status sessionKey=current alias ( #39574 )
...
* fix: normalize sessionKey=current in shared session resolution
Move the "current" alias handling from a narrow session_status-only
mapping into the shared session resolution layer so every session tool
(session_status, sessions_history, sessions_send) resolves it
consistently.
Changes:
- Register "current" as a canonical session key in looksLikeSessionKey
so it is never misclassified as a sessionId
- Normalize "current" to the requester's own session key inside
resolveSessionReference and resolveInternalSessionKey
- Add "current" normalization in session_status before local store
lookup via the existing "main" alias scoping
- Add regression tests covering both main-session and cross-agent
resolution paths
Fixes #39570
* fix: keep session_status current bound to requester
* fix: preserve literal current session targets
* fix: preserve literal current in session_status
* fix: defer current alias in session_status
* fix: scope session_status current to active store (#39574 ) (thanks @BryanTegomoh)
* fix: preserve literal current session previews (#39574 ) (thanks @BryanTegomoh)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-22 10:55:05 +05:30
Peter Steinberger
e1854dfbf6
test: trim import-heavy startup paths
2026-03-22 05:03:10 +00:00
Peter Steinberger
8727338372
perf: extract lightweight runtime seams
2026-03-22 05:03:10 +00:00
Vincent Koc
2b210703a3
fix(models): cache models.json readiness for embedded runs ( #52077 )
...
* fix(models): cache models.json readiness for embedded runs
* fix(models): harden readiness cache inputs
2026-03-21 21:58:10 -07:00
Vincent Koc
7a0dacbfba
refactor(doctor): extract note emission ( #52076 )
...
* refactor(doctor): extract note emission
* test(doctor): cover optional note emission paths
2026-03-21 21:52:14 -07:00
Tak Hoffman
0f6dbb4390
Fix configure cache ownership for plugin resolvers ( #52018 )
...
* fix configure cache ownership
* address web-search cache review
* rekey provider wizard cache
* honor plugin cache opt-outs
* fix cache invalidation gaps
* align plugin snapshot ttl
* refresh snapshot cache keys
2026-03-21 23:41:45 -05:00
Vincent Koc
ec59974a46
refactor(doctor): extract flow finalization ( #52067 )
...
* refactor(doctor): extract flow finalization
* test(doctor): pin repair finalization to cfg
2026-03-21 21:27:51 -07:00
Vincent Koc
60f559e217
refactor(doctor): extract matrix sequencing ( #52056 )
2026-03-21 21:10:48 -07:00
Peter Steinberger
7ac312b8fe
fix(agents): migrate remaining media artifacts
2026-03-21 21:05:33 -07:00
Vincent Koc
177136c964
perf(inbound): trim reply startup imports ( #51988 )
...
* perf(inbound): narrow reply startup imports
* perf(inbound): trim reply startup imports
* fix(perf): dedupe archive helpers
2026-03-21 20:49:41 -07:00
Vincent Koc
b2380b3ab1
refactor(doctor): extract repair sequencing ( #51980 )
...
* refactor(doctor): extract repair sequencing
* fix(doctor): sanitize repair runner notes
2026-03-21 20:43:16 -07:00
Peter Steinberger
8e6a4c2d82
perf: narrow discord timeout import seam
2026-03-22 02:42:57 +00:00
Peter Steinberger
d81772dbc7
test: trim import-heavy startup paths
2026-03-22 02:11:43 +00:00
Peter Steinberger
2cc777539a
perf: reduce plugin and memory startup overhead
2026-03-22 02:11:43 +00:00
Vincent Koc
ab38f6471c
perf(inbound): narrow reply startup imports ( #51943 )
...
* perf(inbound): narrow reply startup imports
* fix(reply): restore activation parsing semantics
Cherry-picked review fixes for activation parsing semantics and native command surface cache invalidation.
* fix(reply): preserve case-insensitive command matching
Cherry-picked review fix to lowercase only the slash-command token in commands-context while preserving argument casing.
2026-03-21 18:18:41 -07:00
Vincent Koc
3775651480
refactor(doctor): extract preview warning collection ( #51942 )
...
* refactor(doctor): extract preview warning collection
* fix(doctor): sanitize preview empty allowlist warnings
* test(doctor): cover sanitized preview warnings
2026-03-21 18:11:28 -07:00
Vincent Koc
2b4c3c2057
fix(plugin-sdk): remove relative extension boundary escapes ( #51939 )
...
* fix(plugin-sdk): remove relative extension boundary escapes
* Gate new plugin-sdk subpaths on host version
* Add changelog entry for #51939
* Fix local staging for plugin-sdk host version gate
* Raise host floor for line and googlechat plugins
---------
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-03-21 20:03:18 -05:00
Peter Steinberger
d0d82ea67b
test: trim import-heavy startup paths
2026-03-22 00:53:12 +00:00
Peter Steinberger
8b7f40580d
perf: split telegram audit runtime seams
2026-03-22 00:53:12 +00:00
Peter Steinberger
30ad059da8
refactor(test): dedupe setup wizard helpers
2026-03-22 00:16:31 +00:00
Vincent Koc
85722d4cf2
refactor(doctor): extract legacy and unknown-key steps ( #51938 )
2026-03-21 16:59:22 -07:00
Vincent Koc
865a90ccab
refactor(doctor): extract config mutation state helper ( #51935 )
2026-03-21 16:45:33 -07:00
Vincent Koc
91f404dc7e
refactor(doctor): continue doctor flow extraction ( #51920 )
...
* refactor(doctor): extract shared warning formatters
* refactor(doctor): extract provider warning previews
* style(doctor): sort telegram imports
2026-03-21 16:32:11 -07:00
Peter Steinberger
37d5cbe43a
test: trim test startup overhead
2026-03-21 23:30:51 +00:00
Peter Steinberger
cf4d301a69
perf: reduce memory startup overhead
2026-03-21 23:30:15 +00:00
Vincent Koc
80441baa15
perf(core): trim provider and inbound startup imports ( #51927 )
...
* fix(telegram): fail fast on stuck getUpdates
* perf(core): trim provider and inbound startup imports
2026-03-21 16:20:42 -07:00
Peter Steinberger
9dea537bae
fix(cli): clean daemon install imports
2026-03-21 23:14:40 +00:00
Peter Steinberger
29b165e456
refactor: centralize node startup tls planning
2026-03-21 15:58:42 -07:00
Vincent Koc
5b31b3400e
refactor(doctor): continue provider and shared extractions ( #51905 )
...
* refactor(doctor): extract empty allowlist scanning
* refactor(doctor): extract matrix provider helpers
* refactor(doctor): extract matrix repair orchestration
2026-03-21 15:57:08 -07:00
Vincent Koc
5024967e57
fix(core): trim inbound startup churn ( #51899 )
...
* perf(core): narrow sandbox status imports for error helpers
* fix(core): trim inbound startup churn
* fix(auth): expire cached external cli sync state
* test(auth): avoid mtime sleep race in cache test
2026-03-21 15:55:19 -07:00
Vincent Koc
d88c68fec1
perf(core): narrow sandbox status imports for error helpers ( #51897 )
...
* perf(core): narrow sandbox status imports for error helpers
* fix(build): add runtime boundaries for reply understanding
Add missing lazy-load runtime shim files required by get-reply.ts.
* fix(debug): remove duplicate spacing in ingress logs
Use logIngressStage suffix spacing consistently for media and link understanding debug lines.
2026-03-21 15:40:45 -07:00
Vincent Koc
d3731be2f0
fix(config): use discord runtime api defaults
2026-03-21 15:21:42 -07:00
Gustavo Madeira Santana
5b3fce4c85
Outbound: preserve routed audioAsVoice delivery
2026-03-21 15:14:37 -07:00
Vincent Koc
21544f9e53
fix(doctor): harden follow-up repair paths ( #51888 )
...
* fix(doctor): harden follow-up repair paths
* fix(doctor): sanitize remaining warning paths
2026-03-21 15:11:01 -07:00
Vincent Koc
825d82b5c9
test(guardrails): use telegram public api in outbound targets
2026-03-21 15:08:43 -07:00
Vincent Koc
99641f01a5
perf(auth): reduce plugin auth cold-start heap ( #51891 )
...
* fix(test): recycle unit-fast ci batches
* refactor(config): narrow discord timeout import
* test(outbound): lighten target plugin stubs
* refactor(auth): narrow env api key resolution
* docs(auth): restore anthropic vertex sentinel comment
* refactor(auth): isolate console sanitizer
2026-03-21 15:07:08 -07:00
Vincent Koc
805aaa4ee8
fix(agents): avoid model catalog startup tax on telegram replies
2026-03-21 15:03:55 -07:00
Vincent Koc
5069c771e7
fix(test): recycle unit-fast CI batches ( #51884 )
...
* fix(test): recycle unit-fast ci batches
* refactor(config): narrow discord timeout import
* test(outbound): lighten target plugin stubs
* refactor(auth): narrow env api key resolution
* docs(auth): restore anthropic vertex sentinel comment
2026-03-21 14:56:29 -07:00
Vincent Koc
039ea5998e
refactor(doctor): continue extracting shared doctor helpers ( #51876 )
...
* refactor(doctor): extract exec safe-bin helpers
* refactor(doctor): extract legacy tools-by-sender helpers
* refactor(doctor): extract default account warnings
* refactor(doctor): reuse canonical config path helpers
2026-03-21 14:28:14 -07:00
Bob
c2634b5e40
Agents: raise default timeout to 48h ( #51874 )
2026-03-21 21:54:46 +01:00
Peter Steinberger
4229ffe2b9
perf: reduce runtime and test startup overhead
2026-03-21 20:18:16 +00:00
Zhenye Dong
80959219ce
fix(update): make up-to-date package status explicit ( #51409 )
...
Merged via squash.
Prepared head SHA: 75aba35882
Co-authored-by: dongzhenye <5765843+dongzhenye@users.noreply.github.com>
Co-authored-by: mcaxtr <7562095+mcaxtr@users.noreply.github.com>
Reviewed-by: @mcaxtr
2026-03-21 17:17:14 -03:00
Peter Steinberger
bfcfc17a8b
refactor: tighten plugin sdk entry surface
2026-03-21 20:08:01 +00:00
Peter Steinberger
c29ba9d21a
fix(docs): handle anchors in docs link audit
2026-03-21 19:58:36 +00:00
Bob
8cac327c19
ACP: recover hung bound turns ( #51816 )
...
* ACP: add hung-turn starvation repro
* ACP: recover hung bound turns
* ACP: preserve timed-out session handles
---------
Co-authored-by: Onur <2453968+osolmaz@users.noreply.github.com>
2026-03-21 20:54:30 +01:00
samzong
5c05347d11
fix(compaction): make compaction guard content-aware to prevent false cancellations in heartbeat sessions ( #42119 )
...
Merged via squash.
Prepared head SHA: 3429643315
Co-authored-by: samzong <13782141+samzong@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 12:27:35 -07:00
Menglin Li
ef7a5c3546
fix: use content hash for memory flush dedup instead of compactionCount ( #30115 ) ( #34222 )
...
Merged via squash.
Prepared head SHA: bce6f0bda0
Co-authored-by: lml2468 <39320777+lml2468@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 12:06:25 -07:00
Matthew19990919
fb50c98d67
fix(tts): add matrix to VOICE_BUBBLE_CHANNELS ( #37080 )
...
Merged via squash.
Prepared head SHA: 89ca0355d4
Co-authored-by: Matthew19990919 <504525675@qq.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-21 11:29:53 -07:00
Jari Mustonen
fd2b3ed6af
feat(memory): pluggable system prompt section for memory plugins ( #40126 )
...
Merged via squash.
Prepared head SHA: 5228d1937f
Co-authored-by: jarimustonen <1272053+jarimustonen@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 11:20:45 -07:00
Peter Steinberger
ebfc5f8240
fix: detect nvm services from installed command ( #51146 )
2026-03-21 11:06:31 -07:00
Peter Steinberger
40f5305cd2
fix: handle Linux nvm CA env before startup ( #51146 ) (thanks @GodsBoy)
2026-03-21 11:06:31 -07:00
scoootscooob
d6367c2c55
refactor: route Telegram runtime through plugin sdk ( #51772 )
2026-03-21 10:24:56 -07:00
scoootscooob
c0e482f4bd
refactor: route iMessage runtime through plugin sdk ( #51770 )
2026-03-21 10:21:20 -07:00
scoootscooob
6516cfa566
refactor: route Slack runtime through plugin sdk ( #51766 )
2026-03-21 10:11:17 -07:00
Vincent Koc
4e979ea6ca
refactor(doctor): extract provider and shared config helpers ( #51753 )
...
* refactor(doctor): add shared doctor types
* refactor(doctor): add shared allowlist helpers
* refactor(doctor): extract empty allowlist warnings
* refactor(doctor): extract telegram allowfrom scanning
* refactor(doctor): extract telegram allowfrom repair
* refactor(doctor): extract discord id repair
* refactor(doctor): add shared object helpers
* refactor(doctor): extract mutable allowlist scanning
* refactor(doctor): extract open-policy allowfrom repair
* refactor(doctor): extract allowlist policy repair
* fix(doctor): unblock discord provider refactor checks
* refactor(doctor): fix provider layering in shared warnings
2026-03-21 10:09:38 -07:00
Harold Hunt
e24bf22f98
Fix Discord `/codex_resume` picker expiration ( #51260 )
...
Merged via squash.
Prepared head SHA: 76eb184dbe
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-21 12:59:21 -04:00
Vincent Koc
f4227e2787
fix(ci): remove duplicate embedding default export
2026-03-21 09:39:37 -07:00
Vincent Koc
e61835ec5e
fix(ci): restore embedding defaults and plugin boundaries
2026-03-21 09:32:14 -07:00
Pandadadadazxf
2fe0efc9e1
fix: compaction safeguard summary budget ( #27727 )
...
Merged via squash.
Prepared head SHA: a7ab64e394
Co-authored-by: Pandadadadazxf <200469161+Pandadadadazxf@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 09:27:51 -07:00
Vincent Koc
15fd11032d
fix(status): skip cold-start status probes
2026-03-21 08:59:19 -07:00
Vincent Koc
a267c5d9ae
refactor(doctor): extract telegram provider warnings ( #51704 )
...
* refactor(doctor): extract telegram provider warnings
* docs(changelog): note doctor provider refactor
2026-03-21 08:57:06 -07:00
Vincent Koc
2ead75ea0e
fix(doctor): add telegram first-run guidance
2026-03-21 08:46:28 -07:00
Vincent Koc
7918308b1a
fix(doctor): suppress telegram fresh-install group warning
2026-03-21 08:46:28 -07:00
Vincent Koc
06b4efb1e7
fix(configure): drop duplicate wizard header
2026-03-21 08:41:57 -07:00
Vincent Koc
2e8c8a7ae6
refactor(openai): centralize provider defaults
2026-03-21 08:40:03 -07:00
Vincent Koc
4c4eea97e9
fix(configure): tighten fresh setup provider UX
2026-03-21 08:34:44 -07:00
Vincent Koc
ffce904a10
fix(check): format onboard search test
2026-03-21 08:33:15 -07:00
Vincent Koc
265386cd6b
feat(plugins): register claude bundle commands natively
2026-03-21 08:14:48 -07:00
zidongdesign
2b68d20ab3
feat: notify user when context compaction starts and completes ( #38805 )
...
Merged via squash.
Prepared head SHA: 0f48c1bbf6
Co-authored-by: zidongdesign <81469543+zidongdesign@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-21 08:14:29 -07:00
Vincent Koc
1169d51aee
fix(onboarding): clarify web search key copy
2026-03-21 08:13:39 -07:00
Harold Hunt
5eb99a9b50
Infra: unify plugin split runtime state ( #50725 )
...
Merged via squash.
Prepared head SHA: 570b7b9459
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-21 11:00:21 -04:00
Vincent Koc
a3a5cad7d7
fix(onboarding): hide image-only auth providers
2026-03-21 07:42:42 -07:00
scoootscooob
f10d054745
refactor: route discord runtime through plugin sdk ( #51444 )
2026-03-21 07:40:51 -07:00
Echo
11aff6ed72
fix(auth): support remote Codex OAuth manual input ( #51631 )
...
* fix(auth): support remote codex oauth manual input
* fix: support remote Codex OAuth manual input (#51631 ) (thanks @cash-echo-bot)
---------
Co-authored-by: Cash Williams <cashwilliams@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 19:40:54 +05:30
fuller-stack-dev
c9449d77b4
feat(gateway): persist webchat inbound images to disk ( #51324 )
...
* feat(gateway): persist webchat inbound images to disk
Images sent via the webchat control UI (chat.send RPC) were parsed into
content blocks but never written to disk, unlike WhatsApp and Telegram
handlers which call saveMediaBuffer(). This caused:
- Images lost after conversation compaction (only existed as ephemeral base64)
- Image editing/generation workflows failing for webchat-origin images
- Incomplete ~/.openclaw/media/inbound/ directory
After parseMessageWithAttachments extracts parsedImages, iterate and
persist each via saveMediaBuffer(buffer, mimeType, 'inbound'). Uses
fire-and-forget (.catch + warn log) so disk I/O never blocks the
chat.send response path.
Fixes #47930
* fix(gateway): address PR review comments on webchat image persistence
- Move saveMediaBuffer calls after sendPolicy/stop/dedupe checks so
rejected or retried requests don't write files to disk (Codex P1)
- Await all saves and collect SavedMedia results into persistedImages
so the persisted paths are available in scope (Greptile P1)
- Preserve Error stack trace in warn log instead of coercing to
toString() (Greptile P2)
- Switch to Promise.all for concurrent writes
* fix(gateway): address remaining review comments on webchat image persistence
- Revert to fire-and-forget pattern (no await) to eliminate race window
where retried requests miss the in-flight guard during image saves
- Remove unused SavedMedia import and persistedImages collection
- Use formatForLog for consistent error logging with stack traces
- Add NOTE comment about path propagation being a follow-up task
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(gateway): gate image persistence to webchat callers and defer base64 decode
* fix: drop unrelated format churn in lifecycle.test.ts
* gateway: clarify image persistence scope covers all chat.send callers
* fix(gateway): use generic chat.send log prefix for image persistence warnings
* fix(gateway): persist chat.send image refs in transcript
* fix(gateway): keep chat.send image refs off visible text
* fix(gateway): persist chat send media refs on dispatch
* fix(gateway): serialize chat send image persistence
* fix(gateway): persist chat send media after dispatch
* fix: persist chat.send inbound images across follow-ups (#51324 ) (thanks @fuller-stack-dev)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 19:05:11 +05:30
RichardCao
7bf437402d
fix: trim config validation startup imports ( #51574 )
...
Merged via squash.
Prepared head SHA: 23b235e465
Co-authored-by: RichardCao <4612401+RichardCao@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-21 09:31:39 -04:00
fuller-stack-dev
5137a51307
feat(github-copilot): resolve any model ID dynamically ( #51325 )
...
* feat(github-copilot): resolve any model ID dynamically instead of only known ones
* refactor(github-copilot): extract model resolution, add reasoning heuristic and tests
* fix(github-copilot): default synthetic models to text-only input
* ci: retrigger checks
* copilot: mark synthetic catch-all models as vision-capable
* fix(github-copilot): anchor reasoning regex, unexport internal constants, add mid-string test
* fix(github-copilot): default synthetic models to text-only input
* fix(github-copilot): restore image input for synthetic models with explanatory comment
* fix(github-copilot): normalize registry lookup casing, add bare o3 test case
* fix: preserve configured overrides for dynamic models
* fix: allow dynamic GitHub Copilot models (#51325 ) (thanks @fuller-stack-dev)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 17:37:50 +05:30
Ayaan Zaidi
42e708d005
fix(agents): register simple completion transports
2026-03-21 17:22:31 +05:30
Taras Lukavyi
466debb75c
feat(telegram): auto-rename DM topics on first message ( #51502 )
...
* feat(telegram): auto-rename DM topics on first message
fix(telegram): use bot.api for topic rename to avoid SecretRef resolution
* fix(telegram): address security + test review feedback
- Fix test assertion: DEFAULT_PROMPT_SUBSTRING matches 'very short'
- Use RawBody instead of Body (no envelope metadata to LLM)
- Truncate user message to 500 chars for LLM prompt
- Remove user-derived content from verbose logs
- Remove redundant threadSpec.id null check
- Fix AutoTopicLabelParams type to match generateTopicLabel
* fix(telegram): use effective dm auto-topic config
* fix(telegram): detect direct auto-topic overrides
* fix: auto-rename Telegram DM topics on first message (#51502 ) (thanks @Lukavyi)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 16:53:30 +05:30
Val Alexander
2fd372836e
iOS: improve QR pairing flow ( #51359 )
...
- improve QR pairing UX and bootstrap token handling
- preserve repeated optimistic user messages during refresh
- add regression coverage for refresh reconciliation
Thanks @ImLukeF
2026-03-21 01:10:29 -05:00
Ted Li
5bb5d7dab4
CLI: respect full timeout for loopback gateway probes ( #47533 )
...
* CLI: respect loopback gateway probe timeout
* CLI: name gateway probe budgets
* CLI: keep inactive loopback probes fast
* CLI: inline simple gateway probe caps
* Update helpers.ts
* Gateway: clamp probe timeout to timer-safe max
* fix: note loopback gateway probe timeout fix (#47533 ) (thanks @MonkeyLeeT)
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 10:57:50 +05:30
scoootscooob
d78e13f545
fix(agent): clarify embedded transport errors ( #51419 )
...
Merged via squash.
Prepared head SHA: cea32a4bda
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Reviewed-by: @scoootscooob
2026-03-20 21:47:47 -07:00
Cypherm
6b4c24c2e5
feat(telegram): support custom apiRoot for alternative API endpoints ( #48842 )
...
* feat(telegram): support custom apiRoot for alternative API endpoints
Add `apiRoot` config option to allow users to specify custom Telegram Bot
API endpoints (e.g., self-hosted Bot API servers). Threads the configured
base URL through all Telegram API call sites: bot creation, send, probe,
audit, media download, and api-fetch. Extends SSRF policy to dynamically
trust custom apiRoot hostname for media downloads.
Closes #28535
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(telegram): thread apiRoot through allowFrom lookups
* fix(telegram): honor lookup transport and local file paths
* refactor(telegram): unify username lookup plumbing
* fix(telegram): restore doctor lookup imports
* fix: document Telegram apiRoot support (#48842 ) (thanks @Cypherm)
---------
Co-authored-by: Cypherm <28184436+Cypherm@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 10:10:38 +05:30
wesley
598f1826d8
fix(subagent): include partial progress when subagent times out ( #40700 )
...
* fix(subagent): preserve timeout partial progress reporting
* refactor: unify subagent output selection
* test: cover distilled subagent timeout output
* fix: remove timeout-only subagent path
---------
Co-authored-by: Wesley <imwyvern@users.noreply.github.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-21 08:44:38 +05:30
Tyler Yust
5e417b44e1
Outbound: skip broadcast channel scan when channel is explicit
2026-03-20 18:21:01 -07:00
Tyler Yust
b71686ab44
Enhance web search provider config validation and compatibility handling
...
- Added a test to ensure no warnings for legacy Brave config when bundled web search allowlist compatibility is applied.
- Updated validation logic to incorporate compatibility configuration for bundled web search plugins.
- Refactored the ensureRegistry function to utilize the new compatibility handling.
2026-03-20 18:20:50 -07:00
Danh Doan
e78129a4d9
feat(context-engine): pass incoming prompt to assemble ( #50848 )
...
Merged via squash.
Prepared head SHA: 282dc9264d
Co-authored-by: danhdoan <12591333+danhdoan@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 17:03:21 -07:00
Josh Lehman
751d5b7849
feat: add context engine transcript maintenance ( #51191 )
...
Merged via squash.
Prepared head SHA: b42a3c28b4
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 16:28:27 -07:00
Peter Steinberger
6526074c85
test: trim singleton cold-start reloads
2026-03-20 23:14:28 +00:00
Josh Lehman
2364e45fe4
test: align extension runtime mocks with plugin-sdk ( #51289 )
...
* test: align extension runtime mocks with plugin-sdk
Update stale extension tests to mock the plugin-sdk runtime barrels that production code now imports, and harden the Signal tool-result harness around system-event assertions so the channels lane matches current extension boundaries.
Regeneration-Prompt: |
Verify the failing channels-lane tests against current origin/main in an isolated worktree before changing anything. If the failures reproduce on main, keep the fix test-only unless production behavior is clearly wrong. Recent extension refactors moved Telegram, WhatsApp, and Signal code onto plugin-sdk runtime barrels, so update stale tests that still mock old core module paths to intercept the seams production code now uses. For Signal reaction notifications, avoid brittle assertions that depend on shared queued system-event state when a direct harness spy on enqueue behavior is sufficient. Preserve scope: only touch the failing tests and their local harness, then rerun the reproduced targeted tests plus the full channels lane and repo check gate.
* test: fix extension test drift on main
* fix: lazy-load bundled web search plugin registry
* test: make matrix sweeper failure injection portable
* fix: split heavy matrix runtime-api seams
* fix: simplify bundled web search id lookup
* test: tolerate windows env key casing
2026-03-20 15:59:53 -07:00
Vincent Koc
e635cedb85
test(openai): cover bundle media surfaces
2026-03-20 15:53:12 -07:00
Sally O'Malley
6e20c4baa0
feat: add anthropic-vertex provider for Claude via GCP Vertex AI ( #43356 )
...
Reuse pi-ai's Anthropic client injection seam for streaming, and add
the OpenClaw-side provider discovery, auth, model catalog, and tests
needed to expose anthropic-vertex cleanly.
Signed-off-by: sallyom <somalley@redhat.com>
2026-03-20 18:48:42 -04:00
Josh Lehman
c3972982b5
fix: sanitize malformed replay tool calls ( #50005 )
...
Merged via squash.
Prepared head SHA: 64ad5563f7
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 15:03:30 -07:00
Peter Steinberger
994b42a5a5
test: parallelize safe audit case tables
2026-03-20 21:16:01 +00:00
Josh Avant
7abfff756d
Exec: harden host env override handling across gateway and node ( #51207 )
...
* Exec: harden host env override enforcement and fail closed
* Node host: enforce env override diagnostics before shell filtering
* Env overrides: align Windows key handling and mac node rejection
2026-03-20 15:44:15 -05:00
Josh Avant
c7134e629c
LINE: harden Express webhook parsing to verified raw body ( #51202 )
...
* LINE: enforce signed-raw webhook parsing
* LINE: narrow scope and add buffer regression
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-20 15:32:55 -05:00
Vincent Koc
11d71ca352
pairing: keep setup codes bootstrap-token only ( #51259 )
2026-03-20 13:27:39 -07:00
Peter Steinberger
5a5e84ca1d
test: drop duplicate web search helper
2026-03-20 20:25:24 +00:00
Peter Steinberger
fa71ad7c5d
test: repair latest-main web search regressions
2026-03-20 20:17:11 +00:00
Josh Lehman
23fef04c4e
test: fix setup finalize web search mocks ( #51253 )
2026-03-20 13:07:22 -07:00
Teddy Tennant
a20ba74978
test: add SSRF guard coverage for URL credential bypass vectors ( #50523 )
...
* security: add SSRF guard tests for URL credential bypass vectors
* test(security): strengthen SSRF redirect guard coverage
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-20 12:45:06 -07:00
Gustavo Madeira Santana
3da66718f4
Web: derive search provider metadata from plugin contracts ( #50935 )
...
Merged via squash.
Prepared head SHA: e1c7d72833
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-20 12:41:04 -07:00
Peter Steinberger
acf32287b4
test: trim more extension startup from unit tests
2026-03-20 19:28:32 +00:00
Jaaneek
916f496b51
Add Grok 4.20 reasoning and non-reasoning to xAI model catalog ( #50772 )
...
Merged via squash.
Prepared head SHA: 095e645ea5
Co-authored-by: Jaaneek <25470423+Jaaneek@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-20 15:28:30 -04:00
Peter Steinberger
f6b3245a7b
fix: pass full sdk gate
2026-03-20 19:24:10 +00:00
Peter Steinberger
62ddc9d9e0
refactor: consolidate plugin sdk surface
2026-03-20 19:24:10 +00:00
Vincent Koc
46854a84a4
test(plugin-sdk): cover legacy root diagnostic listeners
2026-03-20 12:23:02 -07:00
Peter Steinberger
7b00a0620a
test: stabilize gateway alias coverage
2026-03-20 19:17:44 +00:00
Peter Steinberger
39053bddd7
test: decouple zalo outbound payload contract from channel runtime
2026-03-20 19:02:07 +00:00
Peter Steinberger
a7401366ef
test: trim more channel-heavy startup in unit tests
2026-03-20 18:50:52 +00:00
Peter Steinberger
b26edfe1ff
test: trim plugin-heavy unit test imports
2026-03-20 18:35:39 +00:00
Tak Hoffman
16e055c083
restore extension-api backward compatibility with migration warning
2026-03-20 13:27:30 -05:00
Vincent Koc
c64893a9c2
fix(config): use static channel metadata in docs baseline ( #51161 )
2026-03-20 10:52:40 -07:00
Vincent Koc
a2e1991ed3
refactor(plugin-sdk): route bundled runtime barrels through public subpaths
2026-03-20 10:38:55 -07:00
Vincent Koc
fb3550ef5e
test(sessions): stabilize pruning integration setup
2026-03-20 10:38:55 -07:00
Vincent Koc
a39c440d39
fix(config): share json compatibility parsing
2026-03-20 10:17:53 -07:00
Vincent Koc
93fbe26adb
fix(config): tighten json and json5 parsing paths ( #51153 )
2026-03-20 10:10:57 -07:00
Vincent Koc
87eeab7034
docs: add plugin SDK migration guide, link deprecation warning to docs
2026-03-20 10:05:06 -07:00
Peter Steinberger
fcabecc9a4
fix: remove duplicate plugin sdk exports
2026-03-20 16:52:10 +00:00
Peter Steinberger
18fa2992f9
fix: restore plugin sdk runtime barrels
2026-03-20 16:46:34 +00:00
Peter Steinberger
cb89325cd8
fix: restore latest main gate
2026-03-20 16:46:34 +00:00
Vincent Koc
aa78a0c00e
refactor(plugin-sdk): formalize runtime contract barrels
2026-03-20 09:30:34 -07:00
Vincent Koc
9b6f286ac2
refactor(channels): share route format and binding helpers
2026-03-20 09:30:34 -07:00
Vincent Koc
faa9faa767
refactor(web-search): share provider clients and config helpers
2026-03-20 09:30:34 -07:00
Vincent Koc
d3ffa1e4e7
refactor(errors): share api error payload parsing
2026-03-20 09:30:33 -07:00
Vincent Koc
dbc9d3dd70
fix(plugin-sdk): restore root diagnostic compat
2026-03-20 09:27:37 -07:00
Peter Steinberger
50ce9ac1c6
refactor: privatize bundled sdk facades
2026-03-20 15:56:14 +00:00
Peter Steinberger
f6948ce405
refactor: shrink sdk helper surfaces
2026-03-20 15:43:14 +00:00
Peter Steinberger
ba1bb8505f
refactor: install optional channels for directory
2026-03-20 15:37:56 +00:00
John Scianna
5607da90d5
feat: pass modelId to context engine assemble() ( #47437 )
...
Merged via squash.
Prepared head SHA: d708ddb222
Co-authored-by: jscianna <9017016+jscianna@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 08:05:02 -07:00
Thirumalesh
c6968c39d6
feat(compaction): truncate session JSONL after compaction to prevent unbounded growth ( #41021 )
...
Merged via squash.
Prepared head SHA: fa50b63580
Co-authored-by: thirumaleshp <85149081+thirumaleshp@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-03-20 07:15:09 -07:00
caesargattuso
57f1cf66ad
fix(gateway): skip seq-gap broadcast for stale post-lifecycle events ( #43751 )
...
* fix: stop stale gateway seq-gap errors (#43751 ) (thanks @caesargattuso)
* fix: keep agent.request run ids session-scoped
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-20 14:56:54 +05:30
Vincent Koc
0fae764f10
test(plugins): use sync jiti regression path
2026-03-20 01:12:05 -07:00
Vincent Koc
95f890a8b2
test(plugins): relax jiti error string assertions
2026-03-20 01:07:29 -07:00
Vincent Koc
f0a0a6a5b4
test(plugins): isolate git path alias regression
2026-03-20 00:57:25 -07:00
Vincent Koc
68a274c7b3
fix(ci): isolate loader git-path regression env roots
2026-03-20 00:43:03 -07:00
Vincent Koc
d25f6f1833
fix(ci): restore full loader regression coverage
2026-03-20 00:38:11 -07:00
Vincent Koc
f1e012e0fc
fix(telegram): serialize thread binding persists
2026-03-20 00:30:11 -07:00
Vincent Koc
9f8af3604d
fix(ci): split slow plugin loader regression test
2026-03-20 00:28:04 -07:00
Vincent Koc
faa8e27291
fix(ci): share compat matrix and restore skill python gating
2026-03-20 00:27:50 -07:00
Vincent Koc
dfc157e1a2
test(plugins): trim loader regression harness churn
2026-03-20 00:06:12 -07:00
Vincent Koc
3a72d2d6de
fix(config): split config doc baseline coverage
2026-03-20 00:06:12 -07:00
Vincent Koc
e56dde815e
fix(web-search): split runtime provider resolution
2026-03-20 00:06:12 -07:00
Vincent Koc
397b0d85f5
fix(tui): split assistant error formatting seam
2026-03-20 00:06:12 -07:00
Vincent Koc
a562fb5550
refactor(web-search): share scoped provider config plumbing
2026-03-19 23:52:53 -07:00
Vincent Koc
96f21c37b4
fix(tools): persist remaining doctor compatibility aliases
2026-03-19 23:42:53 -07:00
Vincent Koc
6c7526f8a0
fix(web-search): share unsupported filter handling
2026-03-19 23:41:02 -07:00
Vincent Koc
9af42c6590
fix(config): persist doctor compatibility migrations
2026-03-19 23:28:11 -07:00
Shakker
5036ed2699
fix(secrets): cover tavily in runtime coverage tests
2026-03-20 06:13:27 +00:00
Ayaan Zaidi
2afd65741c
fix: preserve talk provider and speaking state
2026-03-20 11:08:21 +05:30
Ayaan Zaidi
47e412bd0b
fix(review): preserve talk directive overrides
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
4a0341ed03
fix(review): address talk cleanup feedback
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
4ac355babb
feat(gateway): add talk speak rpc
2026-03-20 11:01:24 +05:30
Ayaan Zaidi
84ee6fbb76
feat(tts): add in-memory speech synthesis
2026-03-20 11:01:24 +05:30
Lakshya Agarwal
b36e456b09
feat: add Tavily as a bundled web search plugin with search and extract tools ( #49200 )
...
Merged via squash.
Prepared head SHA: ece9226e88
Co-authored-by: lakshyaag-tavily <266572148+lakshyaag-tavily@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-20 01:06:26 -04:00
Shakker
03c86b3dee
fix(secrets): mock bundled web search providers in runtime tests
2026-03-20 03:48:13 +00:00
Shakker
218f8d74b6
fix(secrets): use bundled web search fast path during reload
2026-03-20 03:28:08 +00:00
Shakker
2d24f35016
fix(plugins): add bundled web search provider metadata
2026-03-20 03:28:08 +00:00
Gustavo Madeira Santana
f62be0ddcf
Matrix: guard private-network homeserver access
2026-03-19 23:24:50 -04:00
Gustavo Madeira Santana
ab97cc3f11
Matrix: add allowBots bot-to-bot policy
2026-03-19 23:24:50 -04:00
Josh Avant
de9f2dc227
Gateway: harden OpenResponses file-context escaping ( #50782 )
2026-03-19 22:02:13 -05:00
Jinhao Dong
4f00b3b534
feat(xiaomi): add MiMo V2 Pro and MiMo V2 Omni models, switch to OpenAI completions API ( #49214 )
...
Merged via squash.
Prepared head SHA: 6b672f36cf
Co-authored-by: DJjjjhao <50042705+DJjjjhao@users.noreply.github.com>
Co-authored-by: grp06 <1573959+grp06@users.noreply.github.com>
Reviewed-by: @grp06
2026-03-19 19:26:47 -07:00
Harold Hunt
65594f972c
Gateway: unify plugin interactive callback state ( #50722 )
...
Merged via squash.
Prepared head SHA: 7a2740b18a
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 22:09:38 -04:00
Shakker
a19f058145
fix(test): mock zalouser runtime in outbound payload contract
2026-03-20 01:45:20 +00:00
Shakker
55e12bd236
fix(plugins): stabilize bundle MCP path assertions
2026-03-20 01:11:58 +00:00
Shakker
c95d1c101b
fix(cron): avoid async context token warmup in isolated runs
2026-03-20 01:11:58 +00:00
joshavant
6309b1da6c
Gateway: preserve interactive pairing visibility on supersede
2026-03-19 19:57:45 -05:00
Vincent Koc
d518260bb8
fix(status): slim json startup path
2026-03-19 16:55:13 -07:00
Harold Hunt
41628770f5
Tests: trim command secret gateway imports ( #50663 )
...
Merged via squash.
Prepared head SHA: 7f64fd3ee1
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 19:53:02 -04:00
Vincent Koc
0f69b5c11a
fix(status): keep startup paths free of plugin warmup
2026-03-19 16:26:58 -07:00
Josh Avant
8e132aed6e
Hardening: refresh stale device pairing requests and pending metadata ( #50695 )
...
* Docs: clarify device pairing supersede behavior
* Device pairing: supersede pending requests on auth changes
2026-03-19 18:26:06 -05:00
Vincent Koc
9486f6e379
fix(build): suppress singleton smoke deprecation noise
2026-03-19 16:07:53 -07:00
Vincent Koc
f3971571fe
fix(plugins): fail strict bootstrap on plugin load errors
2026-03-19 16:07:53 -07:00
Vincent Koc
009f494cd9
fix(plugin-sdk): stop library import warmup side effects
2026-03-19 16:07:53 -07:00
Tak Hoffman
192151610f
fix(status): skip plugin compatibility scan on empty json path
2026-03-19 18:06:03 -05:00
Vincent Koc
d80b83e8e3
fix(plugins): scope sdk aliases to loaded module paths
2026-03-19 15:25:54 -07:00
Josh Lehman
35bc00c55b
test: reduce low-memory Vitest pressure ( #50652 )
...
* test: reduce low-memory Vitest pressure
Reuse the bundled config baseline inside doc-baseline tests, keep that hotspot out of the shared unit-fast lane, and make OPENCLAW_TEST_PROFILE=low default to process forks instead of vmForks.
* test: keep low-profile vmForks in CI
Scope the low-profile forks fallback to local runs so the existing CI contracts lane keeps its current pool behavior.
2026-03-19 15:02:48 -07:00
Vincent Koc
5841e3b493
fix(ci): split redact snapshot schema coverage
2026-03-19 14:49:01 -07:00
Vincent Koc
aeb2adf240
fix(ci): split redact snapshot restore coverage
2026-03-19 14:49:01 -07:00
Vincent Koc
38807fff20
fix(ci): split plugin sdk bundle coverage
2026-03-19 14:49:01 -07:00
Vincent Koc
ec2278192d
fix(ci): reduce test runtime retention hotspots
2026-03-19 14:49:01 -07:00
Vincent Koc
d03c110a0a
fix(ci): split secrets runtime integration coverage
2026-03-19 14:49:01 -07:00
Vincent Koc
3c806a9692
fix(ci): stabilize bundle hooks and mcp path seams
2026-03-19 14:26:52 -07:00
Vincent Koc
247a19a694
fix(hooks): bypass stale plugin bundle caches
2026-03-19 14:26:52 -07:00
Vincent Koc
83a267e2f3
fix(ci): reset deep test runtime state
2026-03-19 14:23:32 -07:00
Josh Lehman
ae02f40144
fix: load matrix legacy helper through native ESM when possible ( #50623 )
...
* fix(matrix): load legacy helper natively when possible
* fix(matrix): narrow jiti fallback to source helpers
* fix(matrix): fall back to jiti for source-style helper wrappers
2026-03-19 14:21:42 -07:00
Josh Avant
1878272f67
CLI: prune inactive gateway auth credentials on mode set ( #50639 )
2026-03-19 16:05:43 -05:00
Vincent Koc
b7c39aa4d4
fix(ci): isolate config doc baseline heap pressure
2026-03-19 13:56:40 -07:00
Vincent Koc
46ccbacbd9
refactor(scripts): move container setup entrypoints
2026-03-19 13:40:26 -07:00
Vincent Koc
3b79494cbf
fix(runtime): lazy-load setup shims and align contracts
2026-03-19 13:33:32 -07:00
Vincent Koc
0aa4950d21
fix(core): restore session reset defaults and type seams
2026-03-19 13:33:32 -07:00
Vincent Koc
003ca0123d
test(ci): trim embedding harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
36df0095c4
test(ci): trim memory dedupe harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
0fd3632d68
test(ci): trim memory atomic harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
22528af34d
test(ci): trim gateway plugin harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
f60017d725
test(ci): trim memory cli harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
7a596b2305
test(ci): trim threading harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
60253111a3
test(ci): trim context isolation harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
962a8fea90
test(ci): trim thread lane harness churn
2026-03-19 12:22:41 -07:00
Vincent Koc
14e84cf0b3
test(ci): trim runtime test harness churn
2026-03-19 12:22:41 -07:00
Tak Hoffman
66894db1b6
test: guard pi package graph alignment
2026-03-19 13:50:26 -05:00
Vincent Koc
6b9ebffebb
test(ci): trim command secret gateway harness churn
2026-03-19 11:08:33 -07:00
Vincent Koc
feb9a3b5b2
fix(ci): harden test gating under load
2026-03-19 11:08:33 -07:00
Vincent Koc
0a8885d6c1
fix(ci): restore hook and guardrail tests
2026-03-19 11:08:32 -07:00
Vincent Koc
d9e9a9e819
fix(pi): align package graph and declare compaction summaries
2026-03-19 11:02:18 -07:00
fuller-stack-dev
36f394c299
fix(gateway): increase WS handshake timeout from 3s to 10s ( #49262 )
...
* fix(gateway): increase WS handshake timeout from 3s to 10s
The 3-second default is too aggressive when the event loop is under load
(concurrent sessions, compaction, agent turns), causing spurious
'gateway closed (1000)' errors on CLI commands like `openclaw cron list`.
Changes:
- Increase DEFAULT_HANDSHAKE_TIMEOUT_MS from 3_000 to 10_000
- Add OPENCLAW_HANDSHAKE_TIMEOUT_MS env var for user override (no VITEST gate)
- Keep OPENCLAW_TEST_HANDSHAKE_TIMEOUT_MS as fallback for existing tests
Fixes #46892
* fix: restore VITEST guard on test env var, use || for empty-string fallback, fix formatting
* fix: cover gateway handshake timeout env override (#49262 ) (thanks @fuller-stack-dev)
---------
Co-authored-by: Wilfred <wilfred@Wilfreds-Mac-mini.local>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-19 22:46:40 +05:30
Harold Hunt
401ffb59f5
CLI: support versioned plugin updates ( #49998 )
...
Merged via squash.
Prepared head SHA: 545ea60fa2
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
Reviewed-by: @huntharo
2026-03-19 12:51:10 -04:00
Vincent Koc
639f78d257
style(format): restore import order drift
2026-03-19 09:38:42 -07:00
Vincent Koc
dcbcecfb85
fix(ci): resolve Claude marketplace shortcuts from OS home
2026-03-19 09:38:42 -07:00
Ayaan Zaidi
91104ac740
fix(onboard): respect services.ai custom provider compatibility
2026-03-19 22:07:19 +05:30
Ayaan Zaidi
5b1836d700
fix(onboard): raise azure probe output floor
2026-03-19 21:53:27 +05:30
Ayaan Zaidi
7a57082466
fix(provider): onboard azure custom endpoints via responses
2026-03-19 21:53:27 +05:30
Vincent Koc
9d772d6eab
fix(ci): normalize bundle mcp paths and skip explicit channel scans
2026-03-19 09:16:45 -07:00
Gustavo Madeira Santana
ff6541f69d
Matrix: fix Jiti runtime API boundary
2026-03-19 11:40:44 -04:00
Gustavo Madeira Santana
12ad809e79
Matrix: fix runtime encryption loading
2026-03-19 11:08:17 -04:00
Vincent Koc
44cd4fb55f
fix(ci): repair main type and boundary regressions
2026-03-19 08:00:33 -07:00
Liu Ricardo
8c01347989
test(contracts): cover matrix session binding adapters ( #50369 )
...
Merged via squash.
Prepared head SHA: 25412dbc2c
Co-authored-by: ChroniCat <220139611+ChroniCat@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-03-19 10:26:37 -04:00
Vincent Koc
1c1a3b6a75
fix(discord): break plugin-sdk account helper cycle
2026-03-19 06:30:59 -07:00
Gustavo Madeira Santana
dd10f290e8
Matrix: wire thread binding command support
2026-03-19 09:24:31 -04:00
Harold Hunt
5508374669
fix(plugins): share split-load singleton state (openclaw#50418) thanks @huntharo
...
Co-authored-by: huntharo <5617868+huntharo@users.noreply.github.com>
2026-03-19 09:10:24 -04:00
Tyler Yust
20728e1035
fix: stop newline block streaming from sending per paragraph
2026-03-19 05:40:12 -07:00
Tyler Yust
47b02435c1
fix: honor BlueBubbles chunk mode and envelope timezone
2026-03-19 05:40:12 -07:00
Gustavo Madeira Santana
16129272dc
Tests: update Matrix agent bind fixtures
2026-03-19 08:31:38 -04:00
Gustavo Madeira Santana
f8eb23de1c
CLI: fix check failures
2026-03-19 08:29:57 -04:00
Gustavo Madeira Santana
34ee75b174
Matrix: restore doctor migration previews
2026-03-19 08:09:52 -04:00
Gustavo Madeira Santana
4443cc771a
Matrix: wire startup migration into doctor and gateway
2026-03-19 08:03:57 -04:00
Gustavo Madeira Santana
f69450b170
Matrix: fix typecheck and boundary drift
2026-03-19 08:03:56 -04:00
Peter Steinberger
f3097b4c09
refactor: install optional channels for remove
2026-03-19 07:20:55 +00:00
Shaun Tsai
bcc725ffe2
fix(agents): strip prompt cache for non-OpenAI responses endpoints ( #49877 ) thanks @ShaunTsai
...
Fixes #48155
Co-authored-by: Shaun Tsai <13811075+ShaunTsai@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
2026-03-19 15:12:29 +08:00
Gustavo Madeira Santana
94693f7ff0
Matrix: rebuild plugin migration branch
2026-03-19 01:58:29 -04:00
Gustavo Madeira Santana
513b4869d8
Discord: stabilize provider registry coverage
2026-03-19 01:53:55 -04:00
Ayaan Zaidi
1d3e596021
fix(pairing): include shared auth in setup codes
2026-03-19 11:20:31 +05:30
Gustavo Madeira Santana
a2fa799a5c
Tests: stabilize poll fallback coverage
2026-03-19 01:15:03 -04:00
Gustavo Madeira Santana
03f18ec043
Outbound: remove channel-specific message action fallbacks
2026-03-19 01:08:23 -04:00
Gustavo Madeira Santana
eaee01042b
Plugin SDK: move generic message tool schemas out of core
2026-03-19 01:08:23 -04:00
Gustavo Madeira Santana
b48194a07e
Plugins: move message tool schemas into channel plugins
2026-03-19 01:08:23 -04:00
Gustavo Madeira Santana
8467fb6601
Outbound: move target display fallbacks behind plugins
2026-03-19 01:08:22 -04:00
Ayaan Zaidi
d978ace90b
fix: isolate CLI startup imports ( #50212 )
...
* fix: isolate CLI startup imports
* fix: clarify CLI preflight behavior
* fix: tighten main-module detection
* fix: isolate CLI startup imports (#50212 )
2026-03-19 10:34:29 +05:30
Tak Hoffman
53a34c39f6
Fix windows ACL os mock typing
2026-03-18 23:49:53 -05:00
Tak Hoffman
74b9ad010a
test: preserve node os exports in windows acl mock
2026-03-18 23:38:25 -05:00
Josh Avant
a2a9a553e1
Stabilize plugin loader and Docker extension smoke ( #50058 )
...
* Plugins: stabilize Area 6 loader and Docker smoke
* Docker: fail fast on extension npm install errors
* Tests: stabilize loader non-native Jiti boundary CI timeout
* Tests: stabilize plugin loader Jiti source-runtime coverage
* Docker: keep extension deps on lockfile graph
* Tests: cover tsx-cache renamed package cwd fallback
* Tests: stabilize plugin-sdk export subpath assertions
* Plugins: align tsx-cache alias fallback with subpath fallback
* Tests: normalize guardrail path checks for Windows
* Plugins: restrict plugin-sdk cwd fallback to trusted roots
* Tests: exempt outbound-session from extension import guard
* Tests: tighten guardrails and cli-entry trust coverage
* Tests: guard optional loader fixture exports
* Tests: make loader fixture package exports null-safe
* Tests: make loader fixture package exports null-safe
* Tests: make loader fixture package exports null-safe
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-18 23:35:32 -05:00
Tak Hoffman
3abffe0967
fix: stabilize windows temp and path handling
2026-03-18 23:29:14 -05:00
Gustavo Madeira Santana
afa95fade0
Tests: align fixtures with current gateway and model types
2026-03-19 00:25:24 -04:00
Gustavo Madeira Santana
83d284610c
Diffs: route plugin context through artifacts
2026-03-19 00:24:00 -04:00
Tak Hoffman
f6c57edd5c
Tests: tighten channel import guardrails
2026-03-18 23:08:02 -05:00
Tak Hoffman
5b7b5529f1
Plugins: remove shared extension boundary debt
2026-03-18 22:58:40 -05:00
Tak Hoffman
126839380c
Tests: fix current check failures
2026-03-18 22:58:40 -05:00
Peter Steinberger
25015161fe
refactor: install optional channel capabilities on demand
2026-03-19 03:39:15 +00:00
Peter Steinberger
b7ca56f662
refactor: install heavy plugins on demand
2026-03-19 03:37:30 +00:00
Peter Steinberger
83c5bc946d
fix: restore full gate stability
2026-03-19 03:36:03 +00:00
lixuankai
c86de678f3
feat(android): support android node sms.search ( #48299 )
...
* feat(android): support android node sms.search
* feat(android): support android node sms.search
* fix(android): split sms search permissions
* fix: document android sms.search landing (#48299 ) (thanks @lixuankai)
---------
Co-authored-by: lixuankai <lixuankai@oppo.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-19 08:52:15 +05:30
Peter Steinberger
58cf9b865f
refactor: route extension seams through public apis
2026-03-19 03:20:10 +00:00
Peter Steinberger
30a94dfd3b
refactor: untangle whatsapp runtime boundary
2026-03-19 03:13:48 +00:00
Peter Steinberger
510f4276b5
refactor: tighten sdk reply pipeline contract
2026-03-19 03:13:15 +00:00
clay-datacurve
7b61ca1b06
Session management improvements and dashboard API ( #50101 )
...
* fix: make cleanup "keep" persist subagent sessions indefinitely
* feat: expose subagent session metadata in sessions list
* fix: include status and timing in sessions_list tool
* fix: hide injected timestamp prefixes in chat ui
* feat: push session list updates over websocket
* feat: expose child subagent sessions in subagents list
* feat: add admin http endpoint to kill sessions
* Emit session.message websocket events for transcript updates
* Estimate session costs in sessions list
* Add direct session history HTTP and SSE endpoints
* Harden dashboard session events and history APIs
* Add session lifecycle gateway methods
* Add dashboard session API improvements
* Add dashboard session model and parent linkage support
* fix: tighten dashboard session API metadata
* Fix dashboard session cost metadata
* Persist accumulated session cost
* fix: stop followup queue drain cfg crash
* Fix dashboard session create and model metadata
* fix: stop guessing session model costs
* Gateway: cache OpenRouter pricing for configured models
* Gateway: add timeout session status
* Fix subagent spawn test config loading
* Gateway: preserve operator scopes without device identity
* Emit user message transcript events and deduplicate plugin warnings
* feat: emit sessions.changed lifecycle event on subagent spawn
Adds a session-lifecycle-events module (similar to transcript-events)
that emits create events when subagents are spawned. The gateway
server.impl.ts listens for these events and broadcasts sessions.changed
with reason=create to SSE subscribers, so dashboards can pick up new
subagent sessions without polling.
* Gateway: allow persistent dashboard orchestrator sessions
* fix: preserve operator scopes for token-authenticated backend clients
Backend clients (like agent-dashboard) that authenticate with a valid gateway
token but don't present a device identity were getting their scopes stripped.
The scope-clearing logic ran before checking the device identity decision,
so even when evaluateMissingDeviceIdentity returned 'allow' (because
roleCanSkipDeviceIdentity passed for token-authed operators), scopes were
already cleared.
Fix: also check decision.kind before clearing scopes, so token-authenticated
operators keep their requested scopes.
* Gateway: allow operator-token session kills
* Fix stale active subagent status after follow-up runs
* Fix dashboard image attachments in sessions send
* Fix completed session follow-up status updates
* feat: stream session tool events to operator UIs
* Add sessions.steer gateway coverage
* Persist subagent timing in session store
* Fix subagent session transcript event keys
* Fix active subagent session status in gateway
* bump session label max to 512
* Fix gateway send session reactivation
* fix: publish terminal session lifecycle state
* feat: change default session reset to effectively never
- Change DEFAULT_RESET_MODE from "daily" to "idle"
- Change DEFAULT_IDLE_MINUTES from 60 to 0 (0 = disabled/never)
- Allow idleMinutes=0 through normalization (don't clamp to 1)
- Treat idleMinutes=0 as "no idle expiry" in evaluateSessionFreshness
- Default behavior: mode "idle" + idleMinutes 0 = sessions never auto-reset
- Update test assertion for new default mode
* fix: prep session management followups (#50101 ) (thanks @clay-datacurve)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-03-19 12:12:30 +09:00
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
Tyler Yust
ffc1d5459c
fix: resolve failing tests on main (warning filter + slack mocks)
2026-03-18 19:31:12 -07:00
Peter Steinberger
7b151afeeb
test: align plugin-sdk subpath guardrail with current exports ( #49249 )
2026-03-18 18:02:44 -07:00
Peter Steinberger
371b3d22f5
fix: export imessage-core plugin-sdk subpath ( #49249 )
2026-03-18 18:02:44 -07:00
Peter Steinberger
42b9212eb2
fix: preserve interactive Ollama model selection ( #49249 ) (thanks @BruceMacD)
2026-03-18 18:02:44 -07:00
Bruce MacDonald
f8c70bf1f1
fix(ollama): don't auto-pull glm-4.7-flash during Local mode onboarding
2026-03-18 18:02:44 -07:00
Peter Steinberger
002cc07322
refactor: tighten plugin sdk channel surfaces
2026-03-19 00:46:36 +00:00
Peter Steinberger
4cc0bb07c1
refactor: unify plugin sdk pairing flows
2026-03-19 00:31:03 +00:00
Peter Steinberger
c70837f07d
refactor: converge plugin sdk channel helpers
2026-03-19 00:25:19 +00:00
Peter Steinberger
62b7b350c9
refactor: move bundled channel deps to plugin packages
2026-03-19 00:24:44 +00:00
Vincent Koc
9a9db87952
fix(release): isolate config doc surfaces and sdk exports
2026-03-18 17:14:15 -07:00
Peter Steinberger
d7018aaf19
refactor: move bundled extension deps to plugin packages
2026-03-19 00:04:50 +00:00
Peter Steinberger
07d9f725b6
refactor: unify plugin sdk primitives
2026-03-18 23:58:56 +00:00
Peter Steinberger
46f49eb6eb
refactor: shrink plugin sdk public surface
2026-03-18 23:31:08 +00:00
Peter Steinberger
6e044ace28
fix: keep bundled runtime deps out of release pack
2026-03-18 23:18:36 +00:00
Vincent Koc
a996f60f11
fix(release): isolate config docs child env
2026-03-18 16:05:40 -07:00
Vincent Koc
757c2cc2de
fix(release): isolate bundled config docs loading
2026-03-18 16:01:43 -07:00
Josh Avant
2661de384f
Matrix: make onboarding status runtime-safe ( #49995 )
...
* Matrix: make onboarding status runtime-safe
* Matrix tests: mock reply dispatch in BodyForAgent coverage
* changelog
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
---------
Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-03-18 17:33:42 -05:00
Vincent Koc
91d37ccfc3
fix(auth): lazy-load provider oauth helpers
2026-03-18 13:40:28 -07:00
Vincent Koc
6ebcd853be
fix(plugin-sdk): isolate provider entry surfaces
2026-03-18 13:20:46 -07:00
Josh Avant
e6911f0448
Tests: restore deterministic plugins CLI coverage ( #49955 )
...
* Tests: restore deterministic plugins CLI coverage
* CLI: preserve plugins exit control-flow narrowing
* Tests: fix plugins CLI mock typing for tsgo
* Tests: fix provider usage mock typing in key normalization
2026-03-18 14:05:04 -05:00
Vincent Koc
ef1346e503
Plugin SDK: route reply payload through public subpath
2026-03-18 12:01:15 -07:00
Vincent Koc
ecfa79ee4c
Tests: fix provider auth plugin mock spread
2026-03-18 12:01:05 -07:00
darkamenosa
4b5487ee85
LINE: avoid runtime lookup during onboarding ( #49960 )
2026-03-19 01:27:21 +07:00
Peter Steinberger
a0d3dc94d0
perf: reduce unit test hot path overhead
2026-03-18 18:19:40 +00:00
Vincent Koc
fa52d122c4
Plugin SDK: route provider metadata through public models subpath
2026-03-18 11:18:04 -07:00
Peter Steinberger
62edfdffbd
refactor: deduplicate reply payload handling
2026-03-18 18:14:57 +00:00
Vincent Koc
152d179302
Plugin SDK: add public WhatsApp runtime subpaths
2026-03-18 11:13:19 -07:00
Vincent Koc
8240fd900a
Plugin SDK: route core channel runtimes through public subpaths
2026-03-18 11:00:58 -07:00
Vincent Koc
7d08070dd7
Plugins: generate bundled auth env metadata
2026-03-18 10:53:48 -07:00
Peter Steinberger
8d73bc77fa
refactor: deduplicate reply payload helpers
2026-03-18 17:30:25 +00:00
Vincent Koc
891e2a3da8
Build: isolate optional bundled plugin-sdk clusters
2026-03-18 09:54:22 -07:00
Vincent Koc
b4f16bad32
Plugin SDK: export windows spawn and temp path
2026-03-18 09:46:24 -07:00
Vincent Koc
a02bfd30c5
Plugin SDK: use public utility subpaths
2026-03-18 09:43:46 -07:00
Vincent Koc
f187e8bac4
Plugin SDK: use public slack subpath
2026-03-18 09:40:57 -07:00
Vincent Koc
e64cc1983f
Plugin SDK: use public discord subpath
2026-03-18 09:39:12 -07:00
Vincent Koc
b3ca855283
Plugin SDK: use public whatsapp subpath
2026-03-18 09:37:54 -07:00
Peter Steinberger
27f655ed11
refactor: deduplicate channel runtime helpers
2026-03-18 16:37:27 +00:00
Vincent Koc
3e02635df3
Plugin SDK: use public telegram subpath
2026-03-18 09:33:21 -07:00
Vincent Koc
382640e674
Channels: trim optional bundled plugin defaults
2026-03-18 09:30:54 -07:00
Peter Steinberger
3d8afb96bd
fix: use transpiled jiti for source plugin shims
2026-03-18 16:24:45 +00:00
liyuan97
b64f4e313d
MiniMax: add M2.7 models and update default to M2.7 ( #49691 )
...
* MiniMax: add M2.7 models and update default to M2.7
- Add MiniMax-M2.7 and MiniMax-M2.7-highspeed to provider catalog and model definitions
- Update default model from MiniMax-M2.5 to MiniMax-M2.7 across onboard, portal, and provider configs
- Update isModernMiniMaxModel to recognize M2.7 prefix
- Update all test fixtures to reflect M2.7 as default
Made-with: Cursor
* MiniMax: add extension test for model definitions
* update 2.7
* feat: add MiniMax M2.7 models and update default (#49691 ) (thanks @liyuan97)
---------
Co-authored-by: George Zhang <georgezhangtj97@gmail.com>
2026-03-18 09:24:37 -07:00
Peter Steinberger
5fd482d6b0
test: align acp session mode list
2026-03-18 16:14:14 +00:00
Vincent Koc
73539ac787
Core: move web media seam out of plugin sdk
2026-03-18 09:12:23 -07:00
Vincent Koc
cfdc0fdbe1
Plugins: include fal in image-generation contract registry
2026-03-18 08:59:00 -07:00
Vincent Koc
22fc5a5442
Contracts: narrow codex catalog hint return type
2026-03-18 08:54:01 -07:00
Vincent Koc
ebb10c0852
Contracts: fix codex catalog hint assertion
2026-03-18 08:46:58 -07:00
Vincent Koc
6a381e80bc
Contracts: stabilize provider plugin test imports
2026-03-18 08:44:47 -07:00
Peter Steinberger
a0e7a2fcc1
fix: repair rebased contract gate
2026-03-18 15:43:24 +00:00
Peter Steinberger
f6928617b7
test: stabilize gate regressions
2026-03-18 15:36:32 +00:00
Peter Steinberger
7943e83c6c
fix: restore rebased full gate
2026-03-18 15:36:18 +00:00
Peter Steinberger
c0c3c4824d
fix: checkpoint gate fixes before rebase
2026-03-18 15:36:18 +00:00
Peter Steinberger
e9b19ca1d1
fix: restore full gate after web-search rebase
2026-03-18 15:35:27 +00:00
Peter Steinberger
861fcb1575
fix: restore rebased full gate
2026-03-18 15:34:27 +00:00
Peter Steinberger
b5d2123156
fix: stabilize rebased full gate
2026-03-18 15:34:27 +00:00
Peter Steinberger
0cddb5fb7c
fix: restore full gate
2026-03-18 15:34:27 +00:00
Tak Hoffman
5d41fd4497
test: extend plugin contract setup timeouts
2026-03-18 09:42:52 -05:00
Tak Hoffman
13f396b395
Plugins: sync contract registry image providers
2026-03-18 08:27:48 -05:00
Andrew Demczuk
089a43f5e8
fix(security): block build-tool and glibc env injection vectors in host exec sandbox ( #49702 )
...
Add GLIBC_TUNABLES, MAVEN_OPTS, SBT_OPTS, GRADLE_OPTS, ANT_OPTS,
DOTNET_ADDITIONAL_DEPS to blockedKeys and GRADLE_USER_HOME to
blockedOverrideKeys in the host exec security policy.
Closes #22681
2026-03-18 13:11:01 +01:00
Vincent Koc
b9e08a6839
Config: align model compat thinking format types
2026-03-18 02:45:15 -07:00
Vincent Koc
f96ee99bbc
Plugin SDK: harden provider auth seams
2026-03-18 02:29:25 -07:00
Ayaan Zaidi
93a31b69de
fix(config): add missing qwen-chat-template to thinking format schema
2026-03-18 14:54:38 +05:30
Vincent Koc
d8a1ad0f0d
Plugin SDK: split provider auth login seam
2026-03-18 02:04:10 -07:00
Vignesh Natarajan
1890089f49
fix: serialize duplicate channel starts ( #49583 ) (thanks @sudie-codes)
2026-03-18 01:57:12 -07:00
Vincent Koc
2f3bc89f4f
Config: align model compat thinking format schema
2026-03-18 01:53:29 -07:00
Vincent Koc
4ac9024de9
Contracts: harden plugin registry loading
2026-03-18 01:46:50 -07:00
Vincent Koc
7ac23ae7c2
Plugins: fix bundled web search compat registry
2026-03-18 01:42:02 -07:00
Vincent Koc
d1ef7d64e9
Contracts: harden provider registry loading
2026-03-18 01:30:05 -07:00
Vincent Koc
25011bdb1e
Plugins: prefer source bundles in git checkouts
2026-03-18 01:08:40 -07:00
Ayaan Zaidi
0567f111ac
test(telegram): stabilize inbound media harness
2026-03-18 13:35:56 +05:30
Vincent Koc
9b6859e5db
Feishu: break plugin-sdk setup cycle
2026-03-18 01:02:16 -07:00
Vincent Koc
2afa556746
Format: sync seam fixes with oxfmt
2026-03-18 01:02:16 -07:00
Vincent Koc
0ae3e70a5c
Plugin SDK: fix contract seam regressions
2026-03-18 00:50:19 -07:00
Vincent Koc
fbd88e2c8f
Main recovery: restore formatter and contract checks ( #49570 )
...
* Extensions: fix oxfmt drift on main
* Plugins: restore runtime barrel exports on main
* Config: restore web search compatibility types
* Telegram: align test harness with reply runtime
* Plugin SDK: fix channel config accessor generics
* CLI: remove redundant search provider casts
* Tests: restore main typecheck coverage
* Lobster: fix test import formatting
* Extensions: route bundled seams through plugin-sdk
* Tests: use extension env helper for xai
* Image generation: fix main oxfmt drift
* Config: restore latest main compatibility checks
* Plugin SDK: align guardrail tests with lint
* Telegram: type native command skill mock
2026-03-18 00:30:01 -07:00
Vincent Koc
e6c6aaa11b
Perf: skip MCP/LSP runtime spawning when no servers are configured
2026-03-18 00:25:53 -07:00
Vincent Koc
80e681a60c
Plugins: integrate LSP tool runtime into Pi embedded runner
2026-03-18 00:23:22 -07:00
Vincent Koc
8193af6d4e
Plugins: add LSP server runtime with stdio JSON-RPC client and agent tool bridge
2026-03-18 00:23:22 -07:00
Vincent Koc
466510b6d8
refactor: replace "seam" terminology across codebase
...
Replace "seam" with clearer terms throughout:
- "surface" for public API/extension boundaries
- "boundary" for plugin/module interfaces
- "interface" for runtime connection points
- "hook" for test injection points
- "palette" for the lobster palette reference
Also delete experiments/acp-pluginification-architecture-plan.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 00:20:15 -07:00
Vincent Koc
6538c87673
Tests: update Claude bundle integration test for agents, output styles, and LSP
2026-03-18 00:12:24 -07:00
Vincent Koc
4ebd3d11aa
Plugins: add LSP server loader and surface in inspect reports
2026-03-18 00:12:24 -07:00
Vincent Koc
50a81c8731
Plugins: merge agent and output-style dirs into Claude bundle skills
2026-03-18 00:12:24 -07:00
Vincent Koc
c99c4b1e27
Plugin SDK: restore read-only directory inspection seam
2026-03-18 00:10:35 -07:00
Vincent Koc
e17d10f7cd
Plugin SDK: restore lobster and voice-call exports
2026-03-18 00:09:22 -07:00
Vincent Koc
21c2ba480a
Image generation: native provider migration and explicit capabilities ( #49551 )
...
* Docs: retire nano-banana skill wrapper
* Doctor: migrate nano-banana to native image generation
* Image generation: align fal aspect ratio behavior
* Image generation: make provider capabilities explicit
2026-03-18 00:04:03 -07:00
Vincent Koc
3d31ba7830
Plugin SDK: guard package subpaths and fix Twitch setup export
...
* fix(plugins): add missing secret-input-schema build entry and Matrix runtime export
buildSecretInputSchema was not included in plugin-sdk-entrypoints.json,
so it was never emitted to dist/plugin-sdk/secret-input-schema.js. This
caused a ReferenceError during onboard when configuring channels that use
secret input schemas (matrix, feishu, mattermost, bluebubbles, nextcloud-talk, zalo).
Additionally, the Matrix extension's hand-written runtime-api barrel was
missing the re-export, unlike other extensions that use `export *` from
their plugin-sdk subpath.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Plugin SDK: guard package subpaths and fix Twitch setup export
* Plugin SDK: fix import guardrail drift
---------
Co-authored-by: hxy91819 <masonxhuang@icloud.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 23:56:49 -07:00
Vincent Koc
bd444435c9
Plugin SDK: clarify ACPX public seam
2026-03-17 23:53:32 -07:00
Vincent Koc
0385553918
Plugin SDK: trim lobster and qwen helper exports
2026-03-17 23:48:19 -07:00
Vincent Koc
98fbbebf6a
Tests: add Claude bundle plugin inspect integration test
2026-03-17 23:34:56 -07:00
Vincent Koc
a5fa75cdb3
Plugins: accept Claude bundle hooks as wired capability in loader
2026-03-17 23:34:56 -07:00
Vincent Koc
d341d68180
Plugin SDK: trim legacy helper exports
2026-03-17 23:32:16 -07:00
Vincent Koc
ad185dd4a8
CLI: make config compatibility advice opt-in
2026-03-17 23:27:23 -07:00
Bob
732e075e92
ACP: reproduce binding restart session reset ( #49435 )
...
* ACP: reproduce restart binding regression
* ACP: resume configured bindings after restart
* ACP: scope restart resume to persistent sessions
---------
Co-authored-by: Onur <2453968+osolmaz@users.noreply.github.com>
2026-03-18 07:24:38 +01:00
Vincent Koc
100d7b0227
Doctor: add bundle plugin capability summary to workspace status
2026-03-17 23:14:40 -07:00
Vincent Koc
b48413e252
Plugins: surface MCP servers and bundle capabilities in inspect reports
2026-03-17 23:14:40 -07:00
Vincent Koc
b9b891b614
Plugins: wire Claude bundle hook resolution (parity with Codex)
2026-03-17 23:14:40 -07:00
Vincent Koc
d1d10007a9
Plugins: guard whatsapp local barrel
2026-03-17 23:11:32 -07:00
Vincent Koc
8af4628a6d
Plugins: guard signal and telegram barrels
2026-03-17 23:09:26 -07:00
Vincent Koc
c81b4a5389
Plugins: guard remaining local barrels
2026-03-17 23:09:26 -07:00
Vincent Koc
9282d5d09e
Plugins: soften hook-only compatibility copy
2026-03-17 23:08:38 -07:00
scoootscooob
08a0219b1a
Google Chat: thin runtime api seam ( #49504 )
...
Merged via squash.
Prepared head SHA: 3369cf2c35
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Reviewed-by: @scoootscooob
2026-03-17 23:02:30 -07:00
Vincent Koc
75f98fe19a
Plugins: guard small extension barrels
2026-03-17 23:01:28 -07:00
Ayaan Zaidi
c245c8b39d
refactor(plugin-sdk): split interactive runtime helpers
2026-03-18 11:30:34 +05:30
Ayaan Zaidi
8c436a470e
perf(test): decouple plugin runtime bootstrap
2026-03-18 11:30:34 +05:30
Vincent Koc
1aab71cf5b
Plugins: guard local extension barrels
2026-03-17 22:59:24 -07:00
Vincent Koc
0a065bc6c2
Plugins: guard channel api barrels
2026-03-17 22:56:28 -07:00
Josh Lehman
7f0f8dd268
feat: expose context-engine compaction delegate helper ( #49061 )
...
* ContextEngine: add runtime compaction delegate helper
* plugin-sdk: expose compaction delegate through compat
* docs: clarify delegated plugin compaction
* docs: use scoped compaction delegate import
2026-03-17 22:54:18 -07:00
Josh Lehman
937f118d8e
Gateway: add docs hint for plugin override trust error ( #49513 )
2026-03-17 22:53:34 -07:00
Tak Hoffman
cd2752346c
refactor move web search sdk helpers into plugin-sdk
2026-03-18 00:27:02 -05:00
Val Alexander
5f89897df1
plugins: dist node_modules symlink + config raw-toggle UI fix ( #49490 )
...
* plugins: symlink node_modules into dist plugin dir for bare-specifier resolution
* UI: fix config raw-toggle button sizing and semantic markup
* Update scripts/stage-bundled-plugin-runtime.mjs
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update ui/src/styles/config.css
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* fix: hoist dist node_modules cleanup before existsSync guard; drop !important from config toggle
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-18 00:20:14 -05:00
Alix-007
2c579b6ac1
fix(models): preserve @YYYYMMDD version suffixes ( #48896 ) thanks @Alix-007
...
Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
Co-authored-by: frankekn <frank.ekn@gmail.com>
2026-03-18 13:20:06 +08:00
Josh Lehman
4ca87fa4b0
fix: restore main build ( #49478 )
...
* Build: restore main build
* Config: align model compat schema
2026-03-17 22:14:56 -07:00
scoootscooob
bfecc58a62
xAI: add web search credential metadata ( #49472 )
...
Merged via squash.
Prepared head SHA: faefa4089d
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Co-authored-by: scoootscooob <167050519+scoootscooob@users.noreply.github.com>
Reviewed-by: @scoootscooob
2026-03-17 22:08:19 -07:00
Val Alexander
5464ad113e
UI: expand-to-canvas, session navigation, plugin SDK fixes ( #49483 )
...
* Plugins: fix signal SDK circular re-exports and reserved commands TDZ
* UI: add expand-to-canvas button and in-app session navigation
* changelog: UI expand/navigate and plugin TDZ/import fixes
2026-03-18 00:07:53 -05:00
Peter Steinberger
05603e4e6c
refactor: deduplicate channel config adapters
2026-03-18 04:51:29 +00:00