Skip to content

feat: sync WebVNC themes with system settings#150

Merged
steipete merged 4 commits into
mainfrom
sync-webvnc-system-theme
May 23, 2026
Merged

feat: sync WebVNC themes with system settings#150
steipete merged 4 commits into
mainfrom
sync-webvnc-system-theme

Conversation

@steipete
Copy link
Copy Markdown
Contributor

Summary

  • sync portal theme toggle with system, dark, and light modes
  • seed and apply XFCE, GTK, GSettings, and terminal dark theme settings for Linux WebVNC desktops
  • cover bootstrap and portal theme behavior in tests

Verification

  • autoreview: clean, no accepted/actionable findings
  • go test ./internal/cli ./internal/providers/localcontainer
  • npm run format:check --prefix worker
  • npm run check --prefix worker
  • npm test --prefix worker -- bootstrap portal-theme
  • git diff --check

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 23, 2026

Codex review: needs real behavior proof before merge.

Latest ClawSweeper review: 2026-05-23 21:22 UTC / May 23, 2026, 5:22 PM ET.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The PR adds a system/dark/light portal theme mode, seeds Linux WebVNC desktop dark-theme settings in cloud-init and local-container bootstrap paths, updates tests, and adds a changelog entry.

Reproducibility: not applicable. as a feature PR rather than a bug report. Source inspection confirms the intended generated bootstrap and portal markup changes, but real lease proof is still needed for the runtime desktop behavior.

PR rating
Overall: 🦪 silver shellfish
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Summary: The patch shape looks coherent and the earlier assertion conflict is resolved, but missing real behavior proof keeps it below merge-ready quality.

Rank-up moves:

  • Add redacted real WebVNC proof from a fresh Linux desktop lease showing the seeded desktop/terminal theme and the portal system/dark/light cycle.
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Real behavior proof
Needs real behavior proof before merge: The PR body lists tests only and does not include after-fix proof from an actual WebVNC/Linux desktop lease; screenshots, recordings, copied terminal output, linked artifacts, or redacted logs would satisfy this gate if they show the changed behavior. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Mantis proof suggestion
A visible WebVNC smoke would materially prove the desktop and portal theme behavior that source and string tests cannot show. A maintainer can ask Mantis to capture proof by posting a new PR comment that starts with the OpenClaw Mantis account mention, followed by:

visual task: verify a fresh WebVNC lease opens with dark XFCE/terminal styling and the portal theme toggle cycles system, dark, and light correctly.

Risk before merge

  • There is still no posted after-fix proof from a real WebVNC/Linux desktop lease, so the XFCE, GTK, GSettings, terminal, and portal theme behavior may differ from the string-level tests in a live desktop session.

Maintainer options:

  1. Decide the mitigation before merge
    Land the branch after redacted live WebVNC proof shows a fresh Linux desktop lease with the seeded desktop/terminal theme and the portal toggle cycling system, dark, and light modes.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge
Contributor-provided real behavior proof is the remaining merge gate; there is no narrow automated code repair to queue from this review.

Security
Cleared: The diff changes generated shell bootstrap and portal inline script behavior, but I found no new dependency, secret exposure, permission broadening, or external code source.

Review details

Best possible solution:

Land the branch after redacted live WebVNC proof shows a fresh Linux desktop lease with the seeded desktop/terminal theme and the portal toggle cycling system, dark, and light modes.

Do we have a high-confidence way to reproduce the issue?

Not applicable as a feature PR rather than a bug report. Source inspection confirms the intended generated bootstrap and portal markup changes, but real lease proof is still needed for the runtime desktop behavior.

Is this the best way to solve the issue?

Yes, the current branch is a reasonable narrow implementation path for this feature: it updates both coordinator-generated cloud-init and local-container desktop bootstrap paths plus the portal UI. The remaining gap is live behavior proof, not a better obvious code direction.

Label justifications:

  • P3: This is a low-risk user-visible WebVNC and portal polish feature, with the remaining blocker being proof rather than a reported production regression.
  • rating: 🦪 silver shellfish: Current PR rating is 🦪 silver shellfish because proof is 🧂 unranked krab, patch quality is 🐚 platinum hermit, and The patch shape looks coherent and the earlier assertion conflict is resolved, but missing real behavior proof keeps it below merge-ready quality.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body lists tests only and does not include after-fix proof from an actual WebVNC/Linux desktop lease; screenshots, recordings, copied terminal output, linked artifacts, or redacted logs would satisfy this gate if they show the changed behavior. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Acceptance criteria:

  • go test ./internal/cli ./internal/providers/localcontainer
  • npm run format:check --prefix worker
  • npm run check --prefix worker
  • npm test --prefix worker -- bootstrap portal-theme
  • git diff --check

What I checked:

  • PR head changes portal theme behavior: The PR head adds a system theme icon, data-theme-source state, system/dark/light cycling, and system color-scheme handling in the portal inline script. (worker/src/portal.ts:2493, bb7e1807e4e2)
  • PR head changes Linux desktop bootstrap: The PR head writes a crabbox-configure-desktop-theme helper that seeds XFCE, GTK, GSettings, and terminal dark-theme settings for cloud-init Linux desktop leases. (internal/cli/bootstrap.go:634, bb7e1807e4e2)
  • PR head changes local-container desktop startup: The local-container bootstrap path writes matching XFCE/GTK/terminal theme files and reapplies xfconf/gsettings values after the Xvfb/XFCE session starts. (internal/providers/localcontainer/backend.go:1071, bb7e1807e4e2)
  • Earlier fleet assertion conflict is addressed on the branch: The PR head updates the fleet portal assertions to expect the new hidden icon set and system-source selector, so the earlier source-level test conflict no longer remains in the current diff. (worker/test/fleet.test.ts:1655, bb7e1807e4e2)
  • Current main does not already contain the central change: Current main still has the old two-state portal theme markup and no desktop theme helper or Adwaita-dark seeding, so the PR is not redundant with main. (worker/src/portal.ts:2492, 6adc3f9fb2d2)
  • Patch hygiene check: The diff check reported no whitespace errors for the PR range I inspected. (bb7e1807e4e2)

Likely related people:

  • steipete: Current main blame and history for the portal theme toggle, Linux desktop bootstrap, and local-container desktop paths point to Peter Steinberger; the PR author also appears in that prior merged history, so this is a real area-history signal rather than only PR authorship. (role: recent area contributor; confidence: high; commits: 32804b6c4e51, fe23c387cbef, 6caae5246f02; files: worker/src/portal.ts, internal/cli/bootstrap.go, worker/src/bootstrap.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 6adc3f9fb2d2.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels May 23, 2026
@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented May 23, 2026

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.

Where did the egg go?
  • The egg game starts only after the PR passes the real-behavior proof check.
  • Before that, no creature or rarity is rolled. The treat waits for real proof.
  • This is still just collectible flavor: proof affects review readiness, not creature quality.

@steipete steipete merged commit c75e95a into main May 23, 2026
11 checks passed
@steipete steipete deleted the sync-webvnc-system-theme branch May 23, 2026 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant