Skip to content

refactor(chat): remove the retired FunctionalUI chat surface - #1110

Merged
karkarl merged 4 commits into
openclaw:mainfrom
calebeden:calebeden-remove-legacy-chat-ui
Aug 20, 2026
Merged

refactor(chat): remove the retired FunctionalUI chat surface#1110
karkarl merged 4 commits into
openclaw:mainfrom
calebeden:calebeden-remove-legacy-chat-ui

Conversation

@calebeden

@calebeden calebeden commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Related: #1115

What Problem This Solves

The native chat codebase still carried a complete FunctionalUI chat root, timeline, composer, virtualization layer, resources, and focused proof fixtures after production ChatPage and ChatWindow had moved to Reactor. This left two apparent owners for chat presentation and preserved several thousand lines of unreachable migration code.

Why This Change Was Made

This removes the retired FunctionalUI chat implementation and its chat-only virtualization infrastructure, resources, and migration-debt tests. Production chat remains owned by OpenClawReactorChatRoot and ReactorChatTimeline; the presentation inputs formerly declared by the legacy timeline now live in the Reactor-neutral ChatTimelinePresentationContext record. FunctionalUI remains available for active consumers such as Cron markdown rendering.

This PR intentionally does not design or add a replacement Reactor runtime-test suite. The deleted proofs mounted the unreachable FunctionalUI renderer and contained assertions tied to VirtualStack, ItemsRepeater, FunctionalUI control caches and reconciliation, removed XAML styles, and legacy scroll-timer mechanics. Porting the still-relevant user-facing invariants requires Reactor-specific test design rather than a mechanical test migration. That separate work is tracked in #1115 so this PR remains focused on deleting unreachable code and tests that no longer exercise production behavior.

User Impact

No user-visible behavior is intended to change. Native chat continues to use the existing Reactor surface, while maintainers now have one production chat implementation and substantially less dead code to maintain.

Evidence

  • Current-head full repository build succeeded on Windows ARM64, including validation of 45 Markdown files.
  • Current-head Shared suite passed: 3,412 passed, 32 skipped.
  • Current-head Tray suite passed: 2,162 passed, 0 skipped.
  • The existing real WinUI ReactorToolActivityProofTests ran against the chat-runtime-identical parent: 1 passed, 0 failed, 0 skipped.
  • The production binary launched successfully. UI Automation found the native Chat messages list and ChatComposerInput editor in the selected Chat route.
  • The captured zero-state Chat surface contained no private conversation content, credentials, or tokens and showed no clipping, overlap, or broken layout.
  • The latest merge changed no production ChatPage, ChatWindow, or Reactor chat source files relative to the runtime capture.
  • The focused production ownership contract verifies that both ChatPage and ChatWindow mount OpenClawReactorChatRoot through ReactorChatHostExtensions.
  • A dual-model Hanselman review of the chat integration found no actionable issues.
  • Follow-up test(chat): add Reactor runtime coverage for timeline behavior #1115 defines broader Reactor-hosted runtime coverage without restoring obsolete FunctionalUI implementation assertions.

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Docs or instructions
  • Tests or validation
  • Security hardening
  • Chore or infrastructure

Scope

  • Tray or WinUI UX
  • Windows node capability
  • Local MCP or winnode
  • Gateway, connection, or pairing
  • Setup or onboarding
  • Permissions, privacy, or security
  • Tests, CI, or docs

Validation

  • ./build.ps1
    • Passed on 2829648f556e96f929fdb18de64fb3ee2c36a3aa: documentation validation, Shared, CLI, WinNode CLI, SetupEngine, and WinUI builds.
  • dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore
    • Passed on 2829648f556e96f929fdb18de64fb3ee2c36a3aa: 3,412; skipped: 32; failed: 0.
  • dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore
    • Passed on 2829648f556e96f929fdb18de64fb3ee2c36a3aa: 2,162; skipped: 0; failed: 0.
  • dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore --filter "FullyQualifiedName~ArchitectureLedgerConsistencyTests"
    • Passed on the resolved 2829648f556e96f929fdb18de64fb3ee2c36a3aa tree: 6; skipped: 0; failed: 0.
  • dotnet test ./tests/OpenClaw.Tray.UITests/OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --filter "FullyQualifiedName~ReactorToolActivityProofTests"
    • Passed on cb76e845739960ae1cfad9f7e85fd58f30dd8c82: 1; skipped: 0; failed: 0. The subsequent merge changed no production chat runtime files.

Real Behavior Proof

  • Environment tested: Windows 11 ARM64, .NET 10 preview SDK, Windows App SDK build target win-arm64.

  • Current PR head validated: 2829648f556e96f929fdb18de64fb3ee2c36a3aa.

  • Runtime chat capture commit: cb76e845739960ae1cfad9f7e85fd58f30dd8c82.

  • Runtime equivalence check: git diff --name-only cb76e845..2829648f -- src/OpenClaw.Tray.WinUI/Chat src/OpenClaw.Tray.WinUI/Pages/ChatPage.xaml.cs src/OpenClaw.Tray.WinUI/Windows/ChatWindow.xaml.cs returned no changed files.

  • Exact production command run: winapp run ".\src\OpenClaw.Tray.WinUI\bin\Debug\net10.0-windows10.0.22621.0\win-arm64" --manifest ".\src\OpenClaw.Tray.WinUI\Package.appxmanifest" --executable "OpenClaw.Tray.WinUI.exe" --debug-output.

  • Executed Reactor-host proof: dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --filter "FullyQualifiedName~ReactorToolActivityProofTests" passed 1 of 1 tests.

  • Sanitized production UIA transcript:

    winapp ui search 'Chat messages' -w <window>
      lst-chatmessages-af60 List "Chat messages"
    Found 1 matches
    
    winapp ui search ChatComposerInput -w <window>
      ChatComposerInput Edit "Message Assistant (Enter to send)"
    Found 1 matches
    
  • Evidence after fix: The production Chat route mounted a native message list and composer. The connected zero-state surface rendered its welcome content and suggestions with the composer empty.

  • Observed result: The retained Reactor chat route is operational, and the current head contains the same production chat runtime files as the captured commit. This is a regression smoke, not a claim that runtime evidence alone proves the deleted implementation was unreachable.

  • Screenshot or artifact links verified? (Yes/No/N/A): N/A. The directly copied UIA transcript and executed Reactor-host test are the proof items.

  • Not verified or blocked: The popup ChatWindow was not captured in the runtime smoke. Its production Reactor mount remains covered by the positive ownership contract. Broader Reactor timeline runtime coverage is tracked in test(chat): add Reactor runtime coverage for timeline behavior #1115.

Security Impact

  • New permissions or capabilities? (Yes/No): No.
  • Secrets or tokens handling changed? (Yes/No): No.
  • New or changed network calls? (Yes/No): No.
  • Command or tool execution surface changed? (Yes/No): No.
  • Data access scope changed? (Yes/No): No.
  • If any answer is Yes, explain the risk and mitigation: N/A.

Compatibility and Migration

  • Backward compatible? (Yes/No): Yes.
  • Config or environment changes? (Yes/No): No.
  • Migration needed? (Yes/No): No.
  • If yes, list the exact upgrade steps: N/A.

Review Conversations

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

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Aug 6, 2026
@clawsweeper

clawsweeper Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codex review: needs real behavior proof before merge. Reviewed August 20, 2026, 12:31 PM ET / 16:31 UTC.

ClawSweeper review

What this changes

This PR removes the retired FunctionalUI native-chat implementation and legacy-only tests, leaving Reactor as the production ChatPage and ChatWindow renderer.

Merge readiness

Blocked until stronger real behavior proof is added - 3 items remain

Keep open for current-head proof refresh. The latest commit preserves the assistant-media callback that current main uses, but the submitted runtime evidence predates that commit.

Priority: P3
Reviewed head: 3d3e9e5e36776a9cde3b199014093120480c60e9

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) The source repair is sound and focused, but current-head real behavior proof is still required before merge.
Proof confidence 🦐 gold shrimp (3/6) Needs stronger real behavior proof before merge: The submitted UI Automation proof is useful but predates the current head, whose new media-callback wiring needs its own redacted after-fix runtime result. 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.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Needs proof Needs stronger real behavior proof before merge: The submitted UI Automation proof is useful but predates the current head, whose new media-callback wiring needs its own redacted after-fix runtime result. 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.
Evidence reviewed 5 items Current-head media propagation: The Reactor root obtains the provider resolver and passes it into the new presentation context; the retained Reactor timeline passes that context resolver to the assistant-media renderer.
Current-main contract: Current main already routes the same resolver through the previous timeline-props type into ChatAssistantMediaRenderer, so the refactor retains rather than replaces that behavior.
Latest repair provenance: Blame attributes the new resolver wiring to the current-head repair commit, which directly addresses the prior review finding.
Findings None None.
Security None None.

Live Verification

Command: .\run-app-local.ps1 -Isolated

Result: FAIL (failed) — execution before step 1 run: sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

sh -lc pnpm install --ignore-scripts --frozen-lockfile failed: ! Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.22.0.tgz

Assertions:

  • FAIL expect_output: Chat messages

How this fits together

Gateway chat state reaches the shared chat provider, then the Reactor root builds timeline inputs for the WinUI chat page and popup. The timeline uses those inputs to render messages, tool cards, and assistant media.

flowchart LR
A[Gateway chat events] --> B[Chat data provider]
B --> C[Reactor chat root]
C --> D[Timeline presentation context]
D --> E[Reactor timeline]
E --> F[Assistant media cards]
E --> G[Chat page and popup]
Loading

Before merge

  • Add real behavior proof - Needs stronger real behavior proof before merge: The submitted UI Automation proof is useful but predates the current head, whose new media-callback wiring needs its own redacted after-fix runtime result. 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.
  • Resolve merge risk (P2) - The refactor removes the legacy fallback implementation, so assistant-media behavior should be exercised on the current head before the sole Reactor path lands.
  • Complete next step (P2) - The remaining merge blocker is contributor-provided real behavior proof, not a safe automated repair task.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Refactor size 31 files, +150/-7,788 lines The patch is predominantly dead-code removal, so retained runtime paths need focused confirmation.
Production and test delta production +44/-6,345; tests +93/-1,419 The small production adapter preserves the remaining Reactor path while obsolete FunctionalUI-focused coverage is removed.

Merge-risk options

Maintainer options:

  1. Refresh assistant-media proof (recommended)
    Run the current head and capture a redacted assistant-media render or equivalent live diagnostic showing the resolver path succeeds.

Technical review

Best possible solution:

Keep Reactor as the sole native-chat owner and add redacted current-head proof that an assistant image resolves and renders through the retained provider-to-timeline path.

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

Not applicable: this is a refactor, not a bug report; source inspection verifies the retained media callback path, while current-head runtime proof remains needed.

Is this the best way to solve the issue?

Yes, subject to current-head proof: moving shared inputs to the Reactor-neutral context preserves the established production owner without retaining duplicate FunctionalUI code.

AGENTS.md: found and applied where relevant.

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

Labels

Label changes:

  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The submitted UI Automation proof is useful but predates the current head, whose new media-callback wiring needs its own redacted after-fix runtime result. 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.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🦐 gold shrimp, so this older rating label is no longer current.
  • remove proof: sufficient: Current real behavior proof status is insufficient, not sufficient.
  • remove status: ⏳ waiting on author: Current PR status label is status: 📣 needs proof.

Label justifications:

  • P3: This is a maintenance cleanup with no intended user-visible feature change.
  • merge-risk: 🚨 compatibility: Removing the retired implementation leaves Reactor as the only native chat renderer, including the assistant-media path.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs stronger real behavior proof before merge: The submitted UI Automation proof is useful but predates the current head, whose new media-callback wiring needs its own redacted after-fix runtime result. 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.

Evidence

What I checked:

Likely related people:

  • calebeden: Merged current-main commit a76c852 added native user and assistant media rendering used by the retained Reactor path. (role: introduced current media behavior; confidence: high; commits: a76c85218c7d; files: src/OpenClaw.Tray.WinUI/Chat/ChatAssistantMediaRenderer.cs, src/OpenClaw.Tray.WinUI/Chat/ReactorChatTimeline.cs)
  • karkarl: Authored the current-head repair that preserves media resolution during this cleanup. (role: recent area contributor; confidence: high; commits: 3d3e9e5e3677; files: src/OpenClaw.Tray.WinUI/Chat/OpenClawReactorChatRoot.cs, src/OpenClaw.Tray.WinUI/Chat/ChatTimelinePresentationContext.cs)

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Capture a redacted current-head assistant-media render or runtime trace, then update the PR body to name the reviewed commit.

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
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.

Workflow

  • 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.

History

Review history (25 earlier review cycles; latest 8 shown)
  • reviewed 2026-08-09T03:16:05.815Z sha 2829648 :: needs changes before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-09T09:28:17.376Z sha 2829648 :: needs changes before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-09T11:59:58.447Z sha 2829648 :: found issues before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-09T14:51:00.368Z sha 2829648 :: found issues before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-12T00:07:03.842Z sha 2829648 :: found issues before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-12T04:19:16.123Z sha 2829648 :: found issues before merge. :: [P1] Rebase and resolve the current-main conflicts
  • reviewed 2026-08-12T13:17:31.481Z sha 2829648 :: found issues before merge. :: [P1] Rebase and resolve the current-main chat conflicts
  • reviewed 2026-08-19T23:51:10.560Z sha 2829648 :: found issues before merge. :: [P1] Rebase and retain the assistant-media chat path

@clawsweeper clawsweeper Bot added merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. P2 Normal priority bug or improvement with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Aug 6, 2026
@calebeden

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 7, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. 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. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. 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. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. 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. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. labels Aug 7, 2026
@calebeden
calebeden marked this pull request as ready for review August 7, 2026 21:28
@clawsweeper clawsweeper Bot added merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. 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 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. 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. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Aug 8, 2026
@karkarl karkarl added the status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. label Aug 19, 2026
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 19, 2026
calebeden and others added 4 commits August 20, 2026 09:17
Remove the unreachable FunctionalUI chat root, timeline, composer, virtualization helpers, proof fixtures, and migration-debt tests. Keep remaining FunctionalUI consumers intact and guard production chat ownership through the Reactor mount path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1bf3409c-6c88-4d6c-b015-7e9cbf5e02da
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1bf3409c-6c88-4d6c-b015-7e9cbf5e02da
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1bf3409c-6c88-4d6c-b015-7e9cbf5e02da
@karkarl
karkarl force-pushed the calebeden-remove-legacy-chat-ui branch from 2829648 to 3d3e9e5 Compare August 20, 2026 16:26
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. proof: sufficient Contributor real behavior proof is sufficient. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels Aug 20, 2026
@karkarl

karkarl commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Current-head chat E2E proof

Validated commit 3d3e9e5e on Windows ARM64 using the real WinUI process and isolated tray data.

  • Native chat visual and UI Automation proof: 1 passed. The production chat route rendered user and assistant history, the Reactor tool activity group, expanded tool rows, trusted tool input, redacted sensitive input, and the composer.
  • Session-to-chat routing proof: 1 passed. Duplicate visible titles remained distinct, and both Open in chat actions selected the original session keys.
  • Chat accessibility and composer layout: 2 passed. Axe.Windows reported no chat-page accessibility errors, and composer controls had visible nonzero UIA bounds.
  • Reactor activity, mounted-host disposal, and image-paste fencing: 8 passed.
dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --filter "FullyQualifiedName~NativeToolIdentityScreenshotProofTests"
dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --no-build --filter "FullyQualifiedName~SessionTitleBehaviorProofTests"
dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --no-build --filter "DisplayName~ChatPage|FullyQualifiedName~ChatComposerControls_ExposeOnscreenLayoutThroughUia"
dotnet test .\tests\OpenClaw.Tray.UITests\OpenClaw.Tray.UITests.csproj -r win-arm64 --no-restore --no-build --filter "FullyQualifiedName~MountedReactorChatDisposalProofTests|FullyQualifiedName~ChatComposerControllerPasteFencingProofTests|FullyQualifiedName~ReactorToolActivityProofTests"

Full chat surface

Current-head Reactor chat surface with history, expanded activity, and composer

Expanded activity detail

Focused crop of the same current-head capture. It shows the three expanded tool rows, bounded inputs, and the sensitive command rendered as [redacted].

Expanded Reactor tool activity detail

@karkarl
karkarl merged commit d3ed6c7 into openclaw:main Aug 20, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 compatibility 🚨 Merging this PR could break existing users, config, migrations, defaults, or upgrades. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants