Peter Steinberger
56d3f97e23
test: use lightweight channel status stubs
2026-04-10 18:00:45 +01:00
Peter Steinberger
710a19dd86
fix: repair latest main type drift
2026-04-10 18:00:45 +01:00
Peter Steinberger
b9981c8ee8
test: inject setup command side effects
2026-04-10 17:57:15 +01:00
Agustin Rivera
fe0f686c92
Gate Matrix profile updates for non-owner message tool runs ( #62662 )
...
Merged via squash.
Prepared head SHA: 602b16a676
Co-authored-by: eleqtrizit <31522568+eleqtrizit@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-10 12:56:17 -04:00
Peter Steinberger
1c1fe8a405
test: remove duplicate workspace auth choice e2e
2026-04-10 17:52:44 +01:00
Peter Steinberger
9031a9b2cc
test: narrow legacy doctor migration hot paths
2026-04-10 17:51:15 +01:00
Menglin Li
36c3a54b51
fix(gateway): plug long-running memory leaks
...
Prune stale gateway control-plane rate-limit buckets, bound transcript-session lookup caching, clear agent event sequence state with run contexts, and clear node wake/nudge state on disconnect.\n\nVerified locally after rebasing onto main:\n\n- pnpm test src/gateway/control-plane-rate-limit.test.ts src/gateway/session-transcript-key.test.ts src/infra/agent-events.test.ts src/gateway/server-methods/nodes.invoke-wake.test.ts\n- pnpm check\n\nCo-authored-by: lml2468 <39320777+lml2468@users.noreply.github.com >
2026-04-10 17:45:12 +01:00
Devin Robison
54ae138db7
fix: the cron isolated agent in openclaw unconditiona ( #383 ) ( #63878 )
2026-04-10 10:44:22 -06:00
Gustavo Madeira Santana
9c44f10026
fix: preserve canonical restart sentinel routes ( #64391 )
...
Merged via squash.
Prepared head SHA: 0183c1782f
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-10 12:44:07 -04:00
Devin Robison
dffad08529
fix: a sandboxed agent can request host node in an ex ( #384 ) ( #63880 )
2026-04-10 10:40:27 -06:00
Peter Steinberger
777c6f7580
refactor: split manifest command alias helpers
2026-04-10 17:37:31 +01:00
Peter Steinberger
5f3356a746
refactor: split session store key helper
2026-04-10 17:37:25 +01:00
EVA
47c0a5135a
fix: dedupe delivered subagent completion announces ( #61525 ) (thanks @100yenadmin)
...
* fix(subagents): dedupe delivered completion announces
* refactor(subagents): distill cleanup delivery status writes
* fix: dedupe delivered subagent completion announces (#61525 ) (thanks @100yenadmin)
---------
Co-authored-by: Eva <eva@100yen.org >
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-10 22:06:46 +05:30
Peter Steinberger
c077af987f
perf: add narrow inbound roots sdk surface
2026-04-10 17:34:41 +01:00
Peter Steinberger
bac98d4218
test: reduce media contract import cost
2026-04-10 17:31:08 +01:00
Gustavo Madeira Santana
5d2225212d
fix(matrix): preserve ACP thread binding targets ( #64343 )
...
Merged via squash.
Prepared head SHA: def7dcda96
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-10 12:30:08 -04:00
Ayaan Zaidi
2f84e73c18
fix(agents): always emit terminal lifecycle events
2026-04-10 21:58:20 +05:30
Gustavo Madeira Santana
0dd8ce72a2
Matrix: consolidate migration status routing ( #64373 )
...
Merged via squash.
Prepared head SHA: dfe29e36bb
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-04-10 12:20:13 -04:00
Lellansin Huang
2ccd1839f2
fix: return real usage for OpenAI-compatible chat completions ( #62986 ) (thanks @Lellansin)
...
* Gateway: fix chat completions usage compatibility
* Gateway: clarify usage-gated stream wait
* Gateway: preserve aggregate usage totals
* Agents: clamp usage components before total
* fix(gateway): bound usage stream finalization
* fix: add OpenAI compat usage changelog (#62986 ) (thanks @Lellansin)
* fix(agents): emit lifecycle terminal events after flush
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-04-10 21:46:24 +05:30
Peter Steinberger
f64c84ab6b
test: narrow command doctor helper coverage
2026-04-10 17:11:57 +01:00
Peter Steinberger
253982d05f
test: keep command setup hook tests narrow
2026-04-10 17:08:38 +01:00
Peter Steinberger
aaf38acc07
test: keep legacy migration tests core-only
2026-04-10 17:03:38 +01:00
Peter Steinberger
74f25c0e88
test: narrow doctor command warning coverage
2026-04-10 16:49:55 +01:00
Peter Steinberger
eddbc04f4b
test: narrow command runtime config coverage
2026-04-10 16:46:09 +01:00
Peter Steinberger
8a5b7cf573
test: inject provider auth command fixtures
2026-04-10 16:41:10 +01:00
Peter Steinberger
d6ece7fb89
test: inject cli backend fixtures
2026-04-10 16:33:37 +01:00
Chunyue Wang
574bab80e5
fix(exec): disable onUpdate after run settlement to prevent gateway crash ( #62821 )
...
Squash-merged via maintainer prepare workflow.
Prepared head SHA: 431381ae1e
Co-authored-by: openperf <16864032@qq.com >
2026-04-10 23:33:25 +08:00
Peter Steinberger
eec19d5929
test: relax sandbox registry lock wait
2026-04-10 16:24:32 +01:00
neo1027144
2cf9ed782d
fix(daemon): prevent systemd restart storm on config validation failure
...
Exit gateway configuration failures with EX_CONFIG and teach generated systemd units not to restart on that exit status.\n\nCo-authored-by: neo1027144-creator <neo1027144-creator@users.noreply.github.com >
2026-04-10 16:23:46 +01:00
Peter Steinberger
fc5a231e95
test: spread deterministic port blocks by process
2026-04-10 16:18:28 +01:00
Peter Steinberger
1628217114
test: avoid real signal exit in lock tests
2026-04-10 16:09:46 +01:00
Peter Steinberger
1000a85fb6
test: mock provider runtime in pi runner tests
2026-04-10 16:07:09 +01:00
Peter Steinberger
5c67fa7cc0
test: avoid plugin fallback in agents tests
2026-04-10 16:00:08 +01:00
Peter Steinberger
3522224b25
test: trim provider runtime from agents hotspots
2026-04-10 15:56:28 +01:00
Peter Steinberger
56fc20fb7c
test: align Vitest config path assertions
2026-04-10 15:49:37 +01:00
Peter Steinberger
a1262e15a3
perf: reduce heartbeat prompt tokens
2026-04-10 15:38:39 +01:00
Peter Steinberger
3c0e5f0ea5
test: restore moved Vitest config paths
2026-04-10 15:38:14 +01:00
Peter Steinberger
a48eb84181
test: narrow nodes workspace guard imports
2026-04-10 15:37:48 +01:00
MoerAI
a2fb063370
fix(text): strip Qwen-style XML tool call payloads from visible text ( #63999 )
2026-04-10 15:36:25 +01:00
Peter Steinberger
9fd08f9d0f
refactor: remove type-only import cycles
2026-04-10 15:14:27 +01:00
Peter Steinberger
fe1fd055d5
fix: sanitize Gemini tool schema required fields ( #64284 ) (thanks @xxxxxmax)
2026-04-10 15:01:37 +01:00
max
0dbcf81b34
fix: sanitize required fields in tool schemas for Gemini compatibility
2026-04-10 15:01:37 +01:00
Peter Steinberger
09a8e0f289
fix: keep bundled CLI backend fallback stable ( #64242 )
2026-04-10 14:56:12 +01:00
Peter Steinberger
beaff3c553
fix: clarify plugin command alias diagnostics ( #64242 ) (thanks @feiskyer)
2026-04-10 14:56:12 +01:00
Pengfei Ni
8cb45c051e
fix(config): give actionable guidance when command names are used in plugins.allow ( #64191 )
...
When users put a runtime command name like "dreaming" into `plugins.allow`,
validation now explains that it is a command provided by a specific plugin
(e.g. "memory-core") and suggests using the plugin id instead, rather than
the generic "plugin not found" warning that previously created a circular
trap with the CLI error message.
Similarly, running `openclaw dreaming` from the CLI now explains that
`/dreaming` is a runtime slash command (not a CLI command) and points users
to `openclaw memory` for CLI operations or `/dreaming` in a chat session.
Fixes two related UX problems:
1. `plugins.allow: ["dreaming"]` → validation warned "plugin not found"
2. `openclaw dreaming status` → CLI said "add dreaming to plugins.allow"
(which then triggered problem 1)
Root cause: "dreaming" is a slash command registered by the memory-core
plugin via `api.registerCommand()`, not a standalone plugin or CLI command.
2026-04-10 14:56:12 +01:00
Peter Steinberger
6286810388
test: add Claude CLI provider QA scenario
2026-04-10 14:23:19 +01:00
Peter Steinberger
1b1853f0cc
test: restore moved Vitest config discovery
2026-04-10 14:20:39 +01:00
ly85206559
13821fd54b
fix(plugins): make service registration idempotent
...
Treat duplicate registerService calls from the same plugin id as idempotent so plugin snapshot and activation loads stop emitting spurious service already registered diagnostics.\n\nThanks @ly85206559.
2026-04-10 14:06:18 +01:00
Mariano
03e19c5436
fix(gateway): restore dreaming startup reconciliation ( #64258 )
...
* gateway: restore dreaming startup reconciliation
* gateway: harden dreaming startup reconciliation
---------
Co-authored-by: mbelinky <mbelinky@users.noreply.github.com >
2026-04-10 15:02:19 +02:00
Mariano
383ea34efe
fix(reply): keep resolved secret config stable ( #64249 )
...
Merged via squash.
Prepared head SHA: 973f863d8c
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-10 14:56:30 +02:00