Skip to content

Windows source install can misreport UI build status #112049

Description

@ooiuuii

Summary

Windows source installs can misclassify the Control UI build result because scripts/install.ps1 tests the native command's output as a PowerShell Boolean instead of checking its process exit code.

Real environment observed

  • Current openclaw/openclaw main
  • Windows PowerShell native-command semantics
  • -InstallMethod git source installation path

User-visible symptom

If pnpm ui:build fails after writing output, the installer can omit the existing failure warning and continue as though the UI build succeeded. Conversely, a successful command that produces no output can be treated as a failure.

Source-level reproduction on current main

The source install path currently uses:

if (-not (& $pnpmCommand ui:build)) {
    Write-Host "[!] UI build failed; continuing (CLI may still work)"
}

A controlled PowerShell probe reproduces the false negative:

{"LegacyOutputTruthinessWarns":false,"ExitCodeCheckWarns":true,"ExitCode":1}

The simulated native build emits output and sets exit code 1. Output truthiness suppresses the warning, while checking $LASTEXITCODE detects the failure.

Expected behavior

The installer should classify pnpm ui:build from its native process exit code, independent of whether the command writes output.

Actual behavior

The command's output is converted to a Boolean, so output volume can change the reported build status.

Scope / non-goals

This report is limited to source-install UI build status detection. The UI build remains non-fatal, and no npm, pnpm, or runtime behavior needs to change.

Proposed fix

Run the build normally, then inspect $LASTEXITCODE. Add a regression assertion that rejects the output-truthiness pattern.

Live searches for the affected command, installer warning, and exit-code behavior found no matching open or closed issue or PR before filing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:bulk-filedClawSweeper detected a high recent issue-filing volume from this author.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions