feat(echo-venue): settle instantly, add echo-client round trip#256
Merged
Conversation
mfw78
force-pushed
the
feat/m1-echo-venue
branch
2 times, most recently
from
July 8, 2026 03:03
ec68bb0 to
8ae0b2d
Compare
jean-neiverth
approved these changes
Jul 8, 2026
jean-neiverth
left a comment
Collaborator
There was a problem hiding this comment.
minor issue: modules/examples/echo-client/src/lib.rs, on_intent_status - logs the receipt length but not the status value (Settled, Open, etc.). The e2e test assertion m.contains("intent status from venue echo-venue") matches regardless of the actual settlement state. Logging update.status would strengthen both human observability and the test assertion that the module observed a settled transition specifically.
mfw78
force-pushed
the
feat/m1-echo-venue
branch
2 times, most recently
from
July 8, 2026 23:05
9587c6f to
453dd31
Compare
mfw78
force-pushed
the
feat/m1-venue-test
branch
2 times, most recently
from
July 8, 2026 23:29
0b21c28 to
f7d4598
Compare
mfw78
force-pushed
the
feat/m1-echo-venue
branch
2 times, most recently
from
July 9, 2026 02:09
b58db82 to
6f13c4d
Compare
…nd-trip Add echo-client, the strategy half of the echo pair: it submits an opaque body through nexum:intent/pool on every block and logs the intent-status transitions the router fans back. Wire both real components through an integration test that proves the intent core end to end, module -> host router -> echo adapter submit and status back, which is the first-train acceptance path. Settle the echo venue instantly (status now reports settled) so the round-trip reaches a terminal transition, and hold its header derivation to the nexum-venue-test kit so echo-venue doubles as the conformance target alongside its tutorial role. Register echo-client in the workspace, the build recipes, and CI.
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.
What
echo-venue:status()now returnsIntentStatus::Settled(None)instead ofIntentStatus::Open, so the adapter settles instantly on first poll.echo-venue: adds a host#[cfg(test)]conformancemodule that bridges the macro-minted bindgenIntentHeadertonexum-venue-test'sGoldenHeadermirror, holdingderive_headerto a hand-written golden (derive_header_conforms_to_the_published_golden), plus a divergence test with a little-endian amount (divergent_derivation_is_caught_by_the_golden) proving the check rejects a wrong derivation.echo-client(modules/examples/echo-client), the strategy half of the echo pair: declaresrequired = ["pool", "logging"]inmodule.toml, submits an opaque body throughnexum:intent/pooltoecho-venueon every chain-1 block, and logs theintent-statustransitions the router fans back.e2e_echo_module_router_adapter_round_tripincrates/nexum-runtime/src/supervisor/tests.rs: boots the supervisor with the echo-venue adapter and echo-client module, dispatches a chain-1 block, polls the pool router's status transitions, asserts the delivered status isSettled, and asserts the module's own logs record both the submission and the received settled status.justfile: adds abuild-echo-clienttarget;test-e2enow also buildsecho-venueandecho-clientbefore running..github/workflows/ci.yml: addsecho-clientto the wasm build matrix alongsideecho-venue.Cargo.toml/Cargo.lock: registers the newmodules/examples/echo-clientworkspace member.Why
Implements the first-train cut line, proving the intent core end to end with real components on both sides of the router: a real module submits through the host router to a real venue adapter and gets the settled status routed back, with no scripted stand-ins.
Testing
e2e_echo_module_router_adapter_round_tripfail; restoring the fix makes it pass again.AI Assistance
Claude (Opus) used for the implementation.
Closes #234