Skip to content

feat: add OpenExplorerUi restricted action (ExplorerUi, OpenResult)#446

Draft
popuz wants to merge 11 commits into
experimentalfrom
feat/scene-triggered-explorer-ui
Draft

feat: add OpenExplorerUi restricted action (ExplorerUi, OpenResult)#446
popuz wants to merge 11 commits into
experimentalfrom
feat/scene-triggered-explorer-ui

Conversation

@popuz

@popuz popuz commented Jul 15, 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_UNSPECIFIED zero value).
  • New enum OpenResult — open verdict (OR_OPENED + rejection reasons). OR_REJECTED_ALREADY_OPEN is reserved for a later iteration.
  • New messages OpenExplorerUiRequest { ExplorerUi ui } / OpenExplorerUiResponse { OpenResult open_result } (dedicated response, not the shared SuccessResponse).
  • 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 (opens a panel, returns an open verdict; always OR_OPENED in the explorer for now, no event channel yet).

Testing

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

🤖 Generated with Claude Code

Adds an OpenExplorerUi RPC to the existing RestrictedActionsService so SDK7
scenes can open native explorer UI panels. Introduces the ExplorerUi enum
(7 fullscreen sections) and a dedicated OpenExplorerUiResponse carrying an
OpenResult verdict (opened / rejected reasons). Additive, non-breaking.

Part of the Scene-triggered Explorer UI feature (iteration 1).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@popuz popuz self-assigned this Jul 15, 2026
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

Test this pull request on NPM or Yarn

  • The @dcl/protocol package can be tested in scenes by running the following NPM command:
    npm install "https://sdk-team-cdn.decentraland.org/@dcl/protocol/branch//dcl-protocol-1.0.0-30037355888.commit-0e7de00.tgz"
  • The @dcl/protocol package can be tested in scenes by running the following YARN command:
    yarn add "https://sdk-team-cdn.decentraland.org/@dcl/protocol/branch//dcl-protocol-1.0.0-30037355888.commit-0e7de00.tgz"

popuz and others added 4 commits July 15, 2026 13:55
… prefix)

Naming-only change for the openExplorerUi restricted action. Renames the
verdict enum OpenResult -> OpenExplorerUiResult, prefixes its values OR_ -> OEUR_,
and updates the OpenExplorerUiResponse field to open_result. ExplorerUi/EU_* unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Enum values are now bare names (UNSPECIFIED/OPENED/REJECTED_*) instead of the
OEUR_ prefix. Enum type OpenExplorerUiResult and ExplorerUi/EU_* unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Comment-only. Records the additive-evolution intent for ExplorerUi and
OpenExplorerUiResult, the oneof extension point for future per-panel params
on OpenExplorerUiRequest, and that OpenExplorerUiResponse carries only the
open verdict (post-open events belong to a separate future event channel).
No wire/semantic change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@pravusjif pravusjif 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.

maybe the UNSPECIFIED values could be removed? I can't think of their use case, maybe only the response one makes sense

Additive enum value (=5) for the gesture-gate on openExplorerUi. Existing values
unchanged. Rejected when the call did not originate from a user gesture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@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

Comment thread proto/decentraland/kernel/apis/restricted_actions.proto Outdated
Co-authored-by: Mateo Miccino <mateomiccino@gmail.com>
Signed-off-by: Vitaly Popuzin <35366872+popuz@users.noreply.github.com>
@popuz

popuz commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

maybe the UNSPECIFIED values could be removed? I can't think of their use case, maybe only the response one makes sense

ah, you are regarding EU_UNSPECIFIED. Good point, I will change it.

popuz and others added 4 commits July 23, 2026 21:01
…FIED

Remove EU_UNSPECIFIED and renumber ExplorerUi contiguously so EU_SETTINGS holds 0,
making the least-intrusive panel the default for an unset ui field. Trim standalone
doc-comment lines on ExplorerUi, OpenExplorerUiResult and the OpenExplorerUi rpc.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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