Skip to content

fix(chat): show localized welcome prompts without a Gateway upgrade - #1825

Merged
RomneyDa merged 1 commit into
openclaw:mainfrom
RomneyDa:fix/windows-local-welcome-20261021
Oct 23, 2026
Merged

RomneyDa merged 1 commit into
openclaw:mainfrom
RomneyDa:fix/windows-local-welcome-20261021

Conversation

@RomneyDa

@RomneyDa RomneyDa commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

What Problem This Solves

Fixes: Windows new-chat guidance and starter buttons disappear behind an unsupported-content notice when the connected Gateway lacks the welcome-copy RPC.

User Impact

User impact: Windows shows current guidance and four starter prompts in all six supported languages without requiring a Gateway upgrade. Recent chats retain their existing behavior. Welcome copy now follows Companion releases.

Why This Change Was Made

Welcome wording is native client presentation. Use existing .resw resources and remove the welcome-only RPC, response models, and fetch/loading/error state. Selecting a starter sends its displayed localized text through the established chat path. There is no replacement network call, generated catalog, or Gateway source change.

Evidence

  • Mechanical rebase onto f5978f0f47aa021aa732dafc86e76044c4a3b622; published head is 7152456fa0aaf501c5d2c63fae97c39106266e0a. The patch is equivalent, and all affected production, localization, and test blobs match the original reviewed head.
  • Original mounted Windows welcome proof: 23 passed, 0 failed, 0 skipped, including all six languages, exact localized starter sending, recent chats, narrow layout, and composer preservation. This is retained proof for unchanged source, not a new run after rebase.
  • Independent Codex P0-P3 implementation/proof review reported no actionable findings. ClawSweeper also reported no findings on the original patch; its documented live-Gateway proof limitation remains explicit.
  • All selected hosted CI lanes and CI Gate passed on the rebased head. Native ARM64 full build passed; Shared/Tray retained only 19 environment/fixture failures, including four new base-only ARM64 prerequisite cases reproduced on frozen main.

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

Required proof pools

  • windows-winui-interactive: focused mounted production welcome rendering and interaction, with inspected before/after screenshots on an isolated Windows 11 ARM64 Parallels desktop. This does not claim every scenario in the pool.

Validation

Rebased candidate: 7152456fa0aaf501c5d2c63fae97c39106266e0a, based on f5978f0f47aa021aa732dafc86e76044c4a3b622. Native closeout uses an isolated, source-pinned Windows 11 ARM64 checkout and .NET SDK 10.0.402. Test projects are explicitly built before the first --no-restore invocation so executed test counts are verified.

Command Native ARM64 result
./build.ps1 Passed, exit 0, 62.67 s outer wall time.
dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore 4,639 passed, 3 failed, 27 skipped; 132.63 s outer wall time.
dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore 4,451 passed, 16 failed, 0 skipped; 119.51 s outer wall time.

These broad native suites are not claimed green. Fifteen failures match the prior unchanged-base reproductions: missing pwsh (2 Shared, 9 Tray), symbolic-link privilege (1 Shared), redirected Home reparse points (2 Tray), and ARM64 app-local VC++ runtime loading (1 Tray). The affected owners remain byte-identical across the rebase. Four additional BuildPrerequisiteTests.CheckOnly_UsesTheAppLocalRuntimeResolver cases reproduce on frozen main f5978f0f47aa021aa732dafc86e76044c4a3b622: the ARM64 guest observes ARM64 despite the fixture's child AMD64 override. All four execute and fail with the same prerequisite-output mismatch. Their test/build owners also match frozen main exactly.

Two earlier proof attempts were fixture failures, not welcome regressions: a single-branch/no-tags clone omitted GitVersion's normal refs, then Start-Process -Wait waited for an MSBuild descendant after the build exited. The final source-pinned attempt retained normal refs and used direct WaitForExit(). Original failures were retained and the three required commands completed.

Static rebase checks pass: git diff --check, equivalent git range-diff, all 36 localized welcome values populated across six languages, and no retired welcome-RPC references.

Hosted CI

Current-head Build and Test, attempt 1: CI Gate passed. Core/CLI, Tray/setup/integration, UI/functional/accessibility, setup/connect, revocation recovery, and network recovery all passed. Classification, fast validation, and proof-pool contracts also passed. Release-only lanes were intentionally not selected. GitHub tested merge commit 1a0cc0417f0e, whose parents are the frozen base and PR head above; this is new-head CI, not reused old-head green.

The previous Build and Test run passed Core/CLI, Tray/setup/integration, and UI/functional/accessibility. All three WSL lanes failed before chat because the old NodeVersion pin was 24.19.0, below the installer's supported minimum. The requested rebase incorporates the merged Node runtime fix (24.22.1) and the existing E2E hang-guard repair; no welcome patch change or speculative CI rerun was needed.

Real Behavior Proof

  • Environment tested: Windows 11 ARM64 build 26200, .NET SDK 10.0.402, isolated profiles, and synthetic chat data.
  • PR head or commit tested: original final candidate 5e273c01a7fdabd6b683cc14caff81bca48df3c0. The rebase to 7152456fa0aaf501c5d2c63fae97c39106266e0a leaves every welcome production/resource/UI-test blob unchanged. The original UI run preceded only the removal of one obsolete non-UI styling assertion.
  • Exact steps or command run: dotnet test ./tests/OpenClaw.Tray.UITests/OpenClaw.Tray.UITests.csproj -r win-arm64 --filter FullyQualifiedName~ReactorChatLayoutProofTests.Welcome_ (92.93 s outer wall time, 23 passed, 0 failed/skipped).
  • Evidence after fix: the mounted production renderer receives no welcome catalog yet displays localized guidance and four starters, preserves the draft, and sends the selected starter's exact displayed text. The six localized cases fail on the original unchanged base for the unsupported-Gateway notice and pass on the candidate.
  • Observed result: welcome presentation no longer depends on Gateway version; existing recent-chat and first-send contracts retain coverage.
  • Screenshot or artifact links verified? Yes. The public image URLs resolve to the original inspected PNGs; the image contents are unchanged.
  • Not verified or blocked: a shipped Companion process connected to a real older Gateway/provider, a complete custom accessibility pool, or release installation/upgrade. This is native mounted-control boundary proof, not live pairing/provider proof. These unchanged contracts are not claimed tested.
Before: no welcome RPC After: bundled native resources
Before: unsupported-Gateway notice and no starter buttons After: local guidance and four starter buttons
All six supported languages

Native welcome text in English, French, Dutch, Brazilian Portuguese, Simplified Chinese, and Traditional Chinese

Security Impact

  • New permissions or capabilities? No
  • Secrets or tokens handling changed? No
  • New or changed network calls? Yes. The welcome-only RPC read is removed, with no replacement call or expanded access.
  • Command or tool execution surface changed? No
  • Data access scope changed? No
  • If any answer is Yes, explain the risk and mitigation: Removing the read eliminates its network dependency. Agent identity, recent sessions, and normal chat sending keep their existing owners and authorization.

Compatibility and Migration

  • Backward compatible? Yes
  • Config or environment changes? No
  • Migration needed? No
  • If yes, list the exact upgrade steps: None. Welcome copy updates with the Windows app, independently of Gateway version.

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.

There are no unresolved review threads. No merge or auto-merge is requested.

@clawsweeper

clawsweeper Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@RomneyDa RomneyDa added the status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. label Oct 22, 2026
@RomneyDa
RomneyDa marked this pull request as ready for review October 22, 2026 06:34
@RomneyDa RomneyDa removed the status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. label Oct 22, 2026
@clawsweeper clawsweeper Bot added clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. P2 Normal priority bug or improvement with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed clawsweeper:intake:bug Preliminary submission classification; full source review pending. clawsweeper:intake:needs-repro Preliminary submission classification; full source review pending. labels Oct 22, 2026
@clawsweeper

clawsweeper Bot commented Oct 22, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge.

What this changes

This PR bundles localized welcome guidance and starter prompts in Companion and removes the welcome-only Gateway RPC path.

Example: An English empty chat connects to a Gateway without controlUi.welcome.get.

  • Before: The welcome area shows an unsupported-content notice without starter buttons.
  • After: It shows local guidance and four starters, including “What can you do?”.

Review scores

Measure Result What it means
Overall readiness 🦐 gold shrimp (3/6) Focused, correct source change with useful native rendering evidence and passing affected CI lanes; behavioral validation remains at the mounted-control boundary.
Proof confidence 🦐 gold shrimp (3/6) This maintainer-authored PR is outside the ordinary contributor proof gate; inspected Windows ARM64 screenshots show the changed renderer in six languages, and reported mounted checks exercise localized starter clicks, but they do not establish shipped-process Gateway behavior.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Bug fix · Worth it: Yes · Fix scope: Complete
User problem: Users connecting to Gateways without the welcome method lose useful new-chat guidance and starter buttons.
Reason: The maintainer-authored direction removes an unnecessary Gateway upgrade dependency using existing native localization resources.

Merge readiness

✅ Ready for maintainer review

Keep this PR open: current main still requires the welcome RPC, and the maintainer-authored replacement is focused and useful; no actionable patch defect was found.

Priority: P2
Reviewed head: 5e273c01a7fdabd6b683cc14caff81bca48df3c0

Before merge

None.

Findings

None.

Tests

  • Missing end-to-end proof: The supplied rendering and click checks use mounted production controls with a synthetic provider, rather than a shipped Companion process connected to an older Gateway.
Agent review details

How this fits together

Native chat renders localized resources alongside Gateway-provided agent identity and recent sessions; selecting a starter passes its displayed text to the existing chat controller.

flowchart LR
  A[Native localized resources] --> B[Welcome renderer]
  C[Agent and recent session data] --> B
  B --> D[Chat composer controller]
  D --> E[Chat data provider]
  E --> F[Gateway chat send]
Loading

Technical review

Best possible solution:

Keep welcome presentation in existing native resources while preserving the established chat-send and recent-navigation owners.

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

Current-main source deterministically hides starters when the Gateway lacks the advertised welcome method, consistent with the supplied before screenshot; no target code was executed during this read-only review.

Is this the best way to solve the issue?

The patch uses the existing localization owner and removes the replaced network path completely, making it a small, coherent solution to the stated presentation problem.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against e4d79798bd59.

Provenance checked

  • Welcome copy ownership, catalog transport, presentation state, and corresponding tests changes intended behavior with a stated reason (61979d6: The earlier welcome feature intentionally mirrored dashboard copy through a Gateway catalog and documented unsupported released Gateways.)

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Likely related people:

  • Karen: Raw commit 61979d6 adds src/OpenClaw.Tray.WinUI/Chat/ReactorChatWelcome.cs:28 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 61979d6170a0; files: src/OpenClaw.Tray.WinUI/Chat/ReactorChatWelcome.cs)
  • Barbara Kudiess: Raw commit 5164faa adds src/OpenClaw.Tray.WinUI/Chat/OpenClawReactorChatRoot.cs:303 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 5164faab1df6; files: src/OpenClaw.Tray.WinUI/Chat/OpenClawReactorChatRoot.cs)

Labels

Label changes:

  • add P2: Missing welcome guidance and starters cause limited chat friction, while the composer remains usable.
  • add proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence.
  • add rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.

Label justifications:

  • P2: Missing welcome guidance and starters cause limited chat friction, while the composer remains usable.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦐 gold shrimp and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

Reviewed October 22, 2026, 2:52 AM ET / 06:52 UTC.

@RomneyDa
RomneyDa force-pushed the fix/windows-local-welcome-20261021 branch from 5e273c0 to 7152456 Compare October 22, 2026 22:33
@RomneyDa RomneyDa added status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. and removed status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. labels Oct 22, 2026
@RomneyDa
RomneyDa merged commit ef05d53 into openclaw:main Oct 23, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P2 Normal priority bug or improvement with limited blast radius. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant