Problem
PR #139 split Windows unit coverage by package and kept the Windows jobs as diagnostic signal instead of required gates. The PR checks are green now, but the diagnostics still show underlying Windows-specific compatibility work remains. unit-windows-app can pass, while unit-windows-desktop and unit-windows-opencode surface path, shell, dynamic import, runtime, and test fixture issues.
This matters for more than CI cleanliness. Some failures touch desktop runtime behavior, including user data paths, server runtime setup, and shell environment loading. Those can affect packaged Windows usage even if the release build itself completes.
Evidence
From the Windows diagnostics in PR #139:
unit-windows-app passed.
unit-windows-desktop reported path normalization and desktop server runtime failures, plus a Windows import error around shell-env.ts.
unit-windows-opencode reported broad Windows incompatibilities around /tmp, backslash paths, permissions, shell behavior, plugins, worktrees, providers, and tooling.
Upstream reference
Upstream anomalyco/opencode currently runs full Windows unit coverage in its test.yml matrix, and recent upstream unit (windows) runs are green. Upstream has fixed similar issues through targeted Windows compatibility patches, including:
- path separator and glob normalization
os.tmpdir() instead of hardcoded /tmp
- CRLF handling
- NTFS mtime tolerance
- Windows-safe local dynamic imports
- Windows dependency install behavior
- file watcher and CI runner adjustments
Goal
Bring the relevant upstream Windows fixes into PawWork where they apply, then fix the PawWork-specific desktop Windows failures. The desired outcome is not just a green CI page, but Windows diagnostics that are reliable enough to promote back toward required CI signal.
Scope
- Cherry-pick or manually port small upstream Windows compatibility fixes that apply cleanly to PawWork.
- Preserve PawWork-specific runtime and desktop behavior.
- Fix PawWork desktop Windows runtime issues exposed by
unit-windows-desktop.
- Keep CI changes minimal until the underlying Windows failures are understood.
Non-goals
- Do not do a broad upstream merge.
- Do not hide failures by skipping large groups of Windows tests.
- Do not redesign the release workflow as part of this issue.
Follow-up
PR #139 can keep Windows jobs diagnostic while this issue is worked. After the compatibility fixes land, reassess whether unit-windows-app, unit-windows-desktop, and eventually unit-windows-opencode should become required again.
Problem
PR #139 split Windows unit coverage by package and kept the Windows jobs as diagnostic signal instead of required gates. The PR checks are green now, but the diagnostics still show underlying Windows-specific compatibility work remains.
unit-windows-appcan pass, whileunit-windows-desktopandunit-windows-opencodesurface path, shell, dynamic import, runtime, and test fixture issues.This matters for more than CI cleanliness. Some failures touch desktop runtime behavior, including user data paths, server runtime setup, and shell environment loading. Those can affect packaged Windows usage even if the release build itself completes.
Evidence
From the Windows diagnostics in PR #139:
unit-windows-apppassed.unit-windows-desktopreported path normalization and desktop server runtime failures, plus a Windows import error aroundshell-env.ts.unit-windows-opencodereported broad Windows incompatibilities around/tmp, backslash paths, permissions, shell behavior, plugins, worktrees, providers, and tooling.Upstream reference
Upstream
anomalyco/opencodecurrently runs full Windows unit coverage in itstest.ymlmatrix, and recent upstreamunit (windows)runs are green. Upstream has fixed similar issues through targeted Windows compatibility patches, including:os.tmpdir()instead of hardcoded/tmpGoal
Bring the relevant upstream Windows fixes into PawWork where they apply, then fix the PawWork-specific desktop Windows failures. The desired outcome is not just a green CI page, but Windows diagnostics that are reliable enough to promote back toward required CI signal.
Scope
unit-windows-desktop.Non-goals
Follow-up
PR #139 can keep Windows jobs diagnostic while this issue is worked. After the compatibility fixes land, reassess whether
unit-windows-app,unit-windows-desktop, and eventuallyunit-windows-opencodeshould become required again.