Skip to content

fix(setup): avoid duplicate failure message - #1187

Open
RomneyDa wants to merge 1 commit into
mainfrom
fix/setup-failure-single-error
Open

fix(setup): avoid duplicate failure message#1187
RomneyDa wants to merge 1 commit into
mainfrom
fix/setup-failure-single-error

Conversation

@RomneyDa

Copy link
Copy Markdown
Member

Summary

  • show setup failure details only in the red error card
  • hide the gray subtitle on failure while preserving it on success
  • add a regression contract test for the single-message presentation

This is independent of #1178. The duplicate rendering already exists on main, and #1178 does not change the failure-state logic.

Validation

  • git diff --check (passed)
  • .agents/skills/autoreview/scripts/autoreview --mode local (passed, no accepted/actionable findings)
  • pwsh -NoProfile -File ./build.ps1 (blocked: pwsh is not installed on this macOS controller)
  • dotnet test ./tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj --no-restore (blocked: dotnet is not installed)
  • dotnet test ./tests/OpenClaw.Tray.Tests/OpenClaw.Tray.Tests.csproj --no-restore (blocked: dotnet is not installed)
  • Crabbox native Windows validation (blocked: Crabbox is not installed, so no provider or lease ID was created)
  • Parallels Windows validation (blocked: prlctl is not installed)

Repository Windows CI is required to provide the mandatory build and test validation.

Real behavior proof

Not verified / blocked. This controller has no native Windows validation backend, so the current-head onboarding failure UI could not be launched for a screenshot. The source change collapses SubtitleText in the failure branch and leaves ErrorText.Text = errorMessage in the red error card. The success branch explicitly restores subtitle visibility.

Rubber-duck review

The structured Codex autoreview passed with no accepted/actionable findings. It confirmed the patch removes the duplicate failure subtitle while retaining the error card and restoring success-state subtitle visibility.

@clawsweeper

clawsweeper Bot commented Aug 21, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

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

@RomneyDa RomneyDa added the status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. label Aug 21, 2026
@clawsweeper clawsweeper Bot added 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. labels Aug 21, 2026
@clawsweeper

clawsweeper Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed August 20, 2026, 9:02 PM ET / August 21, 2026, 01:02 UTC.

ClawSweeper review

What this changes

This PR hides the completion-page subtitle on setup failure so details appear only in the red error card, while restoring the subtitle on success and adding a regression contract test.

Merge readiness

⚠️ Ready for maintainer review - 3 items remain

Keep open. This is a narrow, correct fix for an existing setup failure presentation defect; it awaits the member-owned PR's required Windows CI and landing decision.

Priority: P3
Reviewed head: e2a4c87546113c3d11edb9eb31f2793029de8349
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused, source-supported UI fix with appropriate regression coverage; required Windows CI remains the final validation gate.
Proof confidence 🌊 off-meta tidepool Not applicable: The author is a repository member, so contributor real-behavior proof is not a merge gate; the PR nevertheless records that native Windows UI capture was blocked.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The author is a repository member, so contributor real-behavior proof is not a merge gate; the PR nevertheless records that native Windows UI capture was blocked.
Evidence reviewed 6 items Current-main defect: The PR patch against base d3ed6c7 shows the existing failure branch assigned the failure text to SubtitleText while also assigning the same errorMessage to ErrorText in the red error card.
Narrow repair preserves success state: The proposed failure branch collapses SubtitleText and retains ErrorText.Text = errorMessage; the success branch sets the normal subtitle and explicitly restores visibility.
Regression coverage: The added source-contract test requires both visibility states, requires the error card assignment, and rejects the former failure subtitle assignment.
Findings None None.
Security None None.

Live Verification

Command: pwsh -NoProfile -File .\run-app-local.ps1 -Isolated -AllowNonMain

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: Launching OpenClaw Tray
  • FAIL expect_output: Started OpenClaw Tray

How this fits together

The setup pipeline sends success or failure results to the WinUI completion page. That page renders the final user-facing status, error details, help link, and recovery actions.

flowchart LR
A[Setup pipeline result] --> B[Completion navigation]
B --> C{Succeeded?}
C -->|Yes| D[Success summary and subtitle]
C -->|No| E[Failure heading]
E --> F[Red error card]
F --> G[Help, log, and fallback actions]
Loading

Decision needed

Question Recommendation
Should this member-owned setup UI fix land once the required Windows checks pass, or should maintainers require an isolated visible failure-state capture first? Land after CI: Accept the focused source-contract coverage and merge after the required Windows CI checks complete successfully.

Why: The patch is correct by source inspection, but the remaining decision is the acceptance threshold for a member-owned WinUI change whose local Windows proof was unavailable.

Before merge

  • Resolve merge risk (P1) - Windows build, shared-test, tray-test, and setup E2E CI jobs are still in progress; the PR body records local Windows validation and visible UI proof as blocked.
  • Complete next step (P2) - No repair is needed. Await required Windows CI and the maintainer landing choice for this member-owned UI patch.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch scope 2 files affected: production +2/-3, tests +12 The behavior change is confined to completion-page presentation and one regression contract.

Merge-risk options

Maintainer options:

  1. Decide the mitigation before merge
    Land after the required Windows checks pass, and capture an isolated setup-failure screen showing a single visible error message when a Windows validation host is available.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Technical review

Best possible solution:

Land after the required Windows checks pass, and capture an isolated setup-failure screen showing a single visible error message when a Windows validation host is available.

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

Yes, by source inspection: the current-main failure path reached CompletePage with an error message that the base branch rendered in both the subtitle and ErrorText. A live Windows reproduction was not supplied.

Is this the best way to solve the issue?

Yes. Collapsing only the redundant subtitle preserves the specific error, help link, log link, fallback action, and normal success subtitle without adding a parallel presentation path.

AGENTS.md: found and applied where relevant.

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

Labels

Label changes:

  • add P3: This is a low-blast-radius setup UX polish fix with no data, security, or availability impact.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The author is a repository member, so contributor real-behavior proof is not a merge gate; the PR nevertheless records that native Windows UI capture was blocked.

Label justifications:

  • P3: This is a low-blast-radius setup UX polish fix with no data, security, or availability impact.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The author is a repository member, so contributor real-behavior proof is not a merge gate; the PR nevertheless records that native Windows UI capture was blocked.

Evidence

What I checked:

Likely related people:

  • Dallin Romney: The only available local commit and blame provenance for both changed files attributes the current snapshot to this author; the root snapshot prevents a deeper historical split. (role: available source-history author; confidence: low; commits: e2a4c8754611; files: src/OpenClaw.SetupEngine.UI/Pages/CompletePage.xaml.cs, tests/OpenClaw.Tray.Tests/AppRefactorContractTests.cs)

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 🚢 actively landing A maintainer or agent is actively driving this item through implementation, validation, or merge. 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