Skip to content

fix(openworlds): settings — #317 - #368

Merged
100yenadmin merged 1 commit into
mainfrom
fix/ui-settings
May 30, 2026
Merged

fix(openworlds): settings — #317#368
100yenadmin merged 1 commit into
mainfrom
fix/ui-settings

Conversation

@100yenadmin

@100yenadmin 100yenadmin commented May 30, 2026

Copy link
Copy Markdown
Member

Summary

Fixes a cluster of polish/wiring bugs in the Settings screen (viewer/openworlds/screen-settings.jsx). All changes are additive, scoped to that single file, and reuse patterns already present in it (PreviewBanner, SectionTitle, BrassButton title/onClick).

Addresses #317.

Root cause + what changed, per issue

#317 (1) — Native Actions buttons had no tooltips.
The six buttons in the "Native Actions" panel (Start/Stop Viewer, Start/Stop Provider, Copy Diagnostics, Debug Dashboard) supervise local processes but gave no hint of what they do on hover. BrassButton already forwards an optional title (used elsewhere for action-bar hints), so each button now carries a concise descriptive title=.

#317 (2) — Display section was missing the honest-UI PreviewBanner.
Every other prototype section (Sound, Gameplay, Controls) shows a <PreviewBanner> so players know the controls are decorative. Display was missing one. Display is a mixed section: UI scale is genuinely functional (it drives --ui-scale on <html>, backed by real CSS and persisted via OpenWorldsA11y), while Contrast/Atmosphere/Window are previews. To avoid falsely labelling the live control as dead, I mirrored the Accessibility section's pattern: the live UI-scale slider stays at the top, then a Divider + Not yet wired SectionTitle + PreviewBanner precede the preview controls, with banner copy that explicitly notes UI scale above is live.

#317 (3) — About buttons (Patch notes / Licenses / Report a bug) were unwired.
All three were dead <BrassButton>s with no onClick. They now open in a new tab via window.open(..., "_blank", "noopener,noreferrer"):

  • Report a bughttps://github.com/electricsheephq/WorldOS/issues/new (as specified).
  • Patch notes → the canonical CHANGELOG.md on GitHub.
  • Licenses → the canonical THIRD_PARTY_NOTICES.md on GitHub.

Intentional deviation from the brief (please review): the task asked these two to point at /CHANGELOG.md and /THIRD_PARTY_NOTICES.md. I verified the viewer's HTTP server (viewer/server.py) does not serve repo-root docs — only /openworlds/* assets are reachable, and _openworlds_asset() blocks traversal outside the bundle via target.relative_to(root). A local /CHANGELOG.md link would therefore 404, i.e. a control that looks wired but dead-ends — exactly the "silently lying" UI this screen is built to avoid. Both docs are tracked at the repo root on the default branch, so I wired the buttons to their canonical GitHub source instead. This keeps the change inside the single permitted file (no new server route, no copying docs into the served bundle). If you'd rather serve the docs locally, that's a separate (multi-file) change — happy to follow up.

Plus: appended stack-on-narrow to the top-level grid className (the existing .stack-on-narrow rule in styles.css collapses the 220px + 1fr grid to a single column on narrow viewports).

Testing

No heavy local tests run (per repo policy, CI runs in the cloud). Verified locally: the diff is additive and scoped to one file; delimiters balance; every new construct (PreviewBanner, SectionTitle, Divider, BrassButton with title/onClick, window.open) already exists in this file. CI's babel transform + viewer static tests will exercise the JSX on this PR.

Merge note

Do NOT close on merge — verify on the next build's playtest.

Summary by CodeRabbit

  • Bug Fixes

    • Fixed Changelog, Licenses, and Bug Report links to properly open GitHub pages
  • Style

    • Clarified which Display settings (e.g., Contrast controls) are not yet functional with "Not yet wired" notices
    • Improved descriptive labels for Native Actions panel buttons

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: 2bef92a3-eb62-498a-b7c8-4197f8f1bc7c

📥 Commits

Reviewing files that changed from the base of the PR and between 427051e and 444a3ac.

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

📝 Walkthrough

Walkthrough

Single-file update to ScreenSettings component clarifying functional vs. non-functional settings, wiring external GitHub links in the About section, and adding descriptive titles to Native Actions buttons for accessibility.

Changes

Screen Settings UI Clarification

Layer / File(s) Summary
Display section layout and status indicator
viewer/openworlds/screen-settings.jsx
Main container now explicitly sets display: "grid" in inline styles. A "Not yet wired" divider and banner are inserted before Contrast and other non-functional display toggles, while UI Scale remains live.
About section GitHub external links
viewer/openworlds/screen-settings.jsx
Changelog, third-party licenses, and bug-report buttons now open corresponding GitHub pages via window.open(..., "_blank", "noopener,noreferrer"), replacing placeholder links, with a comment explaining the security approach.
Native Actions button accessibility
viewer/openworlds/screen-settings.jsx
Viewer, provider, and debug action buttons receive descriptive title attributes for improved tooltips and screen-reader support, while keeping existing native action callbacks.

Possibly related issues

  • electricsheephq/WorldOS#317: Changes directly overlap the requested edits to add "Not yet wired" banner, one-line tooltips/titles to action buttons, and wire About links to GitHub in the same file sections.

Possibly related PRs

  • electricsheephq/WorldOS#338: Both PRs extend button title/tooltip wiring—PR 338 adds title props in BrassButton and screen-table.jsx, while this PR adds descriptive titles to Native Actions buttons in screen-settings.jsx.

Poem

🐰 Clarity blooms on the settings screen,
Grid lines drawn, now crisp and clean.
Wired and not? The banner's bright!
Links leap to GitHub, open and light.
Titles whisper secrets small—
Accessibility for one and all!


🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'fix(openworlds): settings — #317' refers to bug fixes in the Settings screen and issue #317, but is vague and does not clearly describe the main changes (tooltip additions, PreviewBanner restoration, About button wiring, UI improvements). Consider using a more descriptive title that highlights the primary fixes, such as 'fix(openworlds): Settings tooltips, PreviewBanner, and About button wiring' to give reviewers immediate clarity on the changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description comprehensively covers all three issue fixes, root causes, implementation details, testing approach, and intentional deviations with clear explanations, though the Licensing/CLA checklist section is not explicitly filled out.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 7631e57 into main May 30, 2026
7 checks passed
@100yenadmin
100yenadmin deleted the fix/ui-settings branch May 30, 2026 10:27
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