Skip to content

UI: fix half-block art rendering for UTF-8 QR codes in web chat#51868

Closed
emg110 wants to merge 6 commits into
openclaw:mainfrom
GoPlausible:main
Closed

UI: fix half-block art rendering for UTF-8 QR codes in web chat#51868
emg110 wants to merge 6 commits into
openclaw:mainfrom
GoPlausible:main

Conversation

@emg110

@emg110 emg110 commented Mar 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Describe the problem and fix in 2–5 bullets:

  • Problem: UTF-8 QR codes (using half-block characters ▀▄█) render broken in the web chat dashboard — default <pre> line-height creates gaps between rows, background/foreground colors don't match the block-character encoding, and the characters don't tile into a scannable image.
  • Why it matters: QR codes sent by tools (e.g. Algorand ARC-26 QR generator) are unreadable/unscannable in the web UI, forcing users to copy raw text and render elsewhere.
  • What changed: Added looksLikeHalfBlockArt() detection in markdown.ts that identifies code blocks dominated by half-block Unicode characters, wraps them with a .half-block-art CSS class, and applies tight line-height (0.6), black background, white foreground, and slightly larger font-size so the blocks tile seamlessly. CSS added for both .chat-text (chat messages) and .sidebar-markdown (tool output sidebar), with both light and dark theme variants.
  • What did NOT change (scope boundary): No changes to the markdown parsing pipeline, sanitization, or any other code block rendering. Only half-block-art detection and styling were added.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor required for the fix
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

  • Closes #
  • Related #

User-visible / Behavior Changes

  • Code blocks containing UTF-8 half-block art (QR codes, box-drawing art) now render with black background, white text, and tight line-height so they display as intended scannable images.
  • No change to normal code block rendering.

Security Impact (required)

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

Repro + Verification

Environment

  • OS: macOS, Ubuntu
  • Runtime/container: TUI, Browser (web chat dashboard)
  • Model/provider: Any (content is tool output)
  • Integration/channel (if any): Web UI
  • Relevant config (redacted): N/A

Steps

  1. Open the web chat dashboard
  2. Have a tool or assistant send a UTF-8 QR code (e.g. via Algorand generate_algorand_qrcode or any tool that outputs Unicode block-character QR codes)
  3. Observe the code block rendering

Expected

  • QR code renders as a clean, scannable square image with no gaps between rows

Actual

  • Before: rows have visible gaps due to default line-height, background is gray instead of black, characters don't tile — QR is unreadable
  • After: QR code renders correctly and is scannable

Evidence

Attach at least one:

  • Screenshot/recording
  • Failing test/log before + passing after
  • Trace/log snippets
  • Perf numbers (if relevant)

Real behavior proof

Behavior addressed: UTF-8 QR codes built from half-block characters (▀▄█) rendered broken in the web chat dashboard — the default <pre> line-height left gaps between rows and the gray background/foreground did not match the block-character encoding, so the codes were unscannable. This patch detects half-block art, wraps it in a .half-block-art class, and applies tight line-height, black background, white foreground, and larger font-size so the blocks tile into a clean scannable image, across both the chat-text and sidebar surfaces in light and dark themes.

Real environment tested: OpenClaw web chat dashboard running locally on macOS and Ubuntu (Node 22), rendering live tool output that emits a UTF-8 QR code (e.g. the Algorand ARC-26 generate_algorand_qrcode tool).

Exact steps or command run after this patch: Opened the web chat dashboard, had a tool emit a UTF-8 half-block QR code, then viewed it in both the chat message view and the tool-output sidebar, in light and dark themes, and scanned the rendered code with a phone camera.

Evidence after fix:

Before
Screenshot 2026-03-15 at 16 06 44
Screenshot 2026-03-21 at 19 43 30

After
Screenshot 2026-03-21 at 23 32 34
Screenshot 2026-03-21 at 23 32 28
Screenshot 2026-03-21 at 23 32 20
Screenshot 2026-03-21 at 19 38 03

Observed result after fix: The QR code renders as a clean, gap-free square and scans correctly with a phone camera in both the chat-text and sidebar surfaces; normal code blocks remain unaffected.

What was not tested: Terminal-only (TUI) rendering paths and exhaustive QR color combinations; the detection heuristic may not cover every possible block-art edge case.

Human Verification (required)

What you personally verified (not just CI), and how:

  • Verified scenarios: QR code rendering in chat messages and tool output sidebar, both light and dark themes
  • Edge cases checked: Normal code blocks unaffected, short block-character snippets (< 10 lines) do not trigger detection, non-QR code blocks render as before
  • What you did not verify: All possible QRCode coloring; detection heuristic may not cover all edge cases of block art

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Migration needed? No

Failure Recovery (if this breaks)

  • How to disable/revert this change quickly: Revert the .half-block-art CSS rules in text.css and sidebar.css, and remove the looksLikeHalfBlockArt() branch in markdown.ts
  • Files/config to restore: ui/src/styles/chat/text.css, ui/src/styles/chat/sidebar.css, ui/src/ui/markdown.ts
  • Known bad symptoms reviewers should watch for: Normal code blocks accidentally styled as half-block art (false positive detection), or QR codes still rendering with gaps (false negative)

Risks and Mitigations

  • Risk: False positive detection on code blocks that happen to contain many block characters but aren't QR/art
    • Mitigation: Detection requires 60%+ of lines to contain half-block characters AND at least 10 lines — unlikely for normal code. Worst case is cosmetic (black bg + tight line-height on a non-QR block).

@greptile-apps

greptile-apps Bot commented Mar 21, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR fixes UTF-8 half-block QR code rendering in the web chat UI by adding a looksLikeHalfBlockArt() detection heuristic in markdown.ts and corresponding CSS in text.css and sidebar.css. The approach is well-scoped and the detection logic is sensible.

  • Detection heuristic (markdown.ts): Checks for ≥10 lines with >60% containing ▀/▄/█ characters. The threshold avoids false positives for normal code. The comment on line 180 incorrectly claims the regex covers shades (░▒▓) and partial blocks (▌▐) that are not actually in HALF_BLOCK_RE.
  • CSS inconsistency (sidebar.css): text.css adds a .half-block-art pre code rule to neutralise .chat-text code's font-size: 0.9em. The sidebar equivalent is missing, meaning the existing .sidebar-markdown code { font-size: 13px } rule still applies inside sidebar half-block art blocks — this overrides the intended font-size: 1.3em on pre and may cause QR codes in the sidebar to render smaller and potentially less readable than those in chat.
  • Duplicate CSS: Both light and dark theme variants in text.css and sidebar.css are byte-for-byte identical; they could be collapsed into a single rule if no per-theme divergence is planned.

Confidence Score: 4/5

  • Safe to merge with one small sidebar CSS fix recommended to keep rendering consistent.
  • The core feature works correctly for the primary chat-message surface. The detection heuristic is well-guarded (≥10 lines, >60% threshold) making false positives unlikely and cosmetic at worst. The only functional gap is the missing pre code override in sidebar.css which could cause sidebar QR codes to render at an unintended font size, but this does not break the primary chat path and is easy to patch as a follow-up.
  • ui/src/styles/chat/sidebar.css — missing .sidebar-markdown .half-block-art pre code override may cause font-size inconsistency for sidebar QR codes.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: ui/src/ui/markdown.ts
Line: 178-181

Comment:
**Comment doesn't match the regex**

The comment on line 180 says *"plus shades ░▒▓ and partial blocks ▌▐"*, but `HALF_BLOCK_RE` only includes `\u2580` (▀), `\u2584` (▄), and `\u2588` (█) — shades (`\u2591``\u2593`) and partial blocks (`\u258C`, `\u2590`) are absent from the pattern. The comment should be corrected to avoid misleading future readers.

```suggestion
// Half-block characters used in UTF-8 QR codes and block-art:
// U+2580 ▀ upper half, U+2584 ▄ lower half, U+2588 █ full block.
const HALF_BLOCK_RE = /[\u2580\u2584\u2588]/;
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: ui/src/styles/chat/sidebar.css
Line: 107-127

Comment:
**Missing `pre code` override may cause font-size inconsistency in the sidebar**

`text.css` adds a `.chat-text .half-block-art pre code` rule that resets `background`, `padding`, `line-height`, and `color` on the inner `<code>` element. The sidebar doesn't have the equivalent rule, so `.sidebar-markdown code { font-size: 13px; }` (line 136–139) still applies to the `<code>` inside half-block-art `<pre>` elements.

Because `13px` is an absolute value, it overrides the `font-size: 1.3em` set on `pre` for the characters that actually render. In practice this can make sidebar QR codes render noticeably smaller than those in chat, and depending on the base font size may affect tiling quality. Adding the same override as `text.css` would keep both surfaces consistent:

```css
.sidebar-markdown .half-block-art pre code {
  color: inherit;
  line-height: inherit;
  font-family: var(--mono);
  font-size: inherit;
  background: none;
  padding: 0;
}
```

How can I resolve this? If you propose a fix, please make it concise.

---

This is a comment left during a code review.
Path: ui/src/styles/chat/text.css
Line: 151-171

Comment:
**Identical light/dark rules can be collapsed into one**

Both `:root[data-theme-mode="light"]` and `:root[data-theme-mode="dark"]` produce exactly the same CSS. Unless dark-mode differentiation is planned, these can be merged into a single, simpler rule — reducing duplication and making future edits easier. The same pattern appears in `sidebar.css`.

```suggestion
.chat-text .half-block-art pre {
  background: #000;
  color: #fff;
  line-height: 0.6;
  font-size: 1.3em;
  padding: 4px;
  border-radius: 4px;
  overflow-x: auto;
  width: fit-content;
}
```

How can I resolve this? If you propose a fix, please make it concise.

Last reviewed commit: "Merge branch 'opencl..."

Comment thread ui/src/ui/markdown.ts
Comment thread ui/src/styles/chat/sidebar.css
Comment thread ui/src/styles/chat/text.css

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 54a8389574

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread ui/src/ui/markdown.ts
Comment thread ui/src/styles/chat/sidebar.css

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 46429bd97e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread ui/src/ui/chat/tool-helpers.ts Outdated
Comment thread ui/src/ui/markdown.ts
@clawsweeper

clawsweeper Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed June 28, 2026, 3:38 PM ET / 19:38 UTC.

Summary
The PR adds half-block Unicode art detection and styling for web chat and sidebar Markdown so UTF-8 QR code blocks render as scannable tiles.

PR surface: Source +126, Tests +3. Total +129 across 8 files.

Reproducibility: yes. source-reproducible: current main lacks half-block-specific rendering and the PR body plus inspected screenshots show broken then improved web dashboard QR output.

Review metrics: 1 noteworthy metric.

  • QR Rendering Coverage: 2 covered, 2 uncovered. The source branch covers fenced/indented Markdown and sidebar formatting, but raw chat paragraphs and expanded raw tool-card output still need the replacement path.

Root-cause cluster
Relationship: superseded
Canonical: #93869
Summary: This source PR and the replacement PR target the same half-block QR rendering bug; the replacement is the current writable path but remains open, so this source PR should stay open for now.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge readiness
Overall: 🦐 gold shrimp
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🦐 gold shrimp
Result: needs maintainer review before merge.

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

Rank-up moves:

Mantis proof suggestion
A browser visual proof would materially verify QR scanability, background color, and horizontal overflow across the affected web UI surfaces if this source branch or its replacement proceeds. A maintainer can ask Mantis to capture proof by posting this exact PR comment:

@openclaw-mantis visual task: verify half-block QR output renders scannably in web chat messages, sidebar content, and expanded raw tool-card details.

Risk before merge

  • [P1] Directly merging this source branch would require conflict resolution and still misses raw chat and expanded raw tool-card QR surfaces that the replacement path covers.
  • [P1] The canonical replacement PR is still open with maintainer and merge-risk labels, so closing this source PR now would remove visible source context before the fix path is settled.

Maintainer options:

  1. Continue Through Replacement (recommended)
    Finish review or repair in UI: render half-block QR output in web chat #93869 before cleaning up this source PR.
  2. Revive Source Branch
    Use this source branch only if the contributor rebases it or enables maintainers to apply the missing UI rendering coverage here.
  3. Pause Cleanup
    Keep this PR open as source proof and contributor context while the replacement PR remains unresolved.

Next step before merge

  • Human handling should continue through the replacement PR or a contributor rebase because this source branch is not the clean current landing path.

Security
Cleared: The diff is limited to UI Markdown/CSS rendering and test mocks, with no new dependency, network, permission, secret, or code-execution surface.

Review findings

  • [P2] Detect raw block art before Markdown parses it — ui/src/ui/markdown.ts:553-560
  • [P2] Style expanded raw tool-card block art — ui/src/ui/chat/tool-helpers.ts:27-30
  • [P2] Inherit sidebar code font size for block art — ui/src/styles/chat/sidebar.css:429-436
Review details

Best possible solution:

Keep this source PR open as attribution and proof context while maintainers finish, merge, or explicitly reject #93869; close this source PR after that path is settled.

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

Yes, source-reproducible: current main lacks half-block-specific rendering and the PR body plus inspected screenshots show broken then improved web dashboard QR output.

Is this the best way to solve the issue?

No as submitted: the detection and styling direction is useful, but this source branch is narrower than the required UI surface and the writable replacement is the better landing path once resolved.

Full review comments:

  • [P2] Detect raw block art before Markdown parses it — ui/src/ui/markdown.ts:553-560
    The new half-block branch only runs after Markdown has produced a fenced or indented code token. Raw multiline QR text in normal assistant or tool messages is still parsed as paragraph text, so it never receives the QR styling.
    Confidence: 0.84
  • [P2] Style expanded raw tool-card block art — ui/src/ui/chat/tool-helpers.ts:27-30
    Wrapping detected output in sidebar formatting helps the Markdown sidebar, but expanded raw tool cards still render raw output directly as pre/code text. Those expanded QR outputs keep the old spacing and remain unscannable.
    Confidence: 0.86
  • [P2] Inherit sidebar code font size for block art — ui/src/styles/chat/sidebar.css:429-436
    The sidebar half-block override resets color, line-height, background, and padding, but it does not reset font-size. The existing sidebar pre/code font sizing can still override the enlarged QR pre and make sidebar QR output smaller than intended.
    Confidence: 0.78

Overall correctness: patch is incorrect
Overall confidence: 0.86

AGENTS.md: found and applied where relevant.

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

Label changes

Label justifications:

  • P2: The PR targets a bounded web UI rendering bug affecting QR/tool output readability.
  • merge-risk: 🚨 other: Green checks do not settle source-branch cleanup while the writable replacement path is still open and not merged.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (screenshot): The supplied screenshots directly show the web UI QR rendering broken before and gap-free after the patch; contributors should still redact private endpoints or tokens in future proof artifacts.
  • proof: sufficient: Contributor real behavior proof is sufficient. The supplied screenshots directly show the web UI QR rendering broken before and gap-free after the patch; contributors should still redact private endpoints or tokens in future proof artifacts.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The supplied screenshots directly show the web UI QR rendering broken before and gap-free after the patch; contributors should still redact private endpoints or tokens in future proof artifacts.
Evidence reviewed

PR surface:

Source +126, Tests +3. Total +129 across 8 files.

View PR surface stats
Area Files Added Removed Net
Source 5 127 1 +126
Tests 3 3 0 +3
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 8 130 1 +129

Acceptance criteria:

  • [P1] node scripts/run-vitest.mjs ui/src/ui/markdown.test.ts ui/src/ui/chat/tool-helpers.test.ts ui/src/ui/chat/tool-cards.test.ts ui/src/ui/views/chat.test.ts -- --reporter=verbose.
  • [P1] git diff --check.
  • [P1] Browser visual proof for chat Markdown, sidebar Markdown, and expanded raw tool-card QR output in light and dark themes.

What I checked:

  • Repository policy read: Root AGENTS.md and the scoped UI AGENTS.md were read fully; their deep PR review, scoped UI, and conservative cleanup rules affected this review. (AGENTS.md:1, f4201578e50c)
  • Current main baseline: Current main fenced code rendering adds copy chrome and JSON collapse but has no half-block/block-art classifier or styling hook before returning code-block-wrapper markup. (ui/src/ui/markdown.ts:961, f4201578e50c)
  • Current main raw chat path: Regular chat message Markdown goes directly through toStreamingMarkdownHtml or toSanitizedMarkdownHtml, so raw multiline QR text is not detected before Markdown paragraph rendering. (ui/src/ui/chat/grouped-render.ts:1927, f4201578e50c)
  • Current main raw tool-card path: Expanded raw tool output renders direct pre/code content, so sidebar Markdown formatting alone would not cover this visible QR output surface. (ui/src/ui/chat/tool-cards.ts:523, f4201578e50c)
  • Source PR live state: Live GitHub metadata shows this source PR is open, conflicting, and maintainerCanModify=false at head 14ecfbb. (14ecfbb0e0c7)
  • Replacement PR context: The replacement PR body says it carries forward this source PR's report, proof, attribution, and intended fix path, but live metadata shows the replacement is still open with maintainer and merge-risk labels. (d265b68fac1f)

Likely related people:

  • vincentkoc: The open replacement PR is authored by vincentkoc, and path history shows recent work on Markdown rendering and tool-card UI files. (role: current replacement-path owner and recent area contributor; confidence: high; commits: d265b68fac1f, 105d77d486bf, 0c3644cb2477; files: ui/src/ui/markdown.ts, ui/src/ui/chat/tool-cards.ts)
  • BunsDev: Path history shows Control UI chat/sidebar styling work on the affected visual surfaces. (role: Markdown renderer and UI styling contributor; confidence: medium; commits: 0849cac106d1, 52370c59980b; files: ui/src/styles/chat/sidebar.css, ui/src/styles/chat/text.css)
  • steipete: Path history shows adjacent Markdown, tool-helper, and tool-card work in the affected UI paths. (role: recent adjacent contributor; confidence: medium; commits: 12a56d4d46dd, 9f5c981f9fff, 304e2c83c01f; files: ui/src/ui/markdown.ts, ui/src/ui/chat/tool-helpers.ts, ui/src/ui/chat/tool-cards.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 the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@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 May 11, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 11, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 12, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 15, 2026
@clawsweeper

clawsweeper Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

🔥 Warming up: real-behavior proof passed; findings, security review, or rank-up moves are still in progress.

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.
What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@emg110

emg110 commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

It will be great if I could have a human maintainer's verdict on whats needed here. Many thanks in advance

emg110 added 2 commits May 21, 2026 13:52
@emg110

emg110 commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

Conflicts and real behavior proof have been addressed and fixed, and all checks are now passing.

@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@emg110

emg110 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

I am waiting to be merged as I have addressed all reviews and there are no conflicts and all looks ok for merge.

@vincentkoc

Copy link
Copy Markdown
Member

Clownfish 🐠 reef update

Thanks for the contribution here. Clownfish could not safely push to this branch, so it opened a replacement PR from a writable branch and carried the contributor trail along with it.

Replacement PR: #93869
Source PR: #51868
This PR stays open for now, with the replacement linked as the current fix path.
Credit follows the fix over to the replacement PR. no sneaky treasure grab.

fish notes: model gpt-5.5, reasoning medium; reviewed against 6e155e3.

@vincentkoc

Copy link
Copy Markdown
Member

Closing as superseded by the merged replacement in #93869 (merge commit f5482ef). That replacement carried forward this PR's half-block QR rendering direction while rebasing and tightening the current UI surfaces. Thanks for the original report and implementation path here.

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 merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P2 Normal backlog priority with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. size: S status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants