openclaw/src
w33d dd149f01ba
fix: stateful plugin hooks and tools stay aligned after scoped loads (#108110)
* fix(plugins): align hook and tool registrations

Reuse gateway-owned plugin registrations for matching hooks and tools while loading only missing tool owners from narrower runtime scopes.\n\nCo-authored-by: w33d <w33d@steadholme.local>

* test(plugins): cover mixed registry tool owners

Verify gateway-pinned and compatible active registrations compose without another plugin load.

Co-authored-by: w33d <w33d@steadholme.local>

* refactor(plugins): keep pinned registry lookup internal

Reuse the existing runtime-state contract so hook and tool ownership does not expand the Plugin SDK surface or treat unpinned active registries as Gateway owners.

* test(plugins): complete hook context fixture

Supply the required tool name in the stateful hook ownership regression context.

* chore: leave contributor release note in PR

Normal contributor PRs do not modify the release-owned changelog; the PR body retains the release note and attribution.

* fix(plugins): align partial registry owners

* fix(plugins): preserve scoped tool diagnostics

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: w33d <w33d@steadholme.local>
2026-07-15 07:12:43 -07:00
..
acp test: preserve logging exports in startup mocks (#103582) 2026-07-15 06:11:30 -07:00
agents refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
audit refactor(audit): remove internal test exports (#108111) 2026-07-15 00:30:16 -07:00
auto-reply refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
bindings
bootstrap
channels feat: add ClickClack setup inputs 2026-07-15 13:05:10 +01:00
chat
cli test: preserve logging exports in startup mocks (#103582) 2026-07-15 06:11:30 -07:00
commands refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
commitments fix(commitments): keep heartbeats responsive with large queues (#105780) 2026-07-15 03:58:03 -07:00
compat refactor(compat): trim internal naming exports (#107758) 2026-07-14 13:46:59 -07:00
config refactor(sessions): split session accessor by ownership (#108247) 2026-07-15 06:47:29 -07:00
context-engine refactor(context-engine): trim internal registry exports (#108179) 2026-07-15 01:52:20 -07:00
cron refactor(agents): privatize runtime test seams (#108295) 2026-07-15 05:36:35 -07:00
daemon chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
docs
fleet chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
flows fix: preserve TUI restore state without JSON races (#108058) 2026-07-14 23:46:22 -07:00
gateway refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
hooks test(hooks): isolate Gmail setup module cache (#108150) 2026-07-15 01:18:23 -07:00
i18n
image-generation refactor(media): trim runtime exports (#107560) 2026-07-14 06:47:49 -07:00
infra test: tighten async polling intervals (#108301) 2026-07-15 06:14:54 -07:00
interactive chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
link-understanding
llm chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage (#108261) 2026-07-15 04:15:23 -07:00
logging refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
mcp refactor(mcp): trim internal server exports (#108076) 2026-07-14 23:47:38 -07:00
media refactor(media): trim internal exports (#107756) 2026-07-14 13:41:04 -07:00
media-generation
media-understanding refactor(github-copilot): own runtime auth in provider (#108096) 2026-07-15 00:19:44 -07:00
memory
memory-host-sdk
model-catalog
music-generation refactor(music-generation): privatize mode resolver (#108132) 2026-07-15 00:59:15 -07:00
node-host refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
pairing
plugin-sdk chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage (#108261) 2026-07-15 04:15:23 -07:00
plugin-state refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
plugins fix: stateful plugin hooks and tools stay aligned after scoped loads (#108110) 2026-07-15 07:12:43 -07:00
process refactor(qa): migrate Matrix scenarios into QA Lab (#103589) 2026-07-15 01:22:20 -07:00
provider-runtime
proxy-capture refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
realtime-transcription refactor(media): trim runtime exports (#107560) 2026-07-14 06:47:49 -07:00
routing chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
scripts chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
secrets refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
security feat(agents): narrow gateway tool to read-only config 2026-07-15 01:56:31 -07:00
sessions refactor(sessions): trim internal exports (#108191) 2026-07-15 02:03:06 -07:00
shared docs(shared): clarify ignore anchoring 2026-07-14 12:19:39 -07:00
skills refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
snapshot chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
state refactor(state): move managed image records to SQLite (#108290) 2026-07-15 06:14:10 -07:00
status refactor(agents): trim CLI and transport export seams (#108309) 2026-07-15 14:02:29 +01:00
system-agent refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
talk refactor(talk): remove consult test dependency seam (#107432) 2026-07-14 04:49:11 -07:00
tasks fix: clear stale task and OAuth doctor warnings (#108123) 2026-07-15 01:03:53 -07:00
test-helpers
test-utils refactor(agents): privatize runtime test seams (#108295) 2026-07-15 05:36:35 -07:00
tools
trajectory chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
transcripts
tts fix: render assistant transcript headers safely (#99404) 2026-07-14 02:25:37 -07:00
tui fix: preserve TUI restore state without JSON races (#108058) 2026-07-14 23:46:22 -07:00
types refactor(deps): use native web-push types 2026-07-14 11:37:40 -07:00
utils refactor(json): share JSON5 fallback parsing 2026-07-14 01:35:48 -07:00
video-generation chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
web-fetch
web-search chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
wizard feat: add ClickClack setup copy 2026-07-15 13:05:10 +01:00
worker chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
browser-lifecycle-cleanup.test.ts
browser-lifecycle-cleanup.ts
docker-build-cache.test.ts
docker-image-digests.test.ts
docker-setup.e2e.test.ts chore: enforce max-lines suppression ratchet (#107315) 2026-07-14 09:27:02 -07:00
dockerfile.test.ts
entry.compile-cache.test-support.ts refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
entry.compile-cache.test.ts refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
entry.compile-cache.ts refactor(deadcode): privatize core test seams (#108325) 2026-07-15 06:37:40 -07:00
entry.respawn.test.ts
entry.respawn.ts
entry.root-help-fast-path.test.ts
entry.test.ts
entry.ts
entry.version-fast-path.test.ts
entry.version-fast-path.ts
extensionAPI.ts
global-state.ts
globals.test.ts
globals.ts
index.test.ts
index.ts
install-sh-version.test.ts
library.test.ts
library.ts
logger.test.ts
logger.ts
logging.ts
param-key.ts
plugin-activation-boundary.test.ts
poll-params.test.ts
poll-params.ts
polls.test.ts
polls.ts
runtime.test.ts
runtime.ts
utils.test.ts
utils.ts
version.test.ts
version.ts