Commit Graph

6664 Commits

Author SHA1 Message Date
Shakker
08cc44b57d feat: lazily load tool result middleware plugins 2026-04-28 04:33:47 +01:00
Peter Steinberger
6c0cdf43e4 fix: honor subagent spawn model overrides 2026-04-28 04:25:31 +01:00
Peter Steinberger
993fee4066 fix(agents): avoid empty Anthropic tool result blocks 2026-04-28 04:20:49 +01:00
Peter Steinberger
343f2d7245 fix: fail closed for invalid cron payload models 2026-04-28 04:12:54 +01:00
Peter Steinberger
2628326264 refactor: expose agent runtime test contracts 2026-04-28 03:40:57 +01:00
Peter Steinberger
e1acb61317 refactor: expose SDK test helper subpaths 2026-04-28 03:28:17 +01:00
Peter Steinberger
a0a0ab4d9e fix(memory): resolve custom embedding provider ids 2026-04-28 03:11:19 +01:00
Peter Steinberger
632b0fd580 chore: update workspace dependencies 2026-04-28 03:09:44 +01:00
Shakker
9682f3937e fix: skip runtime normalization for broad model lists 2026-04-28 02:59:06 +01:00
Neerav Makwana
1106cc7fd2 fix(cli): skip memory eager context warmup 2026-04-28 02:56:56 +01:00
Peter Steinberger
947aae5a99 refactor(models): move suppressions to manifests 2026-04-28 02:38:31 +01:00
Peter Steinberger
c0fdf9923b perf(agents): keep model resolution caches warm 2026-04-28 02:38:31 +01:00
Jochen Roessner
e9be25b554 perf: cache model resolution to avoid repeated plugin-provider loads
On ARM64 devices (e.g. Raspberry Pi 4), resolvePluginProviders takes ~20s
on first call. Three bugs cause this cost to be paid repeatedly:

1. ensureOpenClawModelsJson readyCache fingerprint includes models.json
   mtime. After a write, the stored fingerprint (pre-write mtime) never
   matches again, forcing every caller to re-run planOpenClawModelsJson.

2. readyCache has one entry per file path. Agents with different configs
   (e.g. main agent vs active-memory subagent) overwrite each other's
   entry, so neither benefits from caching.

3. resolveExplicitModelWithRegistry calls shouldSuppressBuiltInModel →
   resolveProviderPluginsForCatalogHooks on every agent run. The internal
   cache key includes the full config, so callers with slightly different
   configs each pay the full provider-load cost.

Fixes:
- Remove modelsFileMtimeMs from fingerprint (bug 1)
- Add noopCache to MODELS_JSON_STATE keyed by (path, mtime) — a noop
  result is config-agnostic, so any caller can reuse it (bug 2)
- Cache resolveExplicitModelWithRegistry by (provider, modelId, agentDir),
  stable for the lifetime of a gateway session (bug 3)

Measured on Raspberry Pi 4 (ARM64):
  active-memory subagent preprocessing: 66-75s → ~3s (warm)
  active-memory total elapsed:           ~96s  → ~14s (warm)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 02:38:31 +01:00
Peter Steinberger
13ff3142bd fix(agents): classify terminal results for fallback 2026-04-28 02:35:51 +01:00
Peter Steinberger
82ca94fdd7 test: curate google live profile signal 2026-04-28 02:32:44 +01:00
Peter Steinberger
de76ad506c test: stabilize release live e2e lanes 2026-04-28 02:30:36 +01:00
Peter Steinberger
b6a90188e7 test: trim hot test runtime imports 2026-04-28 02:25:55 +01:00
Peter Steinberger
b891dbb133 test: curate openrouter live profile signal 2026-04-28 02:17:48 +01:00
Peter Steinberger
6ebe3087fc test: narrow live gateway profile signal 2026-04-28 01:30:59 +01:00
Peter Steinberger
e508d81f79 perf: avoid registry loads in hot tests 2026-04-28 01:20:47 +01:00
Peter Steinberger
6b1089ffe5 fix: keep group silence on no-reply path 2026-04-28 01:20:00 +01:00
Peter Steinberger
e27c32b9b0 refactor(plugin-sdk): publish route helpers 2026-04-28 01:13:01 +01:00
Peter Steinberger
3eec9e4642 refactor(channels): reuse route context helpers 2026-04-28 01:13:00 +01:00
Peter Steinberger
3876682635 refactor(channels): centralize route normalization 2026-04-28 01:13:00 +01:00
EVA
1adaa28dc8 [plugin sdk] Add generic plugin host-hook contracts (#72287)
Merged via squash.

Prepared head SHA: 68e5f2ce19
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-27 17:07:02 -07:00
Peter Steinberger
802f13ac15 fix(memory): cap ollama non-batch embedding concurrency 2026-04-28 00:34:18 +01:00
Peter Steinberger
56ef6334f0 perf: combine pty exec coverage 2026-04-28 00:17:03 +01:00
Peter Steinberger
05a93c1788 perf: avoid sdk client setup in openai transport test 2026-04-28 00:07:29 +01:00
Peter Steinberger
ccc9dd5eef fix: keep session history redaction forced 2026-04-27 23:59:47 +01:00
Peter Steinberger
c27b82d431 perf: avoid heavy imports in hot tests 2026-04-27 23:57:00 +01:00
Peter Steinberger
78d3fce5f9 fix: preserve OpenAI encrypted reasoning replay 2026-04-27 23:54:16 +01:00
Peter Steinberger
9f9bcfe231 perf: reduce hot test imports and duplicate scans 2026-04-27 23:47:26 +01:00
JK
323030594e fix(agents): resolve model aliases in sessions_spawn (#59681)
* fix(agents): resolve model aliases in sessions_spawn

normalizeModelSelection() only trims the input — it never resolves
aliases through the model alias index. When a user passes an alias
like 'opus' to sessions_spawn, the child session gets patched with
the raw string, which the gateway cannot match to any provider.

Add resolveModelThroughAliases() to check bare strings against the
configured alias map before returning from
resolveSubagentSpawnModelSelection().

Fixes #57532
Refs #50736

* refactor: address review feedback on alias resolution

- Accept pre-built ModelAliasIndex instead of rebuilding per call
- Narrow helper signature to (string, ModelAliasIndex) → string
- Remove unreachable ?? raw fallback

Co-Authored-By: greptile-apps[bot]

* fix(agents): resolve sessions_spawn model aliases

---------

Co-authored-by: HowdyDooToYou <HowdyDooToYou@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
2026-04-27 15:44:56 -07:00
neilofneils404
482ff924ef fix: pass directories to provider stream wrappers (#67843)
* fix: pass directories to provider stream wrappers

* fix: pass directories to provider stream wrappers

---------

Co-authored-by: neilofneils404 <258699186+neilofneils404@users.noreply.github.com>
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com>
2026-04-27 15:43:38 -07:00
Peter Steinberger
d2320e4d4b fix(models): keep user model switches strict 2026-04-27 23:32:44 +01:00
Peter Steinberger
496a5eb56f fix: dedupe silent reply prompt guidance 2026-04-27 23:31:13 +01:00
volcano303
f3e8c50df3 fix(agents): redact Control UI tool payload secrets (#72319)
Fixes #72283.

- Redacts Control UI tool start args, partial/final result payloads, derived exec output, and patch summaries before event emission.
- Forces tool/UI payload redaction to include built-in patterns plus configured custom `logging.redactPatterns`.
- Covers object, details-only, primitive string, and top-level array tool-result shapes.

Tests:
- `pnpm test src/agents/pi-embedded-subscribe.tools.test.ts src/agents/pi-embedded-subscribe.handlers.tools.test.ts`
- `pnpm check:changed`

Co-authored-by: volcano303 <75143900+volcano303@users.noreply.github.com>
Co-authored-by: Val Alexander <bunsthedev@gmail.com>
2026-04-27 23:30:50 +01:00
Vincent Koc
61a18e5596 fix(agent): preserve default-agent session routing compatibility (#72414)
* fix(agent): preserve default-agent session routing compatibility

* fix(clownfish): address review for ghcrawl-207038-agentic-merge (1)

* fix(agent): migrate legacy default-agent sessions

* fix(slack): use narrow agent runtime import
2026-04-27 15:09:01 -07:00
Peter Steinberger
42dddbbe78 fix(cli): streamline local model probes 2026-04-27 23:02:26 +01:00
Peter Steinberger
7807e8118c perf(test): slim codex web search test imports 2026-04-27 22:34:48 +01:00
Peter Steinberger
1787d3be07 fix(gateway): scope startup provider discovery 2026-04-27 21:45:54 +01:00
Peter Steinberger
28d9fc5f20 fix(test): include cron delivery thread id in schema keys 2026-04-27 21:43:12 +01:00
Peter Steinberger
b6be422306 fix(cron): accept threaded delivery in gateway schema 2026-04-27 21:37:18 +01:00
Peter Steinberger
11e6928b3e fix: keep runtime context out of user turns 2026-04-27 21:24:56 +01:00
Peter Steinberger
ff52e281aa perf(test): slim responses payload policy imports 2026-04-27 21:06:40 +01:00
Peter Steinberger
9645fe72c6 test: harden release validation live shards 2026-04-27 20:45:25 +01:00
NVIDIAN
dc96886378 fix: clean up bundled LSP process trees on shutdown
Fixes #72357
2026-04-27 11:10:56 -07:00
Peter Steinberger
b39d80835f test: retry transient openai websocket live stream 2026-04-27 18:43:45 +01:00
Shakker
5531502cb0 fix: normalize provider metadata live filters 2026-04-27 18:04:54 +01:00
Shakker
4cd2cabe7f fix: include cli backend owners in provider metadata filters 2026-04-27 18:04:54 +01:00