fix(openclaw): restore plugin discovery and lifecycle hooks#943
Conversation
Assisted-by: OpenAI Codex:gpt-5
|
Hi. The manifest contract and the allowConversationAccess change are clearly correct and necessary for OpenClaw 2026.7.1+. Those parts are good. I want to understand the removal of The PR description says the old behavior was "asynchronous dynamic tool registration that OpenClaw could not activate" and that tools "were absent from OpenClaw's runtime registry." That is the part I need more detail on. What specifically failed. Did OpenClaw 2026.7.1+ drop support for dynamically registered tools entirely, or did the registration happen at a point in the lifecycle where OpenClaw had already snapshot the tool list. If it is the latter, the fix could be to register the proxy tools during the new The reason this matters: the new Separately, the two new registration modes ( Can you share what specifically broke with the dynamic registration on OpenClaw 2026.7.1+ so I can tell whether the proxy removal is forced or a workaround. |
|
Thanks — that is a fair question. I went back and reproduced the old behavior against the actual OpenClaw loaders rather than relying only on the current implementation. The previous marketplace registration started an asynchronous refresh during the plugin’s synchronous registration phase. Once that phase returns, OpenClaw closes the registration API. I replayed the old adapter against OpenClaw 2026.5.22, the locally installed 2026.7.1 release, and the current 2026.7.2 reference. In each case, the adapter logged that one mocked marketplace tool had been registered, but that tool was absent from OpenClaw’s runtime registry. There were no diagnostics because calls made after the registration window are silently ignored by the guarded API. So this was not a dynamic-registration feature that OpenClaw specifically removed in 2026.7.1. The old asynchronous approach was already ineffective on the adapter’s previously declared minimum version, 2026.5.22. OpenClaw still supports registering tools synchronously while the registration window is open, but it does not support adding them asynchronously afterward. Moving the existing helper into I agree that removing the intended first-class proxy surface is worth calling out. However, on the supported versions tested here, it does not remove working runtime behavior: the proxy tools were already missing despite the successful registration log. The declared On the PR type: I would keep this as I’ll update the PR description to state the verified version range and the synchronous-registration constraint more precisely. |
|
Thanks Rémi, appreciate the thorough repro. That clears it up. Going to merge this. |
Summary
Restore Signet plugin discovery, static tool exposure, and lifecycle capture
with OpenClaw 2026.7.1+.
OpenClaw now performs side-effect-free discovery passes, requires exact tool
contracts, and blocks conversation-aware hooks for non-bundled plugins unless
the operator explicitly grants access. Without those contracts, Signet's tools
and
agent_endtranscript capture were absent from the active runtime.Changes
discoveryandtool-discoveryregistration modes without runtime side effectsmcp_server_listandmcp_server_callagent_end>=2026.7.1Type
feat— new user-facing feature (bumps minor)fix— bug fixrefactor— restructure without behavior changechore— build, deps, config, docsperf— performance improvementtest— test coveragePackages affected
@signet/core@signet/daemon@signet/cli/ dashboard@signet/sdk@signet/connector-*@signet/webpredictor@signetai/signet-memory-openclawScreenshots
N/A — no UI changes.
PR Readiness (MANDATORY)
INDEX.md+dependencies.yaml)The unchecked readiness item is due only to the repository-wide
bun run lintbaseline. Typecheck, focused tests, builds, and scoped Biomechecks all pass. This change adds no data queries, admin routes, or mutation
endpoints; the corresponding scoping and security checks are N/A after review.
Migration Notes (if applicable)
The configuration patch is idempotent and preserves existing hook policy.
Rust parity is N/A because this change is limited to the OpenClaw integration.
Rollback consists of reverting this commit; older OpenClaw runtimes remain
supported through the explicit legacy runtime path.
Testing
bun testpassesbun run typecheckpassesbun run lintpassesAdditional validation:
@signetai/signet-memory-openclawbuild passes@signet/connector-openclawbuild passesallowConversationAccess: truebun run lintreports 2,329 pre-existing repository-wide formatting errorsAI disclosure
Assisted-bytags in commits)Notes
OpenClaw requires exact
contracts.toolsdeclarations and blocksconversation-aware hooks for non-bundled plugins unless
plugins.entries.signet-memory-openclaw.hooks.allowConversationAccessisexplicitly enabled.
The previous asynchronous marketplace expansion logged tools as registered,
but those tools were absent from OpenClaw's runtime registry. Marketplace
access now remains behind the declared
mcp_server_listandmcp_server_calltools.