Skip to content

Fleet Tooling Assumes a POSIX Host, So It Fails on the Windows Hosts the Fleet Supports #1143

Description

@ptr727

Grouping issue, filed as part of a catalog pass over the 2026-08-28 to 2026-08-31 resync and MTP conversion campaign. This issue records the shared cause and adopts the affected issues as sub-issues. It proposes no fix.

The shared cause

GOVERNANCE.md "Supported Development Platforms" makes Windows a supported host, and host-setup/ ships a PowerShell installer to make one. The fleet's own Python and shell tooling is written and run on Linux, and nothing exercises it on Windows. Both children are the same defect class: a tool compares its own native string against a value some other program produced, and the two disagree only on a Windows host.

Path separators. #1117 finds scripts/carry.py:346-348 comparing git worktree list --porcelain output against pathlib.WindowsPath.__str__. Git emits forward slashes, Python emits backslashes, and the equality can never hold. carry.py check and carry.py apply fail with target is not a registered git worktree against a correctly registered worktree, so the tool is unusable on Windows.

Line endings. #1123 finds repo-config/configure.sh check comparing an expected value built from a Windows-native jq, whose stdout is CRLF, against a live value that is not. Every setting but the last in the payload reports as drifted on a correctly configured repository, and the run ends Configuration drift detected, exit 1.

Both were found in one pass, resyncing ptr727/Financial-Modeling from a Windows host. Neither is subtle once seen, and neither could have been found any other way, because no test runs there.

Children

Issue Tool Disagreeing values
#1117 scripts/carry.py Git's forward slashes against pathlib's backslashes
#1123 repo-config/configure.sh jq's CRLF stdout against a live LF value

What a fix at this level would have to address

Two fixes close the children. The grouping question is the one neither child can answer alone: whether the fleet's tooling gets Windows coverage in CI, given that the platform is declared supported and that the only reason these two were found is that a maintainer happened to run a resync there.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingscriptA defect in hub tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions