Skip to content

feat: add OpenExplorerUi restricted action (ExplorerUi, OpenExplorerUiResult) - #451

Merged
popuz merged 2 commits into
mainfrom
feat/open-explorer-ui
Jul 28, 2026
Merged

feat: add OpenExplorerUi restricted action (ExplorerUi, OpenExplorerUiResult)#451
popuz merged 2 commits into
mainfrom
feat/open-explorer-ui

Conversation

@popuz

@popuz popuz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

What

Adds an OpenExplorerUi RPC to the existing RestrictedActionsService so SDK7 scenes can open native explorer UI panels (Map, Settings, Backpack, Camera Reel, Communities, Places, Events) through ~system/RestrictedActions.

  • New enum ExplorerUi — 7 fullscreen sections; EU_SETTINGS holds the zero value so an unset ui field defaults to the least-intrusive panel.
  • New enum OpenExplorerUiResult — the open verdict: UNSPECIFIED, OPENED, WAS_ALREADY_OPEN, REJECTED_NOT_CURRENT_SCENE, REJECTED_FEATURE_DISABLED, REJECTED_NO_USER_GESTURE.
  • New messages OpenExplorerUiRequest { ExplorerUi ui } / OpenExplorerUiResponse { OpenExplorerUiResult open_result } (dedicated response, not the shared SuccessResponse; the request documents a oneof extension point for future per-panel params).
  • rpc OpenExplorerUi(OpenExplorerUiRequest) returns (OpenExplorerUiResponse) on RestrictedActionsService.

Additive and non-breaking. Only proto/decentraland/kernel/apis/restricted_actions.proto changed.

Context

Iteration 1 of the Scene-triggered Explorer UI feature. This is the review PR into main per the protocol contribution flow; #446 carries the exact same change on experimental for Unity testing and will be closed once the main→experimental sync lands.

Testing

Consumed downstream by js-sdk-toolchain (decentraland/js-sdk-toolchain#1485, ~system/RestrictedActions codegen) and unity-explorer (decentraland/unity-explorer#9472, C# implementation with QA test scene) on matching feat/scene-triggered-explorer-ui branches.

🤖 Generated with Claude Code

…iResult)

Same change as #446 (experimental), re-applied onto main for RGL review
per the protocol contribution flow: main is the review target, the
experimental PR stays for Unity testing and closes after the main sync.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown

Test this pull request

  • The @dcl/protocol package can be tested in scenes by running
    npm install "https://sdk-team-cdn.decentraland.org/@dcl/protocol/branch//dcl-protocol-1.0.0-30372336283.commit-717f84c.tgz"

@popuz popuz self-assigned this Jul 24, 2026
@popuz
popuz requested a review from kuruk-mm July 24, 2026 11:59

@kuruk-mm kuruk-mm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks great

@popuz
popuz merged commit 2c475cb into main Jul 28, 2026
3 checks passed
@popuz
popuz deleted the feat/open-explorer-ui branch July 28, 2026 15:23
popuz added a commit to decentraland/js-sdk-toolchain that referenced this pull request Jul 28, 2026
## What
Bumps `@dcl/protocol` to the **main** build `1.0.0-30373157983.commit-2c475cb` ([decentraland/protocol#451](decentraland/protocol#451), merged) so `~system/RestrictedActions` regenerates with:
- `openExplorerUi(body: OpenExplorerUiRequest): Promise<OpenExplorerUiResponse>`
- `ExplorerUi` enum (7 sections: `EU_MAP`, `EU_SETTINGS`, `EU_BACKPACK`, `EU_CAMERA_REEL`, `EU_COMMUNITIES`, `EU_PLACES`, `EU_EVENTS`)
- `OpenExplorerUiResult` enum + `OpenExplorerUiResponse`

Main-based counterpart of #1485 (experimental, pinned a protocol branch build): once this lands and main syncs into experimental, #1485 will be closed.

## Why
Lets SDK7 scenes open native Explorer fullscreen panels from a user gesture and receive a typed verdict. Client implementation: [decentraland/unity-explorer#9472](decentraland/unity-explorer#9472). Test world: `flutterecho.dcl.eth` + `sdk7-test-scenes` parcel `80,-5`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants