Vincent Koc
be3a2e2eb6
fix(plugin-sdk): fall back to src root alias files
2026-03-22 22:26:18 -07:00
Peter Steinberger
39409b6a6d
fix(security): unwrap time dispatch wrappers
2026-03-22 22:25:57 -07:00
Peter Steinberger
af9de86286
perf: trim vitest hot imports and refresh manifests
2026-03-23 05:25:05 +00:00
Peter Steinberger
7fcbf383d8
fix(ci): write dist build stamp after builds
2026-03-22 22:23:25 -07:00
Peter Steinberger
ea579ef858
fix(gateway): preserve async hook ingress provenance
2026-03-22 22:21:49 -07:00
Peter Steinberger
c5a941a506
refactor!: remove moltbot state-dir migration fallback
2026-03-22 22:19:35 -07:00
Peter Steinberger
6b9915a106
refactor!: drop legacy CLAWDBOT env compatibility
2026-03-22 22:13:39 -07:00
oliviareid-svg
5ff60cc39f
fix(build): add stable memory-cli dist entry ( #51759 )
...
Co-authored-by: oliviareid-svg <269669958+oliviareid-svg@users.noreply.github.com>
Co-authored-by: Frank <vibespecs@gmail.com>
2026-03-23 13:11:06 +08:00
Rick_Xu
2fe1ff8ea8
Usage: include reset and deleted session archives ( #43215 )
...
Merged via squash.
Prepared head SHA: 49ed6c2fa3
Co-authored-by: rcrick <23069968+rcrick@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-03-23 13:10:26 +08:00
Peter Steinberger
30ed4342b3
fix(agents): deny local MEDIA paths for MCP results
2026-03-22 22:10:13 -07:00
Vincent Koc
d43e26e399
fix(web-search): mark DuckDuckGo experimental
2026-03-22 22:07:53 -07:00
Peter Steinberger
8791aaae2b
refactor: extract gateway install token helpers
2026-03-22 22:05:56 -07:00
Peter Steinberger
c15282062f
refactor: split durable service env helpers
2026-03-22 22:05:56 -07:00
Vincent Koc
c6ca11e5a5
feat(web-search): add DuckDuckGo bundled plugin ( #52629 )
...
* feat(web-search): add DuckDuckGo bundled plugin
* chore(changelog): restore main changelog
* fix(web-search): harden DuckDuckGo challenge detection
2026-03-22 22:05:33 -07:00
Peter Steinberger
dc6c22b812
fix: narrow exec exit failure kind typing
2026-03-23 04:58:46 +00:00
Kevin ONeill
dd860e76aa
fix: normalize env var keys and isolate tests from real .env
...
- Apply normalizeEnvVarKey({ portable: true }) before security
filtering, matching the established pattern in env-vars.ts.
Rejects non-portable key names (spaces, special chars) that
would produce invalid plist/systemd syntax.
- Isolate existing tests from the developer's real ~/.openclaw/.env
by providing a temp HOME directory, preventing flaky failures
when the test machine has a populated .env file.
2026-03-22 21:55:58 -07:00
Kevin ONeill
77ec7b4adf
fix: include .env file vars in gateway service environment on install
...
When building the gateway install plan, read and parse
~/.openclaw/.env (or $OPENCLAW_STATE_DIR/.env) and merge those
key-value pairs into the service environment at the lowest
priority — below config env vars, auth-profile refs, and the
core service environment (HOME, PATH, OPENCLAW_*).
This ensures that user-defined secrets stored in .env (e.g.
BRAVE_API_KEY, OPENROUTER_API_KEY, DISCORD_BOT_TOKEN) are
embedded in the LaunchAgent plist (macOS), systemd unit (Linux),
and Scheduled Task (Windows) at install time, rather than
relying solely on the gateway process loading them via
dotenv.config() at startup.
Previously, on macOS the LaunchAgent plist never included .env
vars, which meant:
- launchctl print did not show user secrets (hard to debug)
- Child processes spawned before dotenv loaded had no access
- If the same key existed in both .env and the plist, the stale
plist value won via dotenv override:false semantics
Dangerous host env vars (NODE_OPTIONS, LD_PRELOAD, etc.) are
filtered using the same security policy applied to config env
vars.
Fixes #37101
Relates to #22663
2026-03-22 21:55:58 -07:00
Vincent Koc
3afb6a2b95
fix(exec): accept runtime failure kind in formatter
2026-03-22 21:54:02 -07:00
Peter Steinberger
97e4f37171
fix: keep status --json stdout clean ( #52449 ) (thanks @cgdusek)
2026-03-22 21:51:08 -07:00
Charles Dusek
03c4bacbfb
fix(cli): route deferred plugin logs to stderr in status --json
2026-03-22 21:51:08 -07:00
Charles Dusek
0e1da034c2
fix(cli): route plugin logs to stderr during --json output
2026-03-22 21:51:08 -07:00
Peter Steinberger
e001e8f2f8
test: isolate exec foreground failure coverage
2026-03-23 04:47:12 +00:00
Peter Steinberger
8e568142f6
refactor: extract exec outcome and tool result helpers
2026-03-23 04:47:12 +00:00
Vincent Koc
5f746422aa
fix(plugin-sdk): fast-path root diagnostic subscriptions
2026-03-22 21:07:11 -07:00
Vincent Koc
faae3e155d
fix(whatsapp): remove outbound runtime cycle
2026-03-22 21:04:14 -07:00
Vincent Koc
1042b59471
feat(web-search): add bundled Exa plugin ( #52617 )
2026-03-22 20:57:33 -07:00
Vincent Koc
f69062c16e
fix(plugin-sdk): export line runtime subpath
2026-03-22 20:39:16 -07:00
Vincent Koc
8b667cbe44
fix(build): repair stale plugin sdk surfaces
2026-03-22 20:36:28 -07:00
Vincent Koc
1354f37c88
fix(plugins): route keyed queue imports through core ( #52608 )
2026-03-22 20:35:28 -07:00
Vincent Koc
04cd389ef8
fix(ci): repair voice-call typing and provider contracts
2026-03-22 20:17:01 -07:00
Vincent Koc
d949dffc6e
fix(ci): repair tts and matrix refactor fallout
2026-03-22 20:12:01 -07:00
Vincent Koc
59105fd614
fix(ci): restore plugin manifests and boundary tests
2026-03-22 20:01:25 -07:00
Vincent Koc
ac0fd26e16
fix(ci): resync generated baselines and line runtime seam
2026-03-22 19:53:26 -07:00
Vincent Koc
32fdd21c80
fix(acp): preserve hidden thought replay on session load
2026-03-22 19:48:19 -07:00
Vincent Koc
742c005ac8
fix(acp): preserve hidden thought chunks from gateway chat
2026-03-22 19:43:19 -07:00
Vincent Koc
a83b7bca15
refactor(plugin-sdk): route core provider and telegram seams through sdk barrels
2026-03-22 19:43:19 -07:00
Vincent Koc
02f8a86e5c
refactor(kilocode): route shared model constants through core seam
2026-03-22 19:43:19 -07:00
Vincent Koc
3ad652fa9e
fix(build): restore plugin-sdk and line compat after refactor
2026-03-22 19:37:27 -07:00
Vincent Koc
c0933e2fc8
perf(reply): lazy-load session store writes
2026-03-22 19:32:24 -07:00
Peter Steinberger
f8731b3d9d
fix: finish exec tool failure landing ( #52508 ) (thanks @martingarramon)
2026-03-22 19:19:07 -07:00
Martin Garramon
22c75a55b0
fix(exec): return plain-text tool result on failure instead of raw JSON
...
When an exec command fails (e.g. timeout), the tool previously rejected
with an Error, which the tool adapter caught and wrapped in a JSON object
({ status, tool, error }). The model then received this raw JSON as the
tool result and could parrot it verbatim to the user.
Now exec failures resolve with a proper tool result containing the error
as human-readable text in content[], matching the success path structure.
The model sees plain text it can naturally incorporate into its reply.
Also fixes a pre-existing format issue in update-cli.test.ts.
Fixes #52484
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:19:07 -07:00
Peter Steinberger
24f77d7457
fix: finish gateway probe auth landing ( #52513 ) (thanks @CodeForgeNet)
2026-03-22 19:14:44 -07:00
Peter Steinberger
a02499b335
fix: finish gateway probe auth landing ( #52513 ) (thanks @CodeForgeNet)
2026-03-22 19:14:44 -07:00
CodeForgeNet
b2107d3503
fix(status): await resolveGatewayProbeAuthResolution in scan.shared
...
Function is now async after switching to resolveGatewayProbeAuthSafeWithSecretInputs.
Missing await caused TS error: Property 'auth' does not exist on type 'Promise<...>'.
2026-03-22 19:14:44 -07:00
CodeForgeNet
52acc57a61
fix(status): resolve only selected probe-auth branch and fix plain status path
...
Address two Codex P1/P2 issues:
1. (P1) Plain 'openclaw status' and 'openclaw status --json' still went
through the sync resolveGatewayProbeAuthSafe path in
status.gateway-probe.ts, which cannot expand SecretRef objects.
Switched to async resolveGatewayProbeAuthSafeWithSecretInputs.
2. (P2) status-all.ts was eagerly resolving both local and remote probe
auth before deciding which to use. A stale SecretRef in the unused
branch could abort the command. Collapsed to a single resolution
call using the correct mode upfront.
Updated status.scan.test.ts to use mockResolvedValue since
resolveGatewayProbeAuthResolution is now async.
2026-03-22 19:14:44 -07:00
CodeForgeNet
3595ecba45
fix(gateway): pass process.env in status command probe auth to resolve SecretRef
...
Fixes #52360
resolveGatewayProbeAuthSafe was called from status-all.ts without an
env argument, causing the credential resolution chain to fall back to
an empty object instead of process.env. This made env-backed SecretRef
tokens (gateway.auth.token, Telegram botToken, etc.) appear unresolved
in the status command path even when the runtime was healthy.
Added process.env as default fallback in buildGatewayProbeCredentialPolicy
and passed env explicitly from status-all.ts callers.
Related: #33070 , #38973 , #39415 , #46014 , #49730
2026-03-22 19:14:44 -07:00
Vincent Koc
042669d8c8
refactor(plugins): finish provider and whatsapp cleanup
2026-03-22 19:13:25 -07:00
Vincent Koc
2131981230
refactor(plugins): move remaining channel and provider ownership out of src
2026-03-22 19:13:25 -07:00
Vincent Koc
7bfa261c42
perf(reply): lazy-load media path normalization
2026-03-22 19:12:44 -07:00
Peter Steinberger
f04b49ee3e
test: fix provider config typing drift
2026-03-22 19:10:43 -07:00
Peter Steinberger
74cb08bede
fix(plugins): accept media-understanding id hints
2026-03-23 02:08:49 +00:00
Peter Steinberger
9aafff7378
fix: restore main gate after type updates
2026-03-22 19:08:08 -07:00
Peter Steinberger
96d61aa50c
refactor: harden generated-file guards and provider ids
2026-03-22 19:08:08 -07:00
Vincent Koc
2fcd6507ec
perf(reply): narrow queue imports
2026-03-22 19:05:12 -07:00
Vincent Koc
3392558b42
perf(reply): split usage line helpers
2026-03-22 19:00:35 -07:00
Peter Steinberger
562e4a1791
refactor(outbound): split delivery queue storage and recovery
2026-03-23 01:57:56 +00:00
Peter Steinberger
5051a37de4
test: fix googlechat security typing drift
2026-03-22 18:57:44 -07:00
Peter Steinberger
e5be5c1b99
style: format plugin sdk helper updates
2026-03-23 01:56:01 +00:00
Peter Steinberger
5c8ea0a175
refactor: share channel setup status helpers
2026-03-23 01:56:01 +00:00
Peter Steinberger
583bea001c
refactor: share parsed channel allowlist prompts
2026-03-23 01:56:01 +00:00
Peter Steinberger
7d032ed38c
refactor: add provider onboarding preset appliers
2026-03-23 01:56:00 +00:00
Peter Steinberger
956fe72b39
refactor: extract single-provider plugin entry helper
2026-03-23 01:56:00 +00:00
Peter Steinberger
54213b587f
refactor: reuse shared cli runtime test mocks
2026-03-23 01:53:28 +00:00
Peter Steinberger
2e6f2b0f07
test: centralize cli runtime capture helpers
2026-03-23 01:53:28 +00:00
Vincent Koc
a960cba2db
perf(reply): lazy-load context token lookup
2026-03-22 18:52:53 -07:00
Vincent Koc
7d8daa7173
perf(reply): lazy-load usage cost resolution
2026-03-22 18:48:42 -07:00
Peter Steinberger
ee1001d0ae
test: slim outbound test import graphs
2026-03-22 18:47:35 -07:00
Vincent Koc
263d5ea687
perf(reply): lazy-load runner execution and memory
2026-03-22 18:44:17 -07:00
Peter Steinberger
29f3b7f6eb
fix: harden image auth env lookups ( #52552 ) (thanks @vincentkoc)
2026-03-22 18:42:18 -07:00
Vincent Koc
654089320b
fix(image): deprecate legacy skill and clarify auth
2026-03-22 18:42:18 -07:00
Stephen Schoettler
b07312c55b
fix(delivery-queue): increment retryCount on deadline-deferred entries
...
Codex P1: entries deferred by the recovery time budget kept retryCount=0
forever, so they could loop across restarts without ever reaching MAX_RETRIES.
After breaking on deadline, call failDelivery() for all remaining entries
so retryCount is incremented. Entries stay in queue until MAX_RETRIES is
reached and they are pruned normally.
Also updates the maxRecoveryMs test to assert retryCount=1 on deferred entries.
2026-03-22 18:39:24 -07:00
Stephen Schoettler
329e539796
test(delivery-queue): align test assertion with 'next startup' log message
2026-03-22 18:39:24 -07:00
Stephen Schoettler
ca778b3f3c
fix(browser): add ChildProcessWithoutNullStreams cast for @types/node compat
...
The stdio tuple overload resolves differently across @types/node versions
(v20 vs v24/v25). Cast the spawn() result to ChildProcessWithoutNullStreams
to ensure proc.stderr?.on/off type-checks regardless of installed @types/node.
2026-03-22 18:39:24 -07:00
Stephen Schoettler
a05a251be0
fix(delivery-queue): align test assertion and JSDoc with 'next startup' log message
2026-03-22 18:39:24 -07:00
Stephen Schoettler
20f758d4cb
fix(delivery-queue): break immediately on deadline instead of failing all remaining entries
...
P1-C: After now >= deadline, the old code would iterate all remaining queue
entries and call failDelivery() on each — O(n) work that nullified the
maxRecoveryMs wall-clock cap on large queues.
Fix: break out of the recovery loop immediately when the deadline is exceeded.
Remaining entries are picked up on next startup unchanged (retryCount not
incremented). The deadline means 'stop here', not 'fail everything remaining'.
2026-03-22 18:39:24 -07:00
Stephen Schoettler
4e92807f10
fix(delivery-queue): increment retryCount on deferred entries when time budget exceeded
...
When delivery recovery ran out of the 60s time budget, remaining pending
entries were silently deferred to the next restart with no retryCount
increment. This caused them to loop forever across restarts, never hitting
MAX_RETRIES and never moving to failed/.
Fix: call failDelivery() on each remaining entry before breaking out of
the recovery loop (both the deadline check and the backoff-exceeds-deadline
check). This increments retryCount so that entries eventually exhaust
MAX_RETRIES and are permanently skipped.
Fixes #24353
2026-03-22 18:39:24 -07:00
Stephen Schoettler
5e64265537
fix(browser): prevent stdio buffer blocking in Docker environments
2026-03-22 18:39:24 -07:00
Stephen Schoettler
69217164f7
fix: add null guards to usage sort comparators
...
Prevents crash when totals is undefined in byModel/byProvider/byAgent
sort comparators. Fixes 'Cannot read properties of undefined (reading
totalTokens)' crash that causes context overflow in active sessions.
2026-03-22 18:39:24 -07:00
Peter Steinberger
75835fc664
test: restore runtime-aware cli mocks
2026-03-22 18:35:37 -07:00
Peter Steinberger
c43bfcbbec
refactor: split best-effort network display discovery
2026-03-22 18:35:37 -07:00
Peter Steinberger
39752e7921
test: slim outbound context fixtures
2026-03-22 18:35:19 -07:00
Vincent Koc
2db10fb1d4
perf(reply): lazy-load embedded queue steering
2026-03-22 18:32:31 -07:00
Vincent Koc
d1404014d9
perf(reply): split runner auth profile seam
2026-03-22 18:29:09 -07:00
Peter Steinberger
ecdf5d457a
test: fix latest main test regressions
2026-03-22 18:28:13 -07:00
Vincent Koc
645c9210b3
style(format): fix provider test formatting drift
2026-03-22 18:25:55 -07:00
Vincent Koc
0a329b2c9f
Revert "style(format): fix check drift in provider tests"
...
This reverts commit 2619f5fe55 .
2026-03-22 18:25:07 -07:00
Vincent Koc
2619f5fe55
style(format): fix check drift in provider tests
2026-03-22 18:24:40 -07:00
Vincent Koc
125e778fe6
perf(reply): split payload dedupe helpers
2026-03-22 18:22:56 -07:00
Vincent Koc
6fde263046
fix(ci): refresh bundled plugin metadata
2026-03-22 18:19:49 -07:00
Vincent Koc
a753ee064d
fix(agents): centralize moonshot compat and xai fast remaps
2026-03-22 18:17:02 -07:00
Vincent Koc
cbf9cd0acb
fix(ci): repair main checks
2026-03-22 18:13:14 -07:00
Vincent Koc
b5b193d5ca
fix(moonshot): refresh kimi k2 catalog
2026-03-22 18:00:51 -07:00
Vincent Koc
3dcc802fe5
refactor(media): move deepgram and groq providers into plugins
2026-03-22 17:57:31 -07:00
Vincent Koc
0f54ca20aa
refactor(image-generation): move provider builders into plugins
2026-03-22 17:57:31 -07:00
Josh Lehman
3fe96c7b9e
device-pair: align internal command checks
2026-03-22 17:56:33 -07:00
Vincent Koc
a61e5d17f0
deps: update fast-xml-parser and markdown-it ( #52541 )
...
* style: format test files
* deps: bump fast-xml-parser override
2026-03-22 17:55:47 -07:00
Vincent Koc
dc2013aae5
perf(reply): lazy-load followup context lookup
2026-03-22 17:55:14 -07:00
Vincent Koc
e3c7a05cb5
fix(cli): remove duplicate test runtime keys
2026-03-22 17:52:05 -07:00
Vincent Koc
de6bf58e79
refactor(tts): move speech providers into plugins
2026-03-22 17:48:59 -07:00
Vincent Koc
1d08ad4bac
refactor(tts): remove legacy core speech builders
2026-03-22 17:48:09 -07:00
Peter Steinberger
100d9a7a23
refactor: share boundary open and gateway test helpers
2026-03-23 00:37:05 +00:00
Peter Steinberger
976eefe373
test: align cli runtime mocks with output runtime
2026-03-22 17:32:20 -07:00
Peter Steinberger
7bd12f4b37
test: fix rebased directory runtime mock ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
aaa6068c08
test: stabilize json runtime captures ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
a2999c6cfb
test: normalize rebase fallout ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
a5ace56a19
test: align rebased expectations and typecheck ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
38ee17145b
fix: restore rebase regression coverage ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
b00306a75b
test: fix post-rebase test drift ( #52428 )
2026-03-22 16:56:19 -07:00
Peter Steinberger
797f3cc377
fix: stabilize stale buffer sweep landing ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Peter Steinberger
f76e653776
fix: guard stale chat buffer sweep ( #52428 ) (thanks @karanuppal)
2026-03-22 16:56:19 -07:00
Karan Uppal
550deb8c18
fix: sweep stale chatRunState buffers for stuck runs
...
emitChatFinal frees buffers on clean run completion, and the
maintenance timer sweeps abortedRuns after ABORTED_RUN_TTL_MS. But
runs that get stuck (e.g. LLM timeout without triggering clean
lifecycle end) are never aborted and their string buffers persist
indefinitely. This is the direct trigger for the StringAdd_CheckNone
OOM crash reported in the issue.
Add a stale buffer sweep in the maintenance timer that cleans up
buffers, deltaSentAt, and deltaLastBroadcastLen for any run not
updated within ABORTED_RUN_TTL_MS, regardless of abort status.
Closes #51821
2026-03-22 16:56:19 -07:00
Peter Steinberger
165aeccd24
test: align memory cli json assertions
2026-03-22 23:46:54 +00:00
Peter Steinberger
4e531d382b
fix(ci): restore cli runtime mocks and timeout exits
2026-03-22 23:43:58 +00:00
Peter Steinberger
85f8437399
test: fix remaining tsgo issues after payload output refactor
2026-03-22 23:39:07 +00:00
Peter Steinberger
ac8e81a5cd
refactor: compose account security warning helpers
2026-03-22 23:37:12 +00:00
Peter Steinberger
39faf4725d
refactor: share warning collector projections
2026-03-22 23:37:12 +00:00
Peter Steinberger
f0ab31366c
refactor: share async computed channel status adapters
2026-03-22 23:37:12 +00:00
Peter Steinberger
72bfaf6ee2
refactor: share computed channel status adapters
2026-03-22 23:37:12 +00:00
Peter Steinberger
023394bc0b
fix(plugin-sdk): keep testing barrel narrow
2026-03-22 23:30:59 +00:00
Peter Steinberger
bca7787f92
style: fix rebased format drift
2026-03-22 23:26:21 +00:00
Peter Steinberger
63130118ba
test: fix rebased gateway and binding baselines ( #52491 )
2026-03-22 23:22:48 +00:00
Peter Steinberger
d73852ff21
fix: land plugin discovery missing-entry handling ( #52491 ) (thanks @hclsys)
2026-03-22 23:22:48 +00:00
Peter Steinberger
4ee41cc6f3
refactor(cli): separate json payload output from logging
2026-03-22 23:19:17 +00:00
Peter Steinberger
274af0486a
perf: trim more vitest thread pins
2026-03-22 16:18:26 -07:00
Peter Steinberger
6245b4f3d8
test: import vi in gateway chat server test
2026-03-22 23:17:05 +00:00
HCL
4f11982ae6
fix: emit warn diagnostic for I/O errors, keep silent only for ENOENT
...
Address Codex P1 + Greptile P2: the previous commit collapsed both
"path" (ENOENT) and "io" (EACCES/EMFILE) into silent null returns.
Now:
- reason="path" (missing file): return null silently — not a security issue
- reason="io" (permission/disk): push warn diagnostic — surface anomaly
without aborting gateway
- reason="validation" (path escape): push error diagnostic — security violation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: HCL <chenglunhu@gmail.com>
2026-03-22 16:13:54 -07:00
HCL
8701a224f8
fix(plugins): distinguish missing entry file from security violation
...
resolvePackageEntrySource() treats all openBoundaryFileSync failures
as path-escape security violations. When an extension entry file is
simply missing (ENOENT, reason="path"), the gateway emits "extension
entry escapes package directory" and aborts — crashing in a loop.
Root cause: src/plugins/discovery.ts:478 checks !opened.ok but never
inspects opened.reason. SafeOpenSyncResult already distinguishes
"path" (ENOENT) from "validation" (actual path escape).
Fix: only push the security diagnostic when opened.reason is
"validation". For "path" or "io" failures, return null to skip the
entry silently — a missing file is not a security violation.
Closes #52445
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: HCL <chenglunhu@gmail.com>
2026-03-22 16:13:54 -07:00
Codex
8c7d603f25
fix(gateway): keep status helpers resilient to netif failures
2026-03-22 16:09:43 -07:00
Vincent Koc
c0cbc7403b
test(env): normalize path expectations on windows
2026-03-22 16:08:49 -07:00
Peter Steinberger
ec51ee1af5
test: harden gateway no-isolate coverage
2026-03-22 16:08:22 -07:00
Peter Steinberger
1eba6f830c
test: remove stale plugin registry helper
2026-03-22 23:07:32 +00:00
Peter Steinberger
d84b3f5d5d
test: fix conversation binding registry stub
2026-03-22 16:02:13 -07:00
Peter Steinberger
f8ff2a4f38
test: fix gate after main drift
2026-03-22 23:00:02 +00:00
Vincent Koc
5c8e1275a0
feat(minimax): add missing pi catalog models
2026-03-22 15:55:20 -07:00
Peter Steinberger
1ad47b8fa1
test: harden path resolution test helpers
2026-03-22 22:47:58 +00:00
Peter Steinberger
5a8f77aa6a
refactor: adopt chat plugin builder in zalouser
2026-03-22 22:45:06 +00:00
Charles Dusek
81b498b2b6
fix(cli): keep JSON payloads on stdout when logs route to stderr
2026-03-22 15:43:48 -07:00
Charles Dusek
5bba1b45bc
fix(cli): bypass patched console.log for JSON payloads in --json mode
2026-03-22 15:43:48 -07:00
Charles Dusek
ebb4cc0128
fix(cli): route logs to stderr in --json mode to keep stdout clean
2026-03-22 15:43:48 -07:00
Vincent Koc
b93a045a96
docs(agents): update steering semantics
2026-03-22 15:40:56 -07:00
Vincent Koc
6e7855fdf5
feat(xai): support fast mode
2026-03-22 15:40:56 -07:00
Vincent Koc
9c0983618e
feat(models): sync pi provider catalogs
2026-03-22 15:40:56 -07:00
Peter Steinberger
77cbbae81b
test: fix ci drift after main rebase
2026-03-22 22:38:27 +00:00
Roger Deng
c3f1d43a10
test: align chrome launch args fixture with current browser profile type
2026-03-22 15:37:19 -07:00
Roger Deng
72d775e069
fix: stop forcing an extra blank tab on browser launch
2026-03-22 15:37:19 -07:00
Peter Steinberger
58c3f8673a
test: fix full gate after runtime lazy-load
2026-03-22 22:33:07 +00:00
Peter Steinberger
6df6a691fc
perf: lazy-load plugin runtime heavy surfaces
2026-03-22 22:33:07 +00:00
scoootscooob
d9de38e0f8
Reply: tighten media dedupe and OpenAI ratio claims
2026-03-22 15:26:45 -07:00
Peter Steinberger
24b9baebab
fix: preserve runtime path env in secrets snapshots
2026-03-22 15:25:58 -07:00
Peter Steinberger
47e8ffc2e9
test: repair current main gate regressions
2026-03-22 22:22:46 +00:00
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