[do not review] test vehicle: experimental twin of #455 - #456
Draft
popuz wants to merge 2 commits into
Draft
Conversation
Adds the PBExplorerUiEventsResult component (ecs_component_id 1220) so scenes can observe when fullscreen explorer panels open and close, and relocates the ExplorerUi enum out of the restricted-actions API into decentraland/sdk/components/common/explorer_ui.proto. The relocation is required, not cosmetic. js-sdk-toolchain's RPC API generator (scripts/rpc-api-generation/index.ts:203) hardcodes decentraland/sdk/components/common/ as the only path whose proto types collapse to a single nominal TypeScript identity. With the enum left in restricted_actions.proto a scene would hold two incomparable ExplorerUi types -- one from ~system/RestrictedActions, one from @dcl/ecs. After the move, restricted_actions.gen.ts and explorer_ui_events_result.gen.ts both import ExplorerUi from the same generated module. The move and the new component must ship together: relocating the enum without a component proto importing it leaves it ungenerated in @dcl/ecs and re-declared in apis.d.ts, which is a regression. Wire compatibility is untouched -- field number 1, values 0-6, and wire types are all unchanged. buf breaking with WIRE_JSON (the policy configured in proto/buf.yaml) passes. Expected red check: validate-compatibility runs scripts/check-proto-compabitility.sh, which compares fully-qualified type names textually and is stricter than the repo's configured buf policy. It reports a source-level break for the `ui` field. The break is real but has zero consumers -- openExplorerUi merged 2026-07-28 and the latest stable @dcl/sdk (7.25.0, published 2026-07-27) does not contain the API, so only next/experimental tarballs are affected. A team override is requested rather than suppressing the check. Co-Authored-By: Claude <noreply@anthropic.com>
Test this pull request on NPM or Yarn
|
`ui` and `event` are independent axes, so every pair of the two is representable. The previous comment invited per-panel feature events into the same oneof at field 20+, which would have made pairs such as `ui = EU_MAP` carrying a backpack event perfectly legal, and pushed the burden of recognising and ignoring them onto every consumer. State the rule instead: a variant belongs in this oneof only if it is meaningful for every value of `ui`. Panel-specific events get their own result component, where the component identity carries the panel and the contradiction cannot be expressed. That also matches how the rest of the protocol scales -- PBUiDropdownResult, PBUiInputResult, PBTriggerAreaResult, PBVideoEvent and PBAudioEvent are separate components rather than variants of one shared event bus. Comment-only change; the wire format is untouched.
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.
This is the experimental-based twin of #455, opened solely so CI publishes a testable
@dcl/protocoltarball that js-sdk-toolchain and unity-explorer can pin. A main-based tarball is unusable downstream:experimentalcarries five protosmainlacks (common/options.proto,common/quantization_example.proto,pulse/pulse_{client,server,shared}.proto), and unity-explorer generatesPulseClient/PulseServerfrom the Pulse ones, so a main-based pin would silently drop them.The commit here is a clean cherry-pick of
4763c06ontoorigin/experimental— no content differs from #455. Review belongs on #455, not here.This PR will be closed unmerged once the rolling
chore: sync main to experimentalPR carries #455 across. TheValidate compatibilityfailure is the same single pre-existing one as on #455 (the check always compares against themainzip).