openclaw - ✅(Solved) Fix [Bug]: Open in Canvas and copy on markdown is Infront of letters in chat. [4 pull requests, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#61514Fetched 2026-04-08 02:57:43
View on GitHub
Comments
0
Participants
1
Timeline
15
Reactions
0
Participants
Timeline (top)
referenced ×9cross-referenced ×4closed ×1labeled ×1

Since the introduction of Open in Canvas and copy on markdown in chat this feature has had a small bug/issue and that is that its overlayed on top of letters. The sentence length does not change this behavior.

Root Cause

Since the introduction of Open in Canvas and copy on markdown in chat this feature has had a small bug/issue and that is that its overlayed on top of letters. The sentence length does not change this behavior.

Fix Action

Fixed

PR fix notes

PR #61594: fix: prevent Canvas/Copy icons from overlapping chat bubble text

Description (problem / solution / changelog)

Fixes #61514

Problem

The "Open in Canvas" and "Copy as markdown" action buttons on chat bubbles are positioned absolutely in the top-right corner, but the bubble's right padding (36px) is too narrow to accommodate both buttons. This causes the icons to overlap the text content, making the end of some lines unreadable.

Fix

Increased padding-right on .chat-bubble.has-copy from 36px to 62px to provide sufficient space for both action buttons without obscuring any text.

Works on both desktop (hover to show) and mobile (always visible via @media (hover: none)).

Screenshot

Before: icons overlap text After: icons have clear space, text is fully readable

Changed files

  • openclaw-2026-04-03.log (removed, +0/-19)
  • ui/src/ui/chat/grouped-render.ts (modified, +1/-1)

PR #61630: fix(ui): prevent canvas/copy buttons from overlapping chat bubble text

Description (problem / solution / changelog)

Summary

Fixes #61514 - Open in Canvas / copy markdown icons overlap with chat text.

Problem

The "Open in Canvas" and "Copy as Markdown" buttons () are absolutely positioned with no z-index, causing them to visually stack on top of the chat bubble text content. Additionally, when actions are present, the did not include the class, so the rule (which reserves space for the action buttons) was not applied.

Fix

  1. grouped.css: Add to so it does not obscure text content.

  2. grouped-render.ts: Add class to when is true. This activates the CSS rule so text does not underlap the action buttons.

Testing

  • TypeScript compilation passes with no errors
  • Existing tests unaffected (no test changes required — the fix is purely additive visual)

Files Changed

  • ui/src/styles/chat/grouped.css
  • ui/src/ui/chat/grouped-render.ts

Changed files

  • src/cron/isolated-agent/delivery-target.ts (modified, +14/-1)
  • ui/src/styles/chat/grouped.css (modified, +1/-0)
  • ui/src/ui/chat/grouped-render.ts (modified, +7/-3)

PR #2: fix(ui): prevent canvas/copy buttons from overlapping chat bubble text (#61514)

Description (problem / solution / changelog)

Summary

Fixes #61514 - Canvas UI icon and chat text overlap.

Changes

  • ui/src/styles/chat/grouped.css: Add z-index: 1 to .chat-bubble-actions so it renders above text
  • ui/src/ui/chat/grouped-render.ts: Add has-copy class when bubble has actions, enabling padding-right: 36px

Testing

  • All existing UI tests pass
  • Manual verification confirms buttons no longer overlap text

Changed files

  • .agent/workflows/update_clawdbot.md (removed, +0/-380)
  • .agents/skills/openclaw-parallels-smoke/SKILL.md (modified, +30/-5)
  • .agents/skills/openclaw-qa-testing/SKILL.md (added, +86/-0)
  • .agents/skills/openclaw-qa-testing/agents/openai.yaml (added, +4/-0)
  • .agents/skills/openclaw-release-maintainer/SKILL.md (modified, +52/-22)
  • .agents/skills/openclaw-test-heap-leaks/SKILL.md (modified, +16/-12)
  • .agents/skills/openclaw-test-heap-leaks/scripts/heapsnapshot-delta.mjs (modified, +308/-20)
  • .agents/skills/security-triage/SKILL.md (modified, +3/-0)
  • .codex (renamed, +0/-0)
  • .dockerignore (modified, +2/-0)
  • .github/actions/setup-node-env/action.yml (modified, +1/-1)
  • .github/actions/setup-pnpm-store-cache/action.yml (modified, +1/-1)
  • .github/labeler.yml (modified, +24/-0)
  • .github/pull_request_template.md (modified, +3/-5)
  • .github/workflows/auto-response.yml (modified, +6/-2)
  • .github/workflows/ci-bun.yml (removed, +0/-110)
  • .github/workflows/ci.yml (modified, +228/-45)
  • .github/workflows/control-ui-locale-refresh.yml (added, +172/-0)
  • .github/workflows/docs-sync-publish.yml (added, +70/-0)
  • .github/workflows/docs-translate-trigger-release.yml (added, +42/-0)
  • .github/workflows/install-smoke.yml (modified, +11/-9)
  • .github/workflows/macos-release.yml (modified, +6/-5)
  • .github/workflows/openclaw-npm-release.yml (modified, +281/-12)
  • .github/workflows/plugin-clawhub-release.yml (added, +276/-0)
  • .github/workflows/plugin-npm-release.yml (modified, +4/-1)
  • .gitignore (modified, +11/-1)
  • .markdownlint-cli2.jsonc (modified, +3/-0)
  • .npmignore (modified, +1/-0)
  • AGENTS.md (modified, +57/-9)
  • CHANGELOG.md (modified, +861/-371)
  • CONTRIBUTING.md (modified, +10/-1)
  • Dockerfile (modified, +3/-0)
  • Makefile (added, +4/-0)
  • README.md (modified, +52/-3)
  • SECURITY.md (modified, +33/-2)
  • appcast.xml (modified, +396/-197)
  • apps/android/app/build.gradle.kts (modified, +41/-33)
  • apps/android/app/src/main/AndroidManifest.xml (modified, +14/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/AssistantLaunch.kt (added, +43/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/MainActivity.kt (modified, +12/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/MainViewModel.kt (modified, +102/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/NodeRuntime.kt (modified, +243/-54)
  • apps/android/app/src/main/java/ai/openclaw/app/NotificationForwardingPolicy.kt (added, +102/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/PermissionRequester.kt (modified, +10/-1)
  • apps/android/app/src/main/java/ai/openclaw/app/SecurePrefs.kt (modified, +190/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/chat/ChatController.kt (modified, +51/-37)
  • apps/android/app/src/main/java/ai/openclaw/app/gateway/DeviceAuthStore.kt (modified, +67/-7)
  • apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewayHostSecurity.kt (added, +124/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewaySession.kt (modified, +108/-34)
  • apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewayTls.kt (modified, +33/-7)
  • apps/android/app/src/main/java/ai/openclaw/app/node/CanvasActionTrust.kt (modified, +17/-16)
  • apps/android/app/src/main/java/ai/openclaw/app/node/ConnectionManager.kt (modified, +14/-1)
  • apps/android/app/src/main/java/ai/openclaw/app/node/DeviceHandler.kt (modified, +51/-5)
  • apps/android/app/src/main/java/ai/openclaw/app/node/DeviceNotificationListenerService.kt (modified, +120/-24)
  • apps/android/app/src/main/java/ai/openclaw/app/node/InvokeCommandRegistry.kt (modified, +4/-1)
  • apps/android/app/src/main/java/ai/openclaw/app/node/InvokeDispatcher.kt (modified, +47/-9)
  • apps/android/app/src/main/java/ai/openclaw/app/node/SmsHandler.kt (modified, +15/-10)
  • apps/android/app/src/main/java/ai/openclaw/app/node/SmsManager.kt (modified, +649/-135)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/CanvasScreen.kt (modified, +1/-1)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/ConnectTabScreen.kt (modified, +41/-7)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/GatewayConfigResolver.kt (modified, +104/-16)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/GatewayDiagnostics.kt (modified, +1/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/OnboardingFlow.kt (modified, +76/-38)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/PostOnboardingTabs.kt (modified, +15/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/SettingsSheet.kt (modified, +517/-12)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/chat/ChatComposer.kt (modified, +44/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/ui/chat/ChatSheetContent.kt (modified, +46/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/voice/MicCaptureManager.kt (modified, +116/-10)
  • apps/android/app/src/main/java/ai/openclaw/app/voice/TalkAudioPlayer.kt (added, +242/-0)
  • apps/android/app/src/main/java/ai/openclaw/app/voice/TalkModeManager.kt (modified, +97/-22)
  • apps/android/app/src/main/java/ai/openclaw/app/voice/TalkSpeakClient.kt (added, +143/-0)
  • apps/android/app/src/main/res/values/assistant.xml (added, +7/-0)
  • apps/android/app/src/main/res/xml/shortcuts.xml (added, +17/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/AssistantLaunchTest.kt (added, +43/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/GatewayBootstrapAuthTest.kt (added, +220/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/NotificationForwardingPolicyTest.kt (added, +189/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/SecurePrefsNotificationForwardingTest.kt (added, +133/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/gateway/DeviceAuthStoreTest.kt (added, +63/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/gateway/GatewaySessionInvokeTest.kt (modified, +155/-6)
  • apps/android/app/src/test/java/ai/openclaw/app/gateway/GatewaySessionInvokeTimeoutTest.kt (modified, +17/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/CallLogHandlerTest.kt (modified, +35/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/CanvasActionTrustTest.kt (modified, +30/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/ConnectionManagerTest.kt (modified, +459/-1)
  • apps/android/app/src/test/java/ai/openclaw/app/node/DeviceHandlerTest.kt (modified, +122/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/DeviceNotificationListenerServiceTest.kt (added, +119/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/InvokeCommandRegistryTest.kt (modified, +44/-1)
  • apps/android/app/src/test/java/ai/openclaw/app/node/InvokeDispatcherTest.kt (added, +368/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/LocationHandlerTest.kt (modified, +111/-3)
  • apps/android/app/src/test/java/ai/openclaw/app/node/NotificationsHandlerTest.kt (modified, +63/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/node/SmsManagerTest.kt (modified, +899/-8)
  • apps/android/app/src/test/java/ai/openclaw/app/node/SystemHandlerTest.kt (modified, +31/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/protocol/OpenClawProtocolConstantsTest.kt (modified, +6/-4)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/CanvasA2UIActionBridgeTest.kt (added, +50/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/GatewayConfigResolverTest.kt (modified, +293/-23)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/OnboardingFlowLogicTest.kt (added, +27/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/SettingsSheetNotificationAppsTest.kt (added, +35/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/chat/ChatComposerDraftTest.kt (added, +44/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/ui/chat/ChatSheetContentTest.kt (added, +72/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/voice/TalkAudioPlayerTest.kt (added, +44/-0)
  • apps/android/app/src/test/java/ai/openclaw/app/voice/TalkModeManagerTest.kt (added, +97/-0)

PR #61872: fix: prevent Canvas/Copy icons from overlapping chat bubble text

Description (problem / solution / changelog)

Fixes #61514

Problem

The "Open in Canvas" and "Copy as markdown" action buttons on chat bubbles are positioned absolutely in the top-right corner, but the bubble right padding (36px) is too narrow, causing icon overlap with text.

Fix

  • Increase .chat-bubble.has-copy padding-right from 36px to 62px
  • Add has-copy class to bubbles in grouped-renderer when canCopyMarkdown is true

Changed files

  • ui/src/styles/chat/grouped.css (modified, +1/-1)
  • ui/src/ui/chat/grouped-render.ts (modified, +1/-1)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Since the introduction of Open in Canvas and copy on markdown in chat this feature has had a small bug/issue and that is that its overlayed on top of letters. The sentence length does not change this behavior.

Steps to reproduce

I think these features where introduced in 2025-4-1. open openclaw in browser (tried Chrome, edge and firefox). and you will see the icons on top of letters making the end of some lines unreadable.

<img width="237" height="119" alt="Image" src="https://github.com/user-attachments/assets/00219ca9-d44b-496d-92fe-8f7943fe9b06" />

Expected behavior

that the icons are more to the right and not on top of text.

Actual behavior

Icons are on top of text is the chat.

OpenClaw version

2026-4-2

Operating system

Ubuntu mate 24.04

Install method

Install script

Model

not a model issue

Provider / routing chain

Not a provider issue

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

Adjust the CSS styling to ensure icons are properly aligned and do not overlap with text in the chat.

Guidance

  • Review the CSS rules applied to the icons and text in the chat to identify any conflicting styles that may be causing the overlap.
  • Check the introduction of Open in Canvas and copy on markdown in chat features for any changes that may have affected the layout.
  • Verify that the issue persists across different browsers and operating systems to determine if it's a browser-specific or platform-specific problem.
  • Consider adding a margin or padding to the icons to create space between them and the text.

Example

No specific code example can be provided without more information on the CSS styles and HTML structure used in the OpenClaw application.

Notes

The provided information suggests a styling issue, but without access to the CSS code or HTML structure, it's difficult to provide a precise solution. The issue may be related to the introduction of new features, and reviewing the changes made around 2025-4-1 could help identify the cause.

Recommendation

Apply a workaround by adjusting the CSS styles to ensure proper alignment of icons and text, as the root cause of the issue seems to be related to styling rather than a version-specific bug that could be fixed by upgrading.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

that the icons are more to the right and not on top of text.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING