openclaw/test
Ayaan Zaidi 63442ee8a1
fix: complete system-expert requests when agent concurrency is one (#147596)
The reviewed head is `de7fb2d7b072858c3b2b0370756fcdd31e237cbd`.

- Both embedded system-expert entries use the existing queue's dedicated one-slot inference lane. Ordinary agent concurrency remains unchanged. The outer tracking lane cannot join a shared capacity group because it waits for inner work.
- The same assistant runner serves command planning and caretaker greetings. Diagnostics exposes the added lane through its existing row list. No configuration key, schema, migration, protocol, or SDK change is required.
- The retained authenticated `openclaw.chat` and ordinary parent-tool captures show the expert reply and successful parent completion with Main concurrency one. The committed chat and greeting regressions both fail with the original main producers and pass with the fix.
- Fresh merge `9022ca9fccf808112a94eeea3099442c04396420`, with main parent `078ca0bc2f`, passed 107 tests across nine owner and sibling files. Its candidate parent `8531d0d5e5b9fcc4be6f061da10f7e5923f3185b` differs from the reviewed head only by the two evidence images that were later removed from the repository. Executable source and tests are identical.
- The proof uses a local response fixture. It establishes immediate reply/tool completion and queue settlement. It does not establish external generation or transcript replay continuity; the parent capture includes `replayInvalid: true`.
- Parent cancellation can still allow previously queued expert inference to start after the parent stops. This was observed on main and remains outside this lane repair.
- The inspected before/after Debug images show idle lane inventory, separate from the concurrency-one runtime experiment. The captures are published through the owner's evidence gist below; both images were inspected in chat and their published raw links were verified.
- Supersedes #147468 by @ekinnee, whose production commit is preserved under its original authorship. Thanks @maulu5 for the report in #147264. Closing the original PR remains part of landing.

CI run [34792848991](https://github.com/openclaw/openclaw/actions/runs/34792848991) passed at this head.

## Consumers

Embedded chat turns, command planning, caretaker greetings, and the Debug diagnostics row list retain their existing shared owners.

## Screenshots

Gateway lane diagnostics, sanitized captures (before on main, after on this branch).

| Before | After |
| --- | --- |
| ![Lane diagnostics on main: no dedicated lane for nested system-expert inference](https://gist.githubusercontent.com/obviyus/271fb1985a39e4785b56d82f3ff8dbd7/raw/d7ad0a2572ed9dfb97cd33230044e18e5796e3b9/before.png) | ![Lane diagnostics on this branch: a system-agent-inference lane lets the expert complete while the parent waits](https://gist.githubusercontent.com/obviyus/271fb1985a39e4785b56d82f3ff8dbd7/raw/d7ad0a2572ed9dfb97cd33230044e18e5796e3b9/after.png) |

Co-authored-by: Erick Kinnee <ekinnee@gmail.com>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-14 06:45:41 +05:30
..
contracts fix: ask_user suggests tapping options without buttons (#137978) 2026-09-06 08:36:57 -07:00
e2e fix(qa): preserve live provider provenance in release evidence (#147425) 2026-09-14 05:46:42 +08:00
fixtures feat(subagents): allow private parent completion handoffs (#147206) 2026-09-13 16:09:47 -06:00
helpers improve: keep Gateway responsive while loading session history (#147363) 2026-09-13 15:01:48 -07:00
mocks
plugins fix(session-share): hide subagents and tool activity (#146598) 2026-09-12 18:19:41 -07:00
scripts test(agents): add live Code Mode comparison workloads (#147537) 2026-09-13 16:32:28 -07:00
tsconfig improve(model-catalog): avoid duplicate manifest planning during preparation (#143502) 2026-09-13 22:37:41 +08:00
type-contracts refactor: check pure type contracts without runtime test cases (#143888) 2026-09-10 04:39:37 -07:00
vitest fix: complete system-expert requests when agent concurrency is one (#147596) 2026-09-14 06:45:41 +05:30
agent-exec-code-mode.live.test.ts fix: skip official setup approvals and default to Astra (#145646) 2026-09-12 00:34:25 -07:00
AGENTS.md
appcast.test.ts fix(release): run Sparkle CLI through symlinked checkouts (#142315) 2026-09-08 09:27:03 -07:00
architecture-smells.test.ts fix(tooling): detect imports following regular expressions (#137804) 2026-09-04 04:28:06 -07:00
buzz-account-config-mutation.test.ts
canonical-descendant.integration.test.ts improve: use compiled Doctor contracts in built checkouts (#144676) 2026-09-11 00:49:15 -07:00
CLAUDE.md
clawrouter-managed-gateway.e2e.test.ts test(clawrouter): refresh catalog before asserting models (#143692) 2026-09-10 00:10:48 -07:00
cli-json-stdout.agents.e2e.test.ts
cli-json-stdout.automation.e2e.test.ts
cli-json-stdout.config.e2e.test.ts fix(cli): report invalid plugin configuration directly (#138131) 2026-09-04 03:32:36 -07:00
cli-json-stdout.e2e.test.ts fix(cli): keep qr --setup-code-only --json machine-readable (#137209) 2026-09-06 00:13:05 -07:00
cli-json-stdout.gateway.e2e.test.ts
cli-json-stdout.hooks.e2e.test.ts
cli-json-stdout.models.e2e.test.ts
cli-json-stdout.plugins.e2e.test.ts fix(plugins): keep diagnostic details in Doctor JSON (#147020) 2026-09-13 07:06:02 -07:00
cli-json-stdout.sessions.e2e.test.ts
cli-json-stdout.skills.e2e.test.ts
cli-json-stdout.test-support.ts
cli-state-sqlite.e2e.test.ts
copilot-tool-policy-handoff.integration.test.ts fix(agents): preserve disabled tools at plugin handoff (#142093) 2026-09-09 18:13:53 +05:30
copilot-tool-policy-handoff.live.test.ts fix(agents): preserve disabled tools at plugin handoff (#142093) 2026-09-09 18:13:53 +05:30
cron-edit-trigger-preservation.e2e.test.ts
discord-live-policy.integration.test.ts fix(discord): apply access policy during active Control UI turns (#140929) 2026-09-07 00:23:28 -07:00
doctor-copied-state-migration.e2e.test.ts
doctor-legacy-whatsapp-ack-migration.e2e.test.ts
dreaming-startup-cleanup.e2e.test.ts
embedded-transcript-cursor.e2e.test.ts
extension-import-boundaries.test.ts perf: share extension boundary check inventory (#146771) 2026-09-12 23:27:30 -07:00
extension-test-boundary.test.ts feat: manage and reload plugins without Gateway restarts (#145484) 2026-09-11 23:12:58 -07:00
external-script-modules.d.ts
gateway-account-history.e2e.test.ts
gateway-cold-agent-abort.e2e.test.ts
gateway-copied-codex-session-resume.e2e.test.ts fix(plugins): retain update authority through doctor effects (#144316) 2026-09-13 15:26:58 -06:00
gateway-external-state-ownership.e2e.test.ts fix(test): preserve release fixture runtime contracts (#147158) 2026-09-13 13:36:59 -07:00
gateway-hook-concurrency.e2e.test.ts fix(gateway): expose agent hook completion outcomes (#139155) 2026-09-06 01:36:46 +09:00
gateway-no-op-mutation.e2e.test.ts
gateway-openai-compaction-replay.e2e.test.ts fix(agents): preserve post-compaction continuation prompts (#136236) 2026-09-05 01:00:13 +08:00
gateway-queued-session-rotation.e2e.test.ts fix(agents): preserve post-compaction continuation prompts (#136236) 2026-09-05 01:00:13 +08:00
gateway-restored-requester-settle.e2e.test.ts fix(subagents): let requester follow-ups finish after child completion (#138966) 2026-09-05 14:05:14 -04:00
gateway-rpc-exporters.test.ts feat(diagnostics): retain completed event-loop observation windows (#138249) 2026-09-04 10:27:50 -07:00
gateway-session-end-shutdown.e2e.test.ts
gateway-steer-fifo.e2e.test.ts fix: canceled steering messages still reach active runs (#145809) 2026-09-12 10:08:06 +01:00
gateway-widget-restart.live.test.ts fix: preserve tool context across agent backends (#139840) 2026-09-06 00:12:50 -07:00
gateway.multi.e2e.test.ts fix(gateway): preserve one elapsed node invocation budget (#137147) 2026-09-10 12:13:09 +05:30
git-hooks-pre-commit-boundaries.test.ts
git-hooks-pre-commit.test-support.ts
git-hooks-pre-commit.test.ts
github-cli-preflight.e2e.test.ts
huggingface-local-app-openclaw.e2e.test.ts
image-generation.infer-cli.live.test.ts
image-generation.runtime.live.test.ts
jsdom-custom-elements.test.ts
jsdom-custom-elements.ts
line-question-gateway.test.ts feat(line): let a LINE tap answer the question an agent asked (#133421) 2026-09-10 20:31:40 -07:00
linux-dashboard-recovery.test.ts fix(linux): explain FreeBSD desktop setup prerequisites (#147211) 2026-09-14 02:49:27 +08:00
linux-quickchat-stream.test.ts fix(linux): recover completed Quick Chat replies without resending (#146048) 2026-09-14 02:16:00 +08:00
loopback-ask-user-telegram-channel.test.ts fix(test): await Telegram loopback prompt reception (#141204) 2026-09-07 05:22:57 -07:00
mcp-show-redact.e2e.test.ts
non-isolated-runner.mock-resolution-fixtures.ts fix(gateway): classify opening timeouts and repair lifetime checks (#146508) 2026-09-12 17:13:42 -07:00
non-isolated-runner.test-api-fixtures.ts refactor(ai): remove Responses transport test global (#143850) 2026-09-10 01:54:29 -07:00
non-isolated-runner.test.ts fix(runtime): support Bun across tooling suite (#146807) 2026-09-13 03:33:13 -07:00
non-isolated-runner.ts fix(gateway): classify opening timeouts and repair lifetime checks (#146508) 2026-09-12 17:13:42 -07:00
npm-publish-plan.test.ts fix(ci): check publication registries before FRV fanout (#147184) 2026-09-14 02:07:41 +08:00
oauth-refresh-authority-chain.e2e.test.ts fix(auth): fence shared OAuth refresh generations (#141477) 2026-09-09 02:08:10 +08:00
official-channel-catalog.test.ts
onboard-plugin-warnings.e2e.test.ts
openai-model-discovery-auth-order.test.ts fix(models): make discovered models available to new turns (#145726) 2026-09-12 17:09:10 +05:30
openai-onboarding.live.test.ts fix: skip official setup approvals and default to Astra (#145646) 2026-09-12 00:34:25 -07:00
openclaw-launcher-version.e2e.test.ts fix(update): report the built runtime instead of the unbuilt source version (#143538) 2026-09-10 16:06:37 -07:00
openclaw-launcher.e2e.test.ts fix: preserve child signal termination during CLI respawn (#144838) 2026-09-11 12:05:59 +01:00
openclaw-npm-postpublish-verify.test.ts chore(deps): advance cooled dependencies and major upgrades (#146258) 2026-09-12 13:28:12 -07:00
openclaw-npm-prepublish-verify.test.ts
openclaw-npm-release-check.test.ts fix(release): allow shipped Markdown guides in npm checks (#143699) 2026-09-09 23:18:18 -07:00
openclaw-prepack.test.ts fix(runtime): support Bun across tooling suite (#146807) 2026-09-13 03:33:13 -07:00
outbound-sanitize-text-delivery.test.ts
package-manager-config.test.ts chore(test): migrate to stable Vitest 5 (#138264) 2026-09-06 04:17:59 +09:00
package-scripts.test.ts fix(update): complete plugin runtime artifacts on first Git update (#145664) 2026-09-12 07:46:15 -07:00
plugin-clawhub-metadata.test.ts fix(release): publish frozen plugins with valid ClawHub categories (#144615) 2026-09-11 00:22:21 -07:00
plugin-clawhub-release.test.ts fix(ci): check publication registries before FRV fanout (#147184) 2026-09-14 02:07:41 +08:00
plugin-cron-registry-owner.e2e.test.ts fix(test): align recovery and history fixtures with runtime contracts (#139733) 2026-09-05 23:04:10 -07:00
plugin-extension-import-boundary.test.ts
plugin-npm-package-manifest.test.ts feat: give every plugin a compact chat activity icon (#147333) 2026-09-13 13:49:51 -07:00
plugin-npm-release.test.ts fix(ci): check publication registries before FRV fanout (#147184) 2026-09-14 02:07:41 +08:00
plugin-npm-runtime-build.test.ts feat: give every plugin a compact chat activity icon (#147333) 2026-09-13 13:49:51 -07:00
pr111899-accepted-run-transport-loss.e2e.test.ts fix(cli): identify accepted runs after agent transport loss (#111899) 2026-09-08 22:22:59 +05:30
pr119473-real-runtime-proof.e2e.test.ts
pr126853-heartbeat-visible-lane-proof.e2e.test.ts
pr142176-real-runtime-proof.e2e.test.ts fix(agents): retry silent malformed tool rejections (#142176) 2026-09-09 08:54:18 +05:30
progress-card-channel-literals.integration.test.ts fix(channels): show progress-card notes in drafts (#144790) 2026-09-13 21:08:45 +05:30
qa-channel-message-tool-delivery.test.ts
qa-convex-credential-payload-validation.test.ts
release-check.test.ts fix(npm): verify plugin-owned runtime chunks (#141876) 2026-09-08 00:11:14 -07:00
release-version.test.ts
repository-test-api-publications.ts refactor(tests): retire Doctor sandbox test bridge (#147214) 2026-09-13 13:50:34 -07:00
runtime-agent.codex-initialization.integration.test.ts
setup-home-isolation.test.ts
setup-openclaw-runtime.ts fix: close prepared model runtimes before auth teardown (#141280) 2026-09-07 09:08:23 -07:00
setup.env.ts
setup.extensions.ts perf(sessions): keep cleanup responsive and reuse workers (#140897) 2026-09-13 05:06:06 -07:00
setup.shared.ts
setup.signal.ts fix(signal): refuse account deletion that activates a shadowed identity (#145981) 2026-09-12 20:54:39 +05:30
setup.ts fix: prepare Bun SQLite before Vitest workers (#145198) 2026-09-11 13:08:29 -07:00
skills-proposal-manual-target.e2e.test.ts fix(qa): align auth and Workshop proofs with runtime contracts (#142280) 2026-09-08 08:49:35 -07:00
slack-outbound-permanent-rejection-loopback.test.ts
stable-release-closeout.test.ts refactor: split release changelogs and synchronize docs mirrors (#145464) 2026-09-11 21:19:18 -07:00
status-shared-state-readonly.e2e.test.ts fix(plugins): retain update authority through doctor effects (#144316) 2026-09-13 15:26:58 -06:00
subagent-announce-origin.integration.test.ts fix: keep subagent completions on the selected conversation (#144704) 2026-09-11 03:00:41 -07:00
subagent-requester-owner.e2e.test.ts fix(subagents): completion can fail when requester key is unscoped (#141480) 2026-09-08 16:39:42 +05:30
system-agent-managed-auth.e2e.test.ts fix(setup): New Agent fails with protected provider credentials (#141586) 2026-09-07 17:40:04 -07:00
talk-browser-defaults.test.ts feat(openai): support GPT-Live and default Talk by account (#145382) 2026-09-11 20:42:25 -07:00
telegram-outbound-permanent-rejection-loopback.test.ts fix(telegram): replies are lost when the HTTP proxy refuses the tunnel (#140388) 2026-09-10 02:31:34 +05:30
telegram-question-gateway.test.ts feat(codex): add plugin setup, status, refresh, and catalog search (#132158) 2026-09-09 19:56:41 -07:00
telegram-recovery-notice-send.test.ts fix(agents): announce channel turns resumed after restart (#141797) 2026-09-13 13:04:00 -04:00
telegram-reply-conversation.test.ts fix(auto-reply): preserve automation conversation and delivery ownership (#133323) 2026-09-05 03:12:22 -07:00
test-env.state-lifetime.test.ts refactor(tests): import SQLite cleanup from native owners (#145731) 2026-09-12 00:29:25 -07:00
test-env.test.ts fix(gateway): install despite stale Linux session bus addresses (#146569) 2026-09-13 06:45:35 -07:00
test-env.ts fix(gateway): install despite stale Linux session bus addresses (#146569) 2026-09-13 06:45:35 -07:00
test-helper-extension-import-boundary.test.ts
test-home-context.mts
test-home-policy.mts
transcripts-discord-audio.integration.test.ts improve(gateway): reduce redundant startup work (#147165) 2026-09-13 09:55:36 -07:00
transcripts-tool.discord-lifecycle.integration.test.ts fix(release): publish frozen plugins with valid ClawHub categories (#144615) 2026-09-11 00:22:21 -07:00
transcripts-tool.discord-provider.integration.test.ts fix(discord): keep recording independent of voice conversations (#139658) 2026-09-05 23:20:29 -07:00
tsconfig.json
twitch-message-tool-delivery.test.ts
ui.presenter-next-run.test.ts
vitest-boundary-config.test.ts
vitest-cli-ownership.test.ts
vitest-dependency-resolution.test.ts
vitest-light-paths.test.ts
vitest-performance-config.test.ts chore(test): migrate to stable Vitest 5 (#138264) 2026-09-06 04:17:59 +09:00
vitest-projects-config.test-support.ts improve(test): avoid full builds for session history HTTP checks (#143096) 2026-09-09 22:04:58 +09:00
vitest-projects-config.test.ts fix: complete system-expert requests when agent concurrency is one (#147596) 2026-09-14 06:45:41 +05:30
vitest-reporters-config.test.ts perf(test): resolve the root project graph once in its owner (#141908) 2026-09-07 23:11:28 -07:00
vitest-scoped-config.test.ts fix: keep SQLite worker tests on fork hosts (#146991) 2026-09-13 08:04:53 -07:00
vitest-ui-e2e-config.test.ts perf(test): overlap isolated quota and key UI fixtures (#147529) 2026-09-13 16:30:18 -07:00
vitest-ui-e2e-prebuilt.test.ts fix(update): keep old updaters able to restart the Gateway (#142195) 2026-09-08 10:43:46 -07:00
vitest-ui-package-config.test.ts chore(test): migrate to stable Vitest 5 (#138264) 2026-09-06 04:17:59 +09:00
vitest-unit-config.test.ts
vitest-unit-fast-config.test.ts perf(test): scope fast-test source analysis to CLI selections (#142912) 2026-09-09 00:41:31 -07:00
vitest-unit-paths.test.ts