feat(channels): route plugin events through shared runtime#9143
Draft
JordanTheJet wants to merge 27 commits into
Draft
feat(channels): route plugin events through shared runtime#9143JordanTheJet wants to merge 27 commits into
JordanTheJet wants to merge 27 commits into
Conversation
Keep the canonical tool field keyed by the exported callable name while retaining package, capability, and binding identity on the host-issued scope. Also keep no-Wasmtime builds warning-free.
Document HTTP authority as the intersection of an admitted grant and a capability adapter with a tested host surface. Tool and channel opt in; memory remains HTTP-free.
Expose the runtime feature decision once and consume it in the canonical channel inventory so list/self-test distinguish a compiled plugin family from a configured-but-unavailable one.
JordanTheJet
force-pushed
the
feat/plugin-typed-event-runtime
branch
from
July 18, 2026 11:11
dc15bf3 to
560626a
Compare
Collaborator
Author
|
Updated the draft branch to fix the workspace CI Clippy failure by using ZeroClaw's attributed spawn helper in the event-dispatch acknowledgement test.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
master. This is one review commit directly above feat(plugins): activate logical channel instances #8852; merge the plugin stack bottom-up.ChannelMessage.enhancement,docs,core,channel,runtime,tests,runtime:wasm,risk:high,size:XL.The isolated review slice is one commit and 11 files (
+1,034/-48) above #8852. The generic router stays inzeroclaw-plugins; the channel crate owns only the bounded handoff into its existing dispatcher.Testing (required)
How you can test (when useful)
channel.wasm32-wasip2; no vendor account or external network is required.cargo test --locked -p zeroclaw-channels --lib --features plugins-wasm,cargo test --locked -p zeroclaw-plugins --features plugins-wasm-cranelift --test channel_plugin_e2e, andcargo test --locked --features plugins-wasm-cranelift --test plugin_channel_runtime_e2e.master(before): Plugin channels can be activated but have no production bridge from typed guest events into the shared agent/SOP dispatcher.How I tested
PluginInstanceIdthrough live declaration/owner/sender/agent/SOP resolution, queue reservation, shared dispatch, and the matching acknowledgement. I also confirmed routing fields are not read from guest messages, there is no generic fallback or second SOP pass, and unavailable dispatch never reports success.Security & Privacy Impact (required)
Yes, describe the risk and mitigation: The primary risks are sender/alias spoofing, cross-agent delivery, fallback dispatch, duplicate SOP execution, queue exhaustion, and false success during cancellation. Mitigations are exact structural identity, live fail-closed resolution, typed routes, a bounded queue, one request/one acknowledgement, and a single shared dispatch pass.Compatibility (required)
Noor either surface/floor question isYes: N/A.Rollback (required for medium/high-risk PRs)
git revert dc15bf35before squash merge, or revert the eventual squash commit.plugins-wasm, or disable the plugin channel instance.