openclaw/test
M1a0 7847e67f8a
plugin-runtime: expose runHeartbeatOnce in system API (#40299)
* plugin-runtime: expose runHeartbeatOnce in system API

Plugins that enqueue system events and need the agent to deliver
responses to the originating channel currently have no way to
override the default `heartbeat.target: "none"` behaviour.

Expose `runHeartbeatOnce` in the plugin runtime `system` namespace
so plugins can trigger a single heartbeat cycle with an explicit
`heartbeat: { target: "last" }` override — the same pattern the
cron service already uses (see #28508).

Changes:
- Add `RunHeartbeatOnceOptions` type and `runHeartbeatOnce` to
  `PluginRuntimeCore.system` (types-core.ts)
- Wire the function through a thin wrapper in runtime-system.ts
- Update the test-utils plugin-runtime mock

Made-with: Cursor

* feat(plugins): expose runHeartbeatOnce in system API (#40299) (thanks @loveyana)

---------

Co-authored-by: George Zhang <georgezhangtj97@gmail.com>
2026-03-25 10:47:01 -07:00
..
fixtures fix: fail closed when subagent steer remap fails 2026-03-24 12:55:43 -05:00
helpers plugin-runtime: expose runHeartbeatOnce in system API (#40299) 2026-03-25 10:47:01 -07:00
mocks fix(ci): stabilize whatsapp extension checks 2026-03-23 15:50:19 -07:00
scripts test: keep vitest on forks only 2026-03-25 12:22:22 -05:00
appcast.test.ts test: strengthen regression coverage and trim low-value checks 2026-03-22 07:38:01 +00:00
architecture-smells.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00
channel-outbounds.ts refactor: add plugin-owned outbound adapters 2026-03-15 23:47:43 -07:00
cli-json-stdout.e2e.test.ts fix(cli): keep json preflight stdout machine-readable 2026-03-02 03:10:02 +00:00
extension-plugin-sdk-boundary.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00
gateway.multi.e2e.test.ts
git-hooks-pre-commit.test.ts fix(test): stub pnpm in pre-commit hook fixture 2026-03-20 01:58:21 +00:00
global-setup.ts
non-isolated-runner.ts test: harden vitest no-isolate coverage 2026-03-22 10:48:21 -07:00
official-channel-catalog.test.ts fix(release): preserve shipped channel surfaces in npm tar (#52913) 2026-03-23 17:39:22 +02:00
openclaw-launcher.e2e.test.ts fix(cli): clarify source archive install failures 2026-03-19 01:49:28 -07:00
openclaw-npm-postpublish-verify.test.ts fix: verify global npm correction installs 2026-03-23 21:04:08 -07:00
openclaw-npm-release-check.test.ts test(release): sync llama peer fixture 2026-03-25 06:06:47 -07:00
openshell-sandbox.e2e.test.ts test: add openshell sandbox e2e smoke 2026-03-15 23:02:36 -07:00
plugin-extension-import-boundary.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00
plugin-npm-release.test.ts fix: ship bundled plugin runtime sidecars 2026-03-23 17:38:08 -07:00
release-check.test.ts fix: ship bundled plugin runtime sidecars 2026-03-23 17:38:08 -07:00
setup.ts refactor: dedupe test helpers and harnesses 2026-03-24 21:41:46 +00:00
test-env.ts
test-runner-manifest.test.ts ci: balance shards and reuse pr artifacts 2026-03-24 04:19:43 +00:00
ui.presenter-next-run.test.ts
vitest-extensions-config.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00
vitest-performance-config.test.ts test: make vitest config tests platform-aware 2026-03-24 22:23:23 -05:00
vitest-scoped-config.test.ts test: keep vitest on forks only 2026-03-25 12:22:22 -05:00
vitest-unit-config.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00
vitest-unit-paths.test.ts refactor: share channel card selectors and layout 2026-03-24 21:44:28 -07:00
web-search-provider-boundary.test.ts refactor: dedupe test and script helpers 2026-03-24 15:48:35 +00:00