Skip to content

feat: add the Lobster theme plugin - #1

Merged
steipete merged 2 commits into
mainfrom
lobster-theme
Sep 21, 2026
Merged

steipete merged 2 commits into
mainfrom
lobster-theme

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary

Adds plugins/lobster-theme, the Lobster theme plugin for the OpenClaw Control UI, on the same pattern as redhat-theme:

  • themes/lobster.json: the portable palette (dark: deep-sea black-teal, warm sand text, ember #f5764a, teal #3fd1c0; light: sun-bleached sand, cooked-shell red #b83c16, sea-glass #0f8b83), Space Grotesk / JetBrains Mono. Works on any Gateway that lists plugin themes.
  • Native polish behind Settings → Labs → Custom plugin UI: src/control-ui.css carries the hand-tuned token set with its WCAG AA audit and the pincer-tip composer rule (corner-shape: scoop scoop round round, plus the --chat-composer-corner-shape token that newer Gateways read); src/control-ui.ts links Space Grotesk and Fraunces from Google Fonts and injects the line-art lobster artwork (256-color lossless WebP, ~18 KB per mode, embedded as a string because the bundler refuses CSS data URLs).
  • README with previews, a root README row, and a CHANGELOG.md with an Unreleased entry.

Evidence

Installed from the packed tarball into an isolated local Gateway (openclaw 2026.9.5 from source, OPENCLAW_STATE_DIR in a scratch directory, Labs flag on), then selected from the live Appearance page in dark and light: data-theme-id resolves to lobster-theme/lobster, --bg comes from the plugin tokens, the shell background is the injected data-URL artwork, Space Grotesk and Fraunces resolve through the Google Fonts link. The previews in the plugin README are those captures. openclaw plugins validate --json is clean and pnpm build writes the Control UI assets and stamps the manifest.

Installing straight from the workspace directory is rejected by the installer's dependency-boundary scan (pnpm's node_modules/openclaw symlink escapes the install root); pnpm pack and installing the tarball works, which is also how it will go onto team.openclaw.ai.

Related: openclaw/openclaw#154583 adds the --chat-composer-corner-shape token this plugin sets.

Line-art lobster background pair (editable SVG sources plus 256-color lossless WebP exports, ~18 KB per mode) and the README preview captures for the upcoming Lobster theme plugin.
Deep-sea dark and sun-bleached light Lobster palettes (ember and teal), Space Grotesk controls and Fraunces chat prose, one large line-art lobster background, and a composer whose top corners scoop like pincer tips. The portable palette works on any Gateway that lists plugin themes; the native polish (hand-tuned tokens, artwork, fonts from Google Fonts, composer rule) loads behind Settings → Labs → Custom plugin UI.
@clawsweeper clawsweeper Bot added P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Sep 21, 2026
@clawsweeper

clawsweeper Bot commented Sep 21, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed September 21, 2026, 4:58 AM ET / 08:58 UTC.

ClawSweeper review

What this changes

Adds a Lobster theme plugin with dark and light palettes, optional fonts, background artwork, shaped chat-composer corners, and preview documentation.

Merge readiness

⛔ Blocked before merge - 3 items remain

The plugin is distinct from current main and fits Tidepool’s stated purpose. Keep it open for a corrected installation guide and proof covering the remaining native polish.

Priority: P3
Reviewed head: b8e1facbef18eecfbf513bb67d3edac0c9175371

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) A focused plugin with useful live screenshots, a correctable installation guide, and incomplete proof of its native chat styling.
Proof confidence 🦐 gold shrimp (3/6) Needs stronger real behavior proof before merge: The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review. 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.
Patch quality 🐚 platinum hermit (4/6) 1 actionable review finding remain.

Verification

Check Result Evidence
Real behavior Needs proof Needs stronger real behavior proof before merge: The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review. 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.
Evidence reviewed 9 items Pinned introduction and current-main necessity: The introduced delta adds the Lobster package; the pinned main tree contains only the Red Hat plugin. GitHub lists this PR as open, and the release-list read returned no releases. There is no verified merged replacement.
Repository scope and existing pattern: README explicitly welcomes experimental themes and self-contained plugins. Lobster follows the existing Red Hat plugin’s feature contract, native activation, build commands, and theme-qualified styling; it introduces no host plugin API.
Installation instructions contradict recorded result: The new README recommends installing the workspace directory. The captured PR body explicitly reports that this fails because the pnpm dependency symlink escapes the installation root, and identifies packing and installing the tarball as the successful path. The live body read matched that supplied account.
Findings 1 actionable finding [P2] Document the working tarball installation path
Security None None.

How this fits together

Tidepool distributes experimental OpenClaw plugins. This plugin supplies a selectable Control UI palette and, when Custom plugin UI is enabled, loads additional browser styling and artwork.

flowchart TD
  A[Installed Lobster package] --> B[Theme palette registry]
  B --> C[Appearance selection]
  C --> D[Dark or light palette]
  A --> E{Custom plugin UI enabled}
  E -->|Yes| F[Fonts and native styling]
  D --> G[Control UI appearance]
  F --> G
Loading

Before merge

  • Add real behavior proof - Needs stronger real behavior proof before merge: The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review. 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.
  • Document the working tarball installation path (P2) - The PR’s validation account says installing this pnpm workspace directory is rejected because its OpenClaw dependency symlink escapes the install root, but this new install guide recommends that exact path. Readers following it cannot reach theme selection. Replace it with explicit package-directory packing and tarball-install commands matching the successful validation.
  • Complete next step (P2) - Correct the installation guide and add the remaining real-Gateway chat and font-loading evidence before merge.

Findings

  • [P2] Document the working tarball installation path — plugins/lobster-theme/README.md:30-31
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Production and test growth Runtime source and theme data +299 lines; tests +0 The growth implements the new palette and native polish; manifests, documentation, and artwork assets are excluded.

Technical review

Best possible solution:

Ship the self-contained theme with reproducible tarball installation instructions and demonstrated native polish on a supported Gateway.

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

Yes for the documentation finding: following the new workspace-install command reaches the failure explicitly recorded in the PR’s own validation account. The reviewer did not execute installation.

Is this the best way to solve the issue?

Yes, the existing self-contained theme-plugin pattern fits Tidepool; the installation guide should use the successful packed-artifact workflow.

Full review comments:

  • [P2] Document the working tarball installation path — plugins/lobster-theme/README.md:30-31
    The PR’s validation account says installing this pnpm workspace directory is rejected because its OpenClaw dependency symlink escapes the install root, but this new install guide recommends that exact path. Readers following it cannot reach theme selection. Replace it with explicit package-directory packing and tarball-install commands matching the successful validation.
    Confidence: 0.99

Overall correctness: patch is incorrect
Overall confidence: 0.96

AGENTS.md: not found in the target repository.

Codex review notes: model internal, reasoning medium; reviewed against b52e56072ee6.

Labels

Label changes:

  • add P3: This is an optional visual theme with a bounded installation-documentation defect, rather than a broken core workflow.
  • add proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review. 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.

Label justifications:

  • P3: This is an optional visual theme with a bounded installation-documentation defect, rather than a broken core workflow.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review. 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.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The inspected local-Gateway screenshots prove palette selection and injected artwork, but only show Appearance settings: the changed composer corners and Fraunces chat prose remain unseen, and the external-font claim lacks diagnostic output. Add a redacted chat capture plus console or network output showing the loaded fonts; redact private endpoints and credentials. Updating the PR body should trigger review, or a maintainer can request @clawsweeper re-review.

Evidence

What I checked:

  • Pinned introduction and current-main necessity: The introduced delta adds the Lobster package; the pinned main tree contains only the Red Hat plugin. GitHub lists this PR as open, and the release-list read returned no releases. There is no verified merged replacement. (plugins/lobster-theme/package.json:2, b8e1facbef18)
  • Repository scope and existing pattern: README explicitly welcomes experimental themes and self-contained plugins. Lobster follows the existing Red Hat plugin’s feature contract, native activation, build commands, and theme-qualified styling; it introduces no host plugin API. (README.md:3, b8e1facbef18)
  • Installation instructions contradict recorded result: The new README recommends installing the workspace directory. The captured PR body explicitly reports that this fails because the pnpm dependency symlink escapes the installation root, and identifies packing and installing the tarball as the successful path. The live body read matched that supplied account. (plugins/lobster-theme/README.md:31, b8e1facbef18)
  • Positive visual proof and its coverage: Inspected both committed preview images. They visibly show Lobster selected on the Appearance page, with the corresponding palette and lobster artwork. The captured body identifies a packed installation into an isolated source-built OpenClaw 2026.9.5 Gateway with Labs enabled. Neither image shows chat prose or the composer, and no diagnostic output accompanies the font-loading claim. (plugins/lobster-theme/assets/preview-dark.png, b8e1facbef18)
  • Affirmative dependency boundary: The browser entry imports OpenClaw’s Control UI SDK, inserts a Google Fonts stylesheet, and supplies theme-scoped artwork. The feature contract and package build also directly depend on OpenClaw, making its browser and build contracts relevant to review. (plugins/lobster-theme/src/control-ui.ts:1, b8e1facbef18)
  • Host CSP permits the existing font-loading pattern: The inspected host CSP permits stylesheets from fonts.googleapis.com, font files from fonts.gstatic.com, inline styles, and data images. This supports the plugin’s implementation without changing host security policy; it does not substitute for runtime font evidence. (src/gateway/control-ui-csp.ts, dc67d0962d52)

Likely related people:

  • unknown: The claimed source-line change could not be verified from bounded local history. (role: source history unknown; confidence: low)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Replace the failing workspace-install instructions with the validated tarball workflow.
  • Show the installed plugin’s chat prose and composer in both modes, with redacted font-loading diagnostics.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
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.

Workflow

  • 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.

@steipete
steipete merged commit 523c316 into main Sep 21, 2026
2 checks passed
@steipete
steipete deleted the lobster-theme branch September 21, 2026 09:27
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. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. 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