Repository navigation
fix(id): serve caps + execution-profile frames in query sessions (#6802) - #6837
Merged
Merged
Conversation
developing-today
Bot
requested review from
a team and
dezren39
as code owners
November 7, 2026 06:31
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
3 tasks
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.
Fixes #6802.
Problem
id world statschains four queries over ONE connection (info_details→caps→execution_profile→metrics), but the host'squery_sessiononly served Join/Info/Metrics/Records/RecordsTicket/DownloadModule —CapsandExecutionProfileInfowere handled only as first-frame one-shots, so the second stats query was refused withexpected a query frameand the verb could never succeed against a live host.Fix (Option 1 from the issue — the protocol-level fix)
query_session(pkgs/id/src/world_session/mod.rs) now serves both read-only frames with exactly the first-frame authorization:Caps { capability }: participant-capability check (join denied),mark_authorized,caps_report()→ServerFrame::Caps(capability report unavailableon error).ExecutionProfileInfo { admin_token, capability }: admin token if present, else participant capability (what the stats verb sends), elseaccess denied; replies with the sameServerFrame::ExecutionProfilepayload as the first-frame handler.On success the session keeps looping (like
Info/Metrics); on denial/error it ends the session, matching the existing query arms. The malformed-reply validation from #6624/#6636 is untouched — the client's reply decoding did not change.Also: the #5238 stats execution test is un-ignored (with its doc comment updated), and the
query_sessiondoc comment now lists the full frame set.Verification (laptop)
cargo test --test cli_integration test_world_stats_executes_against_a_live_world— passes (was#[ignore]d; spawns a live host, one committed input event).cargo test --test cli_integration test_world_logs_caps_ceiling_and_profile_execute— passes (adjacent verbs unchanged).cargo test --lib world_session— 62 passed.Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.