Skip to content

fix(openworlds): Resume→play banner mints a DM in the native app (Addresses #356) - #359

Merged
100yenadmin merged 1 commit into
mainfrom
fix/356-banner-mint-dm
May 30, 2026
Merged

fix(openworlds): Resume→play banner mints a DM in the native app (Addresses #356)#359
100yenadmin merged 1 commit into
mainfrom
fix/356-banner-mint-dm

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented May 30, 2026

Copy link
Copy Markdown
Member

Release-blocker #356 — a fresh player cannot start play in the built app

Found by the first honest baseline against the BUILT dist/WorldOS.app (build_sha 4267247, v1.0.3). The launcher's prominent "RESUME → PLAY" ContinueBanner called enterPlayable, which only did setState + onNavigate("table") — it never minted a DM. On a canResume:true, live:false save in the native app there is no DM → the read-only director's view (can_act:false). This is the owner's exact complaint.

Fix

enterPlayable now routes through startPlay(target.world) (the existing startProviderSession bridge path that onResume uses) when a native bridge exists AND the campaign isn't already live. The already-live and browser-preview cases still drop straight into the table.

Verification (per the operating loop)

Do NOT close on merge. Close only when the NEXT build's .app baseline confirms a fresh newbie clicks Resume→play and reaches a live, can_act:true session (completes the intro flow). I will re-run the baseline after this merges.

Summary by CodeRabbit

Bug Fixes

  • Fixed campaign resumption on native apps when campaigns are not yet marked as live. The application now properly initializes the session before navigating to gameplay.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ba063fab-05f0-49e2-9771-65327c84db16

📥 Commits

Reviewing files that changed from the base of the PR and between 4267247 and 3672c2c.

📒 Files selected for processing (1)
  • viewer/openworlds/screen-launcher.jsx

📝 Walkthrough

Walkthrough

The enterPlayable function in screen-launcher.jsx now detects a native-app edge case: when the native bridge is active and a campaign can be resumed but is not yet marked live, it starts a provider session via startPlay instead of immediately navigating to the table. Already-live campaigns and browser contexts retain the prior navigation behavior.

Changes

Native app campaign resume flow

Layer / File(s) Summary
Native bridge live-campaign resume condition
viewer/openworlds/screen-launcher.jsx
The enterPlayable function adds an early-return branch: when the native bridge exists and target.live is false, it calls startPlay(target.world) to mint a provider session before table navigation. For live campaigns or non-native contexts, the prior behavior of navigating directly to "table" is preserved.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

  • electricsheephq/WorldOS#356: This PR directly addresses the issue where enterPlayable did not start a provider session when running with the native bridge for resumable campaigns.

Possibly related PRs

  • electricsheephq/WorldOS#328: Both PRs update the same enterPlayable function in screen-launcher.jsx to refine bridge-based campaign-resume routing logic.

Poem

🐰 A campaign lies dormant, not yet alive,
But the native bridge knows how to revive,
startPlay awakens the session anew,
Before the table draws into view!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes a clear summary of the bug, the fix applied, and verification steps. However, the Licensing/CLA section required by the template is completely missing. Add the Licensing/CLA checklist section with the three required checkboxes to comply with the repository's contribution requirements.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: fixing an issue where Resume→play in the native app wasn't creating a director message, with reference to the related issue #356.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

@100yenadmin
100yenadmin merged commit 3f946e7 into main May 30, 2026
7 checks passed
@100yenadmin
100yenadmin deleted the fix/356-banner-mint-dm branch May 30, 2026 10:01
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.

1 participant