Skip to content

fix(ui): use local asset for Control UI logo instead of expired CDN#6161

Closed
shaharsha wants to merge 5 commits intoopenclaw:mainfrom
shaharsha:fix/control-ui-logo-cdn
Closed

fix(ui): use local asset for Control UI logo instead of expired CDN#6161
shaharsha wants to merge 5 commits intoopenclaw:mainfrom
shaharsha:fix/control-ui-logo-cdn

Conversation

@shaharsha
Copy link
Copy Markdown

@shaharsha shaharsha commented Feb 1, 2026

Summary

Fixes Control UI logo loading failure by bundling the asset locally instead of using the CDN.

🤖 AI-Assisted: Created with Claude Sonnet 4.5.

Root Cause

The CDN URL contains a typo (clawhubclawdhub), discovered by @mousberg:

- https://mintcdn.com/clawhub/...    // 403 (typo)
+ https://mintcdn.com/clawdhub/...   // 200 (works)

Solution

This PR bundles the logo locally rather than fixing the typo, eliminating external dependency:

  • Copied docs/assets/pixel-lobster.svgui/public/pixel-lobster.svg
  • Updated ui/src/ui/app-render.ts to use absolute path /pixel-lobster.svg
  • Fixed formatting in src/config/telegram-webhook-secret.test.ts

Rationale

Local bundling provides:

  • Zero external dependencies (supply chain risk mitigation)
  • No network latency for critical UI assets
  • Resilience to CDN availability/signature issues
  • Standard practice for application-bundled assets

Alternative: Fix the typo (1 character change). Both solutions are valid - local bundling is more robust; typo fix is simpler.

Testing

  • ✅ Build: pnpm build
  • ✅ Lint: pnpm lint (0 errors)
  • ✅ Format: pnpm format
  • ✅ Tests: pnpm test (839 files, 5,137 tests, 0 failures)
  • ✅ Visual: Verified logo loads correctly (HTTP 200)
  • ✅ Asset bundled: dist/control-ui/pixel-lobster.svg (2.1KB)

Closes #6154

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@shaharsha
Copy link
Copy Markdown
Author

Note: PR #6166 by @unisone addresses the same CDN issue but uses /favicon.svg instead.

This PR uses the proper pixel-lobster.svg brand logo from docs/assets/ for better brand consistency (maintains the pixel art aesthetic).

Both are valid solutions - leaving it to the maintainers to decide which approach they prefer! 🦞

@shaharsha shaharsha changed the title UI: fix Control UI logo by using local asset instead of expired CDN signature fix(ui): use local asset for Control UI logo instead of expired CDN Feb 1, 2026
@mousberg
Copy link
Copy Markdown
Contributor

mousberg commented Feb 1, 2026

The CDN isn't expired - the URL just has a typo. clawhub should be clawdhub:

https://mintcdn.com/clawdhub/4rYvG-uuZrMK_URE/assets/pixel-lobster.svg?... returns 200.

@shaharsha shaharsha closed this Feb 1, 2026
@shaharsha shaharsha reopened this Feb 1, 2026
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@shaharsha
Copy link
Copy Markdown
Author

@mousberg Excellent catch on the typo - you're absolutely right that clawhubclawdhub resolves the CDN issue.

I opted for local bundling instead for these reasons:

Technical benefits:

  • Performance: Eliminates network round-trip for critical UI asset
  • Reliability: No dependency on CDN availability or signature rotation
  • Security: Removes external supply chain attack surface
  • Standard practice: Framework-bundled assets are the norm for SPAs

Trade-off: 1 character fix vs 61 lines of changes. The typo fix is simpler; bundling is more robust.

Happy to close this PR if you prefer the simpler approach - both solutions are valid. Your call!

@clawdinator
Copy link
Copy Markdown
Contributor

clawdinator bot commented Feb 1, 2026

CLAWDINATOR FIELD REPORT // PR Closure

I am CLAWDINATOR — cybernetic crustacean, maintainer triage bot for OpenClaw. I was sent from the future to keep this repo shipping clean code.

OpenClaw has 800+ open PRs. To keep the maintainers from total meltdown, we're closing PRs aggressively. Duplicates, trivial fixes, and unsolicited features are being returned to the deep.

Hasta la vista, PR.

🤖 This is an automated message from CLAWDINATOR, the OpenClaw maintainer bot.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Control UI logo fails to load - CDN signature invalid

2 participants