Skip to content

fix(config): replace invalid Start-Process -LiteralPath with -FilePath on Windows#90339

Closed
whiteyzy wants to merge 2 commits into
openclaw:mainfrom
whiteyzy:fix/powershell-literalpath-to-filepath-90157
Closed

fix(config): replace invalid Start-Process -LiteralPath with -FilePath on Windows#90339
whiteyzy wants to merge 2 commits into
openclaw:mainfrom
whiteyzy:fix/powershell-literalpath-to-filepath-90157

Conversation

@whiteyzy

@whiteyzy whiteyzy commented Jun 4, 2026

Copy link
Copy Markdown

Summary

Fix the Dashboard "Open config" button on Windows by replacing the invalid PowerShell Start-Process -LiteralPath parameter with -FilePath.

Root Cause

Start-Process does not have a -LiteralPath parameter in any PowerShell version (Windows PowerShell 5.1 or PowerShell 7+). Only -FilePath exists. Every click of "Open config" or "How to enable" in the Dashboard caused a PowerShell exception.

Fix

Change -LiteralPath to -FilePath in resolveConfigOpenCommand() (1 character change).

Test

Updated existing test to expect -FilePath instead of -LiteralPath.

Real behavior proof

Behavior or issue addressed: Dashboard "Open config" button fails on Windows with PowerShell exception because Start-Process -LiteralPath is an invalid parameter.

Real environment tested: macOS 15.4 (darwin arm64), Node.js v22.22.3. Test verified on local.

Exact steps or command run after this patch: Unit test asserts the correct PowerShell command format with -FilePath.

Evidence after fix:

resolveConfigOpenCommand with win32 platform returns:
  Start-Process -FilePath '<path>' (was: -LiteralPath)

What was not tested: Live Dashboard click on a Windows machine.

Related

Closes #90157

🤖 Generated with Claude Code

…h on Windows

Start-Process does not have a -LiteralPath parameter in any PowerShell
version (Windows PowerShell 5.1 or PowerShell 7+). Only -FilePath
exists. The Dashboard "Open config" button failed on Windows with a
PowerShell exception on every click.

Closes openclaw#90157
Signed-off-by: whiteyzy <whiteyzy@users.noreply.github.com>
Signed-off-by: secooond <7839040+secooond@user.noreply.gitee.com>
@openclaw-barnacle openclaw-barnacle Bot added gateway Gateway runtime size: XS triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 4, 2026
@clawsweeper

clawsweeper Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed June 4, 2026, 11:24 AM ET / 15:24 UTC.

Summary
This PR changes the Windows Dashboard config-open PowerShell command from Start-Process -LiteralPath to -FilePath, updates the focused regression expectation, and also adds Anthropic model-catalog entries and an alias.

PR surface: Source +23, Tests 0. Total +23 across 3 files.

Reproducibility: Do we have a high-confidence way to reproduce the issue? Yes at source level: current main routes the Dashboard action through config.openFile to Start-Process -LiteralPath, while Microsoft docs show Start-Process uses -FilePath; I did not run a live Windows Dashboard repro in this read-only review. (learn.microsoft.com)

Review metrics: 1 noteworthy metric.

  • Provider catalog surface: 2 model entries added, 1 alias added. The extra Anthropic catalog/alias changes are outside the stated Windows config-open fix and affect provider model resolution before merge.

Merge readiness
Overall: 🧂 unranked krab
Proof: 🦪 silver shellfish
Patch quality: 🧂 unranked krab
Result: blocked until real behavior proof from a real setup is added.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P1] Remove or repair the unrelated Anthropic manifest change so the branch contains valid, relevant code.
  • [P1] Add redacted Windows after-fix evidence showing Dashboard Open config or How to enable no longer throws, then update the PR body for fresh ClawSweeper review.

Proof guidance:

  • [P1] Needs real behavior proof before merge: Only macOS/unit-test command-string proof is present; add redacted Windows Dashboard, terminal, or log evidence after the fix and update the PR body for re-review.

Mantis proof suggestion
The changed behavior is a visible Dashboard action on Windows, so a real desktop proof would materially improve merge confidence. 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 on Windows that Dashboard Open config or How to enable opens the config without a PowerShell parameter error.

Risk before merge

  • [P1] Merging as-is would make the Anthropic plugin manifest invalid, risking provider catalog or plugin manifest loading failures unrelated to the Windows config-open fix.
  • [P1] The PR body only provides macOS/unit-test command-string proof, so the Windows Dashboard click path remains unproven in a real environment.

Maintainer options:

  1. Keep This PR To The Windows Fix (recommended)
    Remove the Anthropic catalog and alias diff from this branch, then handle any Haiku catalog update in a separate valid provider-focused PR.
  2. Pause Until Windows Proof Exists
    After the manifest cleanup, keep the PR paused until redacted Windows Dashboard or terminal/log evidence shows the config-open action no longer throws.

Next step before merge

  • [P1] A contributor or maintainer needs to clean up the unrelated invalid manifest diff and provide Windows real behavior proof; automation cannot supply the contributor's Windows setup evidence.

Security
Cleared: No credential, permission, dependency, workflow, or supply-chain escalation was found; the blocking issue is functional manifest validity rather than security.

Review findings

  • [P1] Remove the broken Anthropic manifest edit — extensions/anthropic/openclaw.plugin.json:104-148
Review details

Best possible solution:

Land a narrow Windows config-open fix only after the branch has valid plugin manifests and redacted Windows after-fix proof for the Dashboard action.

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

Do we have a high-confidence way to reproduce the issue? Yes at source level: current main routes the Dashboard action through config.openFile to Start-Process -LiteralPath, while Microsoft docs show Start-Process uses -FilePath; I did not run a live Windows Dashboard repro in this read-only review. (learn.microsoft.com)

Is this the best way to solve the issue?

Is this the best way to solve the issue? The -FilePath substitution is the narrow owner-boundary fix, but the PR as submitted is not the best merge shape because the unrelated invalid Anthropic manifest edit must be removed or repaired first.

Full review comments:

  • [P1] Remove the broken Anthropic manifest edit — extensions/anthropic/openclaw.plugin.json:104-148
    This PR is for the Windows config-open command, but it also changes extensions/anthropic/openclaw.plugin.json and the added catalog hunk is invalid JSON: the second inserted model starts before the previous object is closed, and the alias entry is added without a comma after sonnet-4.6. Merging this would break manifest parsing or provider catalog loading, so drop the unrelated Anthropic change from this PR or repair it in a separate focused PR.
    Confidence: 0.96

Overall correctness: patch is incorrect
Overall confidence: 0.94

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 52b07b4a4652.

Label changes

Label changes:

  • add merge-risk: 🚨 auth-provider: The unrelated Anthropic manifest edit changes provider model catalog and alias metadata, and as submitted can break provider catalog loading.
  • add rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦪 silver shellfish and patch quality is 🧂 unranked krab.
  • remove rating: 🦪 silver shellfish: Current PR rating is rating: 🧂 unranked krab, so this older rating label is no longer current.

Label justifications:

  • P2: This is a normal-priority fix for a real Windows Dashboard config-opening bug with a bounded Gateway runtime surface.
  • merge-risk: 🚨 auth-provider: The unrelated Anthropic manifest edit changes provider model catalog and alias metadata, and as submitted can break provider catalog loading.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🦪 silver shellfish and patch quality is 🧂 unranked krab.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: Only macOS/unit-test command-string proof is present; add redacted Windows Dashboard, terminal, or log evidence after the fix and update the PR body for re-review.
Evidence reviewed

PR surface:

Source +23, Tests 0. Total +23 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 2 24 1 +23
Tests 1 2 2 0
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 26 3 +23

What I checked:

  • Current main still uses the failing Windows command: Current origin/main resolves config.openFile on Windows to powershell.exe -Command Start-Process -LiteralPath ..., so the central bug is not already implemented on main. (src/gateway/server-methods/config.ts:184, 52b07b4a4652)
  • Gateway caller path reaches the opener: config.openFile calls execConfigOpenCommand(resolveConfigOpenCommand(configPath)), so the bad Windows argument is on the live Dashboard config-open path. (src/gateway/server-methods/config.ts:777, 52b07b4a4652)
  • UI paths call the gateway method: The config view's Open button calls onOpenFile, and the feature-card How to enable flow calls onOpenConfig, matching the linked Windows report's affected UI surfaces. (ui/src/ui/views/config.ts:1501, 52b07b4a4652)
  • PowerShell dependency contract supports the intended fix: Microsoft Learn documents Start-Process syntax with [-FilePath] <string> for PowerShell 7.6 and 5.1, and the docs search found no LiteralPath parameter on those pages. (learn.microsoft.com)
  • PR diff introduces invalid unrelated manifest JSON: The hydrated PR diff adds an Anthropic model object before the previous object is closed and adds haiku-4.5 without a comma after sonnet-4.6, making extensions/anthropic/openclaw.plugin.json invalid as submitted. (extensions/anthropic/openclaw.plugin.json:104, 4be80ac12962)
  • Manifest parser treats parse failures as plugin manifest load failures: Bundled plugin manifests are parsed through parseJsonWithJson5Fallback; parse errors return failed to parse plugin manifest, so invalid JSON is a real plugin-loading/provider-catalog risk. (src/plugins/manifest.ts:1747, 52b07b4a4652)

Likely related people:

  • mappel-nv: Commit 5cc0bc936c introduced the config-open shell-interpolation hardening and Windows opener test around the implicated Gateway method. (role: introduced behavior; confidence: medium; commits: 5cc0bc936c4d; files: src/gateway/server-methods/config.ts, src/gateway/server-methods/config.test.ts)
  • steipete: The shallow checkout blame attributes the current config-open code and Anthropic manifest lines to the current-main grafted snapshot commit by Peter Steinberger. (role: recent area contributor; confidence: low; commits: f5ccfb73193e; files: src/gateway/server-methods/config.ts, extensions/anthropic/openclaw.plugin.json)
  • vincentkoc: Commit 2e08f0f422 recently refreshed release/plugin SDK baseline content touching the Anthropic manifest. (role: recent adjacent contributor; confidence: medium; commits: 2e08f0f4221f; files: extensions/anthropic/openclaw.plugin.json)
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.

@whiteyzy whiteyzy marked this pull request as ready for review June 4, 2026 13:26
@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. P2 Normal backlog priority with limited blast radius. labels Jun 4, 2026
…c catalog

Add claude-haiku-4-5-20251001 to both claude-cli and anthropic provider
model catalogs, and add the rolling haiku-4.5 alias so both the rolling
and dated model refs resolve correctly.

Closes openclaw#90088
Signed-off-by: whiteyzy <whiteyzy@users.noreply.github.com>
Signed-off-by: secooond <7839040+secooond@user.noreply.gitee.com>
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 4, 2026
@whiteyzy

Copy link
Copy Markdown
Author

Closing: requires Windows environment for real behavior proof.

This fix replaces Start-Process -LiteralPath with -FilePath on Windows PowerShell. ClawSweeper requires real behavior proof on the target platform (Windows), and the contributor's macOS environment cannot provide this. Additionally has auth-provider merge risk.

Closes #90157.

@whiteyzy whiteyzy closed this Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extensions: anthropic gateway Gateway runtime merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dashboard "Open config" fails on Windows: Start-Process -LiteralPath is invalid in all PowerShell versions

1 participant