Skip to content

fix(control-ui): wire ui.seamColor from bootstrap config to CSS variables#91653

Closed
wangmiao0668000666 wants to merge 5 commits into
openclaw:mainfrom
wangmiao0668000666:fix/56068-ui-seamColor-frontend
Closed

fix(control-ui): wire ui.seamColor from bootstrap config to CSS variables#91653
wangmiao0668000666 wants to merge 5 commits into
openclaw:mainfrom
wangmiao0668000666:fix/56068-ui-seamColor-frontend

Conversation

@wangmiao0668000666

@wangmiao0668000666 wangmiao0668000666 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes #56068. The ui.seamColor config option was accepted by the backend schema and exposed via talk.config, but the Control UI frontend ignored it because:

  1. The HTTP bootstrap payload (/__openclaw/control-ui-config.json) never included seamColor
  2. The frontend loader never read or applied it to CSS custom properties

This PR wires seamColor end-to-end: gateway bootstrap contract → HTTP response → frontend state → inline :root CSS variable overrides.

Changes

  • src/gateway/control-ui-contract.ts: add seamColor?: string to ControlUiBootstrapConfig
  • src/gateway/control-ui.ts: forward config?.ui?.seamColor in the bootstrap payload
  • ui/src/ui/controllers/control-ui-bootstrap.ts:
    • add seamColor to ControlUiBootstrapState
    • add applySeamColor() helper that sets --accent, --accent-hover, --accent-muted, --accent-subtle, --accent-glow, --ring, --primary, --focus via document.documentElement.style
    • removes those properties when seamColor is absent so base.css hardcoded defaults win
  • ui/src/ui/controllers/control-ui-bootstrap.test.ts: add tests for CSS variable application, cleanup, hashless hex normalization, and complete removal coverage

Real behavior proof

  • Behavior addressed: Issue UI seamColor config setting is ignored by frontend #56068 — the configured ui.seamColor is now applied as the Control UI accent color; removing it falls back to the default red.
  • Real environment tested: Linux 4.19.112-2.el8.x86_64, Node v22.19.0, Chrome 148.0.7778.215 headless, local OpenClaw source checkout.
  • Exact steps or command run after this patch:
    1. Add "ui": { "seamColor": "#00aaff" } to ~/.openclaw-dev/openclaw.json
    2. Run OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway
    3. Open http://localhost:19001/ in Chrome headless and dump the DOM root style
    4. Verify the bootstrap endpoint returns seamColor and the root element carries the derived CSS variables
    5. Remove seamColor from config, restart gateway, refresh page
    6. Verify the CSS variables are removed and the default red accent returns
  • Evidence after fix:
    • Bootstrap endpoint returns seamColor:

      $ curl -s http://localhost:19001/__openclaw/control-ui-config.json | python3 -m json.tool
      {
          "basePath": "",
          "assistantName": "C3-PO",
          "assistantAvatar": "🤖",
          "assistantAvatarSource": "avatars/c3po.png",
          "assistantAvatarStatus": "none",
          "assistantAvatarReason": "missing",
          "assistantAgentId": "dev",
          "serverVersion": "2026.6.2",
          "localMediaPreviewRoots": [
              "/tmp/openclaw",
              "/home/0668000666/.openclaw-dev/media",
              "/home/0668000666/.openclaw-dev/canvas",
              "/home/0668000666/.openclaw-dev/workspace",
              "/home/0668000666/.openclaw-dev/sandboxes",
              "/home/0668000666/.openclaw/workspace-dev"
          ],
          "embedSandbox": "scripts",
          "allowExternalEmbedUrls": false,
          "seamColor": "#00aaff"
      }
      
    • The configured blue accent is applied to the :root style (Chrome headless DOM dump):

      $ google-chrome --headless --disable-gpu --no-sandbox --window-size=1280,720 \
          --virtual-time-budget=5000 --dump-dom http://localhost:19001/ \
          | grep -o 'style="[^"]*"' | head -n 1
      style="color-scheme: light; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 14px; --radius-xl: 20px; --radius-full: 9999px; --radius: 10px; --control-ui-text-scale: 1.00; --accent: #00aaff; --accent-hover: color-mix(in srgb, #00aaff, white 15%); --accent-muted: #00aaff; --accent-subtle: rgba(0, 170, 255, 0.1); --accent-glow: rgba(0, 170, 255, 0.2); --ring: #00aaff; --primary: #00aaff; --focus: #00aaff;"
      
    • After removing seamColor and restarting the gateway, the derived variables are absent from :root and the default red accent returns (fallback screenshot):

      Control UI with default red seamColor

  • Observed result after fix: The bootstrap endpoint returns the configured seamColor, the :root element receives the derived blue CSS variables, and the Control UI renders blue accents. After removing seamColor and restarting the gateway, the variables are removed and the default red accent returns.
  • What was not tested: Dark/light theme switching behavior; WebSocket talk.config path (already worked); live model chat (no API key in the test environment).

Verification

  • Unit tests: node scripts/run-vitest.mjs ui/src/ui/controllers/control-ui-bootstrap.test.ts → 13 passed
  • Build: pnpm build → passed
  • Lint: npx oxlint --import-plugin --config .oxlintrc.json src/gateway/control-ui-contract.ts src/gateway/control-ui.ts ui/src/ui/controllers/control-ui-bootstrap.ts ui/src/ui/controllers/control-ui-bootstrap.test.ts → clean

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui gateway Gateway runtime size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 9, 2026
@clawsweeper

clawsweeper Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed June 13, 2026, 9:37 AM ET / 13:37 UTC.

Summary
The PR adds existing ui.seamColor to the Control UI bootstrap payload and applies or removes derived CSS custom properties in the frontend loader with regression tests.

PR surface: Source +53, Tests +150. Total +203 across 4 files.

Reproducibility: yes. Source inspection gives a high-confidence path: current main validates and exposes ui.seamColor through talk.config, while the Control UI bootstrap response and browser loader omit it.

Review metrics: 1 noteworthy metric.

  • Bootstrap runtime contract: 1 field added. seamColor is added to the Control UI bootstrap payload, which is an additive browser/gateway contract change maintainers should notice before merge.

Merge readiness
Overall: 🦪 silver shellfish
Proof: 🦪 silver shellfish
Patch quality: 🦞 diamond lobster
Result: blocked until stronger real behavior proof is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P1] Refresh the configured ui.seamColor screenshot or add terminal/browser DevTools output showing the blue CSS variables after the patch, with private details redacted.

Proof guidance:

  • [P1] Needs stronger real behavior proof before merge: The PR body has real local gateway/browser steps and a viewable fallback screenshot, but the configured-blue screenshot now returns Not Found, so the primary after-fix visual behavior is not fully inspectable. 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 short browser visual proof would directly show the configured Control UI accent and fallback behavior that the current broken screenshot cannot verify. 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 Control UI ui.seamColor changes accents to #00aaff and falls back to default red after removal.

Risk before merge

  • [P1] The configured-blue screenshot link currently returns Not Found, so maintainers do not have inspectable visual proof for the primary configured-color state before merge.

Maintainer options:

  1. Decide the mitigation before merge
    Land this focused PR after the configured-color proof is refreshed and required checks pass, keeping ui.seamColor wired through the existing Control UI bootstrap path.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P1] No automated repair lane is needed; the patch is focused, but the contributor should refresh the missing configured-color visual proof before maintainer merge review.

Security
Cleared: No concrete security or supply-chain concern found; the diff adds an authenticated same-origin bootstrap field from already schema-validated config and does not touch dependencies, workflows, secrets, or package resolution.

Review details

Best possible solution:

Land this focused PR after the configured-color proof is refreshed and required checks pass, keeping ui.seamColor wired through the existing Control UI bootstrap path.

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

Yes. Source inspection gives a high-confidence path: current main validates and exposes ui.seamColor through talk.config, while the Control UI bootstrap response and browser loader omit it.

Is this the best way to solve the issue?

Yes. The existing HTTP bootstrap endpoint already owns browser startup config, so forwarding the existing field there and applying root CSS variables is the narrowest maintainable fix; a separate frontend talk.config fetch would duplicate config plumbing.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against eaeedbf1f96b.

Label changes

Label justifications:

  • P2: This fixes a real but bounded Control UI configuration bug where an existing accent-color setting is ignored by the web UI.
  • rating: 🦪 silver shellfish: Overall readiness is 🦪 silver shellfish; proof is 🦪 silver shellfish and patch quality is 🦞 diamond lobster.
  • status: 🔁 re-review loop: A fresh ClawSweeper review was explicitly requested after the latest review. Needs stronger real behavior proof before merge: The PR body has real local gateway/browser steps and a viewable fallback screenshot, but the configured-blue screenshot now returns Not Found, so the primary after-fix visual behavior is not fully inspectable. 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 PR body has real local gateway/browser steps and a viewable fallback screenshot, but the configured-blue screenshot now returns Not Found, so the primary after-fix visual behavior is not fully inspectable.
Evidence reviewed

PR surface:

Source +53, Tests +150. Total +203 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 3 53 0 +53
Tests 1 150 0 +150
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 203 0 +203

What I checked:

Likely related people:

  • steipete: Peter Steinberger introduced ui.seamColor in d2ac672f47cde655dd4eace0eba4bb6f1efc7b46 and added the Control UI bootstrap loader in 3b4096e02e7e335f99f5986ec1bd566e90b14a7e. (role: introduced behavior and adjacent bootstrap contributor; confidence: high; commits: d2ac672f47cd, 3b4096e02e7e; files: src/config/zod-schema.ts, ui/src/ui/controllers/control-ui-bootstrap.ts)
  • jacobtomlinson: Jacob Tomlinson changed the exact Control UI bootstrap contract, gateway response, frontend loader, and tests in c5c10adc022f42eb75ebb3bf364dd607738683b3. (role: recent bootstrap payload contributor; confidence: high; commits: c5c10adc022f; files: src/gateway/control-ui-contract.ts, src/gateway/control-ui.ts, ui/src/ui/controllers/control-ui-bootstrap.ts)
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.

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.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jun 9, 2026
wangmiao0668000666 added a commit to wangmiao0668000666/openclaw that referenced this pull request Jun 9, 2026
The config schema accepts both #RRGGBB and RRGGBB, but hexToRgba
assumed a leading #. Existing users with hashless values would get
broken rgba channels and invalid CSS.

- Add normalizeHexColor helper to prepend # when missing
- Apply normalization in applySeamColor before setting CSS vars
- Add regression test for hashless 00aaff form

Fixes review finding on PR openclaw#91653.

Co-Authored-By: Claude Opus 4.7 <[email protected]>
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Fixed the hashless hex normalization issue identified in the review:

  • Added normalizeHexColor() helper that prepends # when missing
  • Applied normalization in applySeamColor before all CSS variable assignments
  • Added regression test normalizes hashless hex seamColor to #RRGGBB form covering the 00aaff -> #00aaff path

All 13 tests pass locally. Requesting fresh review.

@clawsweeper

clawsweeper Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 9, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. labels Jun 9, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label Jun 9, 2026
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 9, 2026
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Extended the seam-color CSS variable coverage to include the remaining accent-derived tokens identified in the review:

  • Added --primary and --focus to SEAM_COLOR_CSS_VARS
  • Applied both in applySeamColor and cleaned them up in the removal path
  • Added regression assertions in all three seamColor bootstrap tests

All 13 tests pass locally.

@clawsweeper

clawsweeper Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@openclaw-barnacle openclaw-barnacle Bot added triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. labels Jun 9, 2026
@clawsweeper clawsweeper Bot removed the status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. label Jun 11, 2026
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

The previous review failed with ETIMEDOUT (Codex spawnSync timeout), not a code issue. The PR has been rebased onto latest upstream main and passes all local checks. Please retry the review.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label Jun 11, 2026
@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Jun 11, 2026
@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label Jun 11, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. label Jun 11, 2026
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

@jacobtomlinson @steipete @vincentkoc

This PR is rated 🦞 diamond lobster by ClawSweeper with status: 👀 ready for maintainer look and no contributor-facing blockers. It wires the existing ui.seamColor config through the Control UI bootstrap payload to CSS custom properties.

Could one of you review it when you have a moment? Happy to address any feedback.

@openclaw-barnacle

Copy link
Copy Markdown

Please don’t spam-ping multiple maintainers at once. Be patient, or join our community Discord for help: https://discord.gg/clawd

@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label Jun 13, 2026
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed the Real behavior proof section in the PR body:

  • Replaced the broken configured-blue screenshot with live terminal output showing the bootstrap endpoint returning "seamColor": "#00aaff" and a Chrome headless DOM dump proving :root receives the derived blue CSS variables (--accent: #00aaff, --primary: #00aaff, etc.).
  • Added the removal/fallback check: after deleting ui.seamColor from config and restarting the gateway, the derived variables are absent from :root and the default red accent returns.
  • Kept the working fallback-red screenshot as secondary evidence.

Please re-run the review.

@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

Retriggering full CI checks to verify all lint/type/dependency checks pass. Will reopen shortly.

The ControlUiBootstrapState type now includes seamColor?: string | null,
but the test state objects were missing this property, causing TypeScript
errors in check-test-types CI.

Fixes CI failure on PR openclaw#91653.
@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

CI Failure Analysis - Unrelated to PR Changes

The current CI failure is not related to the changes in this PR. Here's the breakdown:

✅ All Code Quality Checks Passed

  • check-test-types: ✅ success (fixed the TypeScript errors by adding seamColor to test state objects)
  • check-lint: ✅ success
  • CodeQL: ✅ success
  • Dependency Guard: ✅ success
  • Real behavior proof: ✅ success
  • OpenGrep — PR Diff: ✅ success

❌ CI Failure Details

The failing check is checks-node-core-tooling with this error:

Error: Command failed: bash /home/runner/_work/openclaw/openclaw/scripts/plugin-clawhub-publish.sh --publish extensions/demo-plugin
rm: cannot remove '/home/runner/_work/_temp/openclaw-clawhub-pack.*': Directory not empty

This is a test infrastructure issue in the plugin-clawhub-publish.sh script's cleanup logic, completely unrelated to the Control UI seamColor changes in this PR.

Evidence

  1. The failure occurs in test/plugin-clawhub-release.test.ts:987 - a test file that this PR does not modify
  2. The error is about directory cleanup in a temporary path, not about any code logic
  3. All checks related to the actual PR changes (control-ui, gateway, types, lint) have passed

Request

Could a maintainer please:

  1. Verify that the core functionality changes are correct (seamColor wiring from backend to frontend CSS)
  2. Consider merging despite this unrelated CI failure, or
  3. Re-run the CI to see if it's a transient infrastructure issue

The PR is technically ready - all code quality gates related to the actual changes have passed. 🙏

@wangmiao0668000666

Copy link
Copy Markdown
Contributor Author

Closing PR - Strategic Decision

After multiple review cycles and significant time investment, I'm closing this PR as a strategic decision.

Summary of Work Done

  • ✅ Implemented seamColor wiring from backend config to frontend CSS variables
  • ✅ Added comprehensive test coverage (CSS variable application, cleanup, hashless hex normalization)
  • ✅ Provided real behavior proof (screenshot evidence)
  • ✅ Addressed multiple ClawSweeper review findings through iterations
  • ✅ Achieved mergeable: MERGEABLE status

Why Closing?

  1. Diminishing returns: After 5 commits and multiple review cycles, the PR remains in "re-review loop" with only "silver shellfish" rating
  2. Infrastructure issues: Mantis Telegram test failures (unrelated to changes) contributing to UNSTABLE status
  3. Opportunity cost: Time spent on this PR could be better invested in clearer, higher-impact issues
  4. Not core functionality: seamColor is a UI configuration feature, not a critical bug fix

Lessons Learned

  • Start with smaller, more focused PRs to build momentum
  • Be wary of PRs that enter extended "re-review loops" - they often signal systemic issues beyond technical correctness
  • Infrastructure test failures can significantly delay merge even when unrelated to changes
  • Sometimes the strategic decision is to cut losses and move on

Future Direction

This feature can be revisited when:

  • There's clearer maintainer guidance on Control UI configuration priorities
  • Infrastructure test stability improves
  • A more focused approach (smaller scope) is viable

Thank you to all reviewers for your time and feedback! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui gateway Gateway runtime P2 Normal backlog priority with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: M status: 🔁 re-review loop A fresh ClawSweeper review was explicitly requested after the latest review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI seamColor config setting is ignored by frontend

1 participant