Skip to content

Fix Control UI CJK IME composition#91087

Closed
clawsweeper[bot] wants to merge 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-86036
Closed

Fix Control UI CJK IME composition#91087
clawsweeper[bot] wants to merge 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-86036

Conversation

@clawsweeper

@clawsweeper clawsweeper Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Makes #86036 merge-ready for the ClawSweeper automerge loop.
The edit pass should inspect the live PR diff, review comments, and failing checks; rebase if needed; keep the contributor branch credited; and stop only when validation is green or an external blocker is proven.
Known failing checks:

ClawSweeper 🐠 replacement reef notes:

  • Repair fallback: GitHub rejected the repair branch push because it updates workflow files and the ClawSweeper app token does not have workflows permission

Inherited issue-closing references from the source PR:
Fixes #86035

Co-author credit kept:

fish notes: model gpt-5.5, reasoning high; reviewed against e1e7ee5.

@clawsweeper clawsweeper Bot added app: web-ui App: web-ui clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation labels Jun 7, 2026
@clawsweeper

clawsweeper Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

Codex review: needs maintainer review before merge. Reviewed June 15, 2026, 9:20 AM ET / 13:20 UTC.

Summary
Ports the Control UI chat composer CJK IME composition fix from the source PR, adding composition state/handlers and regression tests plus unrelated script, CLI, and bundled-plugin validation edits.

PR surface: Source +28, Tests +90, Other +9. Total +127 across 16 files.

Reproducibility: yes. at source level: current main still has only the Enter IME guard while normal textarea input syncs draft/slash state, and the linked bug report gives concrete macOS Chrome CJK steps. I did not run a live IME session in this read-only pass.

Review metrics: 2 noteworthy metrics.

  • Non-UI repair spillover: 14 non-UI files touched. The stated user-facing fix is in the Control UI, so the scripts, CLI, and bundled-plugin edits need separate maintainer validation or removal.
  • Current-main drift: 1095 commits behind current main. The PR head is old enough that GitHub reports a conflicting/dirty merge result, so old-base diff review is not sufficient before merge.

Stored data model
Persistent data-model change detected: serialized state: extensions/qa-lab/src/runtime-tool-fixture.ts, vector/embedding metadata: extensions/memory-core/doctor-contract-api.test.ts, vector/embedding metadata: extensions/memory-core/doctor-contract-api.ts, vector/embedding metadata: extensions/memory-core/src/short-term-promotion.ts. Confirm migration or upgrade compatibility proof before merge.

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:

  • Refresh or replace the branch against current main so GitHub has a clean merge result.
  • [P2] Remove the non-UI repair spillover or add targeted validation for each retained script, CLI, and plugin edit.
  • Rerun the relevant changed checks after the branch shape is settled.

Mantis proof suggestion
A short browser proof would materially show the refreshed Control UI composer still accepts and commits CJK IME text after the branch is repaired. 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 the Control UI chat composer accepts and commits Chinese IME text after the refreshed IME composition fix.

Risk before merge

  • [P1] The live PR is CONFLICTING/DIRTY and 1095 commits behind current main, so maintainers need a refreshed merge result before landing.
  • [P1] The branch still changes 14 non-UI files across scripts, CLI, and bundled plugins, which is broader than the Control UI IME proof covers.
  • [P1] The diff touches e2e and release-check automation while the live rollup still has build-artifacts and runtime-topology failures, so normal UI proof does not settle the automation blast radius.

Maintainer options:

  1. Refresh as a narrow UI branch (recommended)
    Rebase or replace this branch against current main and keep only the composer fix plus focused UI tests unless maintainers explicitly want the extra repair edits.
  2. Keep spillover only with targeted proof
    If maintainers want to retain the script, CLI, and plugin edits, require targeted validation for those surfaces in addition to the IME proof.
  3. Pause this replacement
    If the stale branch is too broad to repair cleanly, close it after opening a narrower credited replacement from the useful source PR work.

Next step before merge

  • [P2] The remaining blocker is maintainer handling of a conflicting automerge replacement branch and a branch-shape decision, not a narrow safe automated repair.

Security
Cleared: The diff does not add dependencies, workflow permissions, package-resolution changes, secret handling, or new third-party code execution; the security pass found no concrete supply-chain concern.

Review details

Best possible solution:

Land a refreshed, source-credited Control UI composer fix with its regression tests, with non-UI repair spillover removed or separately validated before merge.

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

Yes at source level: current main still has only the Enter IME guard while normal textarea input syncs draft/slash state, and the linked bug report gives concrete macOS Chrome CJK steps. I did not run a live IME session in this read-only pass.

Is this the best way to solve the issue?

No, not as-is. The UI-layer fix is the right shape, but the replacement branch must be refreshed and narrowed or have separate proof for the non-UI automation/plugin edits.

AGENTS.md: found and applied where relevant.

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

Label changes

Label changes:

  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • remove rating: 🧂 unranked krab: Current PR rating is rating: 🦐 gold shrimp, so this older rating label is no longer current.

Label justifications:

  • P1: The PR addresses a user-facing Control UI/WebChat regression that can make normal CJK IME chat input unusable for affected users.
  • merge-risk: 🚨 automation: The diff changes e2e and release-check automation scripts, and the live head still has automation-related failed checks that UI proof does not settle.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: 🚀 automerge armed: This PR is in ClawSweeper's automerge lane. Sufficient (screenshot): The linked source PR supplies after-fix macOS Chrome Control UI proof with committed Chinese text retained in the composer plus terminal output showing the composition handlers in the served bundle.
  • proof: sufficient: Contributor real behavior proof is sufficient. The linked source PR supplies after-fix macOS Chrome Control UI proof with committed Chinese text retained in the composer plus terminal output showing the composition handlers in the served bundle.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The linked source PR supplies after-fix macOS Chrome Control UI proof with committed Chinese text retained in the composer plus terminal output showing the composition handlers in the served bundle.
Evidence reviewed

PR surface:

Source +28, Tests +90, Other +9. Total +127 across 16 files.

View PR surface stats
Area Files Added Removed Net
Source 7 47 19 +28
Tests 3 92 2 +90
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 6 30 21 +9
Total 16 169 42 +127

What I checked:

  • Repository policy read: Root AGENTS.md and the scoped ui, scripts, and extensions guides were read; the review applied the repo guidance to inspect whole changed surfaces and treat automation/script spillover as merge risk. (AGENTS.md:1, dd7f2ef002e8)
  • Current main still lacks the IME input fix: Current main only guards Enter/send for IME composition; normal textarea input still updates the local mirror, conditionally commits draft state, and updates slash menu state without compositionstart/compositionend handling. (ui/src/ui/views/chat.ts:2339, dd7f2ef002e8)
  • PR head adds the central UI fix: The PR head adds composer composition state, returns early from keydown while composing, defers input sync during composition, and commits on compositionend. (ui/src/ui/views/chat.ts:1814, e1e7ee5a7e35)
  • PR head includes focused regression tests: The PR head adds tests for deferring draft sync, preserving composing text across stale host rerenders, and leaving composing keydown events to the browser. (ui/src/ui/views/chat.test.ts:1653, e1e7ee5a7e35)
  • Issue remains source-reproducible: The linked bug report gives concrete macOS Chrome Control UI CJK IME steps and identifies that input syncing, not only Enter handling, breaks composition.
  • Source PR proof is relevant: The source PR body reports live macOS Chrome Control UI proof with committed Chinese text retained in the composer and terminal output showing the served bundle contains composerComposing plus compositionstart/compositionend handlers. (6dca70915d9e)

Likely related people:

  • vincentkoc: Recent current-main history includes the local-draft, slash-command, submitted-progress, and kitchen-sink script work adjacent to both the UI fix and automation spillover. (role: recent area contributor; confidence: high; commits: 61574eb50bd4, b3c946999d71, bff66a3e4992; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.ts, scripts/e2e/lib/kitchen-sink-plugin/assertions.mjs)
  • Solvely-Colin: Recent current-main commits changed the Control UI chat/composer layout and tests in the same files that now conflict with the stale replacement branch. (role: recent adjacent contributor; confidence: medium; commits: fd855c831f77, 1a8747620e81; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.ts)
  • sallyom: Recent current-main work touched the chat composer clear-after-send and workspace panel behavior near the draft/composer path. (role: adjacent contributor; confidence: medium; commits: c1ce51546e5f, d03932af18bf; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.ts)
  • steipete: Recent history includes Control UI composer controls and documentation work adjacent to the chat composer behavior under review. (role: related feature-history contributor; confidence: medium; commits: d328a0d7a0da, 2b30951b8090, 12a56d4d46dd; files: ui/src/ui/views/chat.ts, ui/src/ui/views/chat.test.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.

@blacksmith-sh

blacksmith-sh Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
gateway:watch did not report ready before the idle CPU window/
gateway:watch did not report ready before the idle CPU window
View Logs
Possible duplicate dist-runtime graph regression: this can reintroduce split runtime pe
rsonalities where plugins and core observe different global state, including Telegram m
issing /voice, /phone, or /pair.
View Logs

Fix in Cursor

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane. clawsweeper:human-review Needs maintainer review before ClawSweeper can continue labels Jun 7, 2026
@clawsweeper

clawsweeper Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

🦞✅
ClawSweeper is pausing this repair loop for human review.

Source: clawsweeper[bot]
Reason: - [P2] The remaining blocker is maintainer handling of a conflicting automerge replacement branch and a branch-shape decision, not a narrow safe automated repair.; Cleared: The diff does not add dependencies, workflow permissions, package-resolution changes, secret handling, or new third-party code execution; the security pass found no concrete supply-chain concern. (sha=e1e7ee5a7e35d7216910d0c2a6042ffde326521a)

Why human review is needed:
This item has security-sensitive risk. ClawSweeper is pausing instead of making an autonomous change that could affect trust, credentials, permissions, or exposure.

What the maintainer can do as a next step:
If the maintainer accepts the current risk and wants ClawSweeper to continue merge gates, comment @clawsweeper approve. If the security-sensitive detail still needs changes, describe the safe path or push the fix, then comment @clawsweeper automerge. If the risk should not be automated, keep the PR paused for manual review or comment @clawsweeper stop.

I added clawsweeper:human-review and left the final call with a maintainer.

@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. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Jun 7, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. P1 High-priority user-facing bug, regression, or broken workflow. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels Jun 15, 2026
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. label Jun 15, 2026
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jun 15, 2026
@vincentkoc

Copy link
Copy Markdown
Member

Superseded by the narrow current-main fix in #93498: b037280

The landed PR preserves CJK IME composition with focused UI regression coverage and avoids this replacement branch's stale non-UI drift. Closing the superseded replacement.

@vincentkoc vincentkoc closed this Jun 16, 2026
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 clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper:human-review Needs maintainer review before ClawSweeper can continue clawsweeper Tracked by ClawSweeper automation cli CLI command changes extensions: device-pair extensions: memory-core Extension: memory-core extensions: qa-lab merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. P1 High-priority user-facing bug, regression, or broken workflow. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. scripts Repository scripts size: M status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Control UI chat composer breaks CJK IME composition

1 participant