Skip to content

Improve Windows compatibility and restore Windows unit signal #141

@Astro-Han

Description

@Astro-Han

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High prioritybugSomething isn't workingciContinuous integration / GitHub ActionsplatformElectron shell, OS integration, packaging, updater, signing, paths, and permissionsupstreamTracked upstream or vendor behaviorwindowsWindows-specific

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions