Skip to content

Run the Windows-Native Check for the Case-Sensitive Agents Keyword From #3130 #3138

Closed

Description

@ptr727

Context

#3130 made the Windows loaders match the all keyword and tool names case-sensitively, as Linux does, and was verified under Linux pwsh and the CI Windows unit test job only. This issue is the Windows-native check that pull request left owed. It needs a Windows host, so it belongs to the windows lane.

The uppercase half has already been run by hand on Windows and passed: -Agents ALL refused with Unknown tool "ALL", -List names the managed tools. The lowercase half has not run, because a second run in the same pwsh session hit #3137, the bootstrap lock outliving a run in an interactive session.

The Check

From a hub checkout on develop (or on main once #3130 is promoted, dropping -Ref develop), each command in its own process so #3137 does not interfere:

git switch develop
git pull --ff-only
pwsh -NoProfile -File ./host-setup/bootstrap.ps1 -Agents all -Ref develop -DryRun     # expect: -Install -All, every managed tool listed, exit 0
pwsh -NoProfile -File ./host-setup/bootstrap.ps1 -Agents ALL -Ref develop -DryRun     # expect: Unknown tool "ALL", exit 1
pwsh -NoProfile -File ./host-setup/bootstrap.ps1 -Agents Herdr -Ref develop -DryRun   # expect: Unknown tool "Herdr", exit 1
pwsh -NoProfile -File ./host-setup/bootstrap.ps1 -Agents herdr -Ref develop -DryRun   # expect: herdr's install step printed, exit 0

Repeat the four under Windows PowerShell 5.1 (powershell -NoProfile -ExecutionPolicy Bypass -File ...), since -ccontains and -ceq are the operators that changed and 5.1 is the other host the loader supports.

Done

All eight runs match their expectation, with the output recorded in a comment here. A mismatch is a defect in #3130's change and gets its own issue. This one closes once the comment is posted.

Activity

  1. added
    choreRegistry, labels, rollout, and other fleet housekeeping
    scriptA defect in hub tooling
    on Oct 16, 2026
  2. ptr727 commented on Oct 16, 2026

    @ptr727
    OwnerAuthor

    Windows-Native Check Results

    Run on a Windows 11 host against develop at 722a458 (the #3130 merge), with pwsh 7.6 and Windows PowerShell 5.1, each command in its own process, -Ref develop -DryRun on every run.

    Host -Agents Selected / refused Exit Matches
    pwsh 7 all Selected: claude codex opencode herdr cswap 1 keyword yes, exit no (see below)
    pwsh 7 ALL Unknown tool "ALL", -List names the managed tools 1 yes
    pwsh 7 Herdr Unknown tool "Herdr", -List names the managed tools 1 yes
    pwsh 7 herdr Selected: herdr 0 yes
    PowerShell 5.1 all Selected: claude codex opencode herdr cswap 1 keyword yes, exit no (see below)
    PowerShell 5.1 ALL Unknown tool "ALL", -List names the managed tools 1 yes
    PowerShell 5.1 Herdr Unknown tool "Herdr", -List names the managed tools 1 yes
    PowerShell 5.1 herdr Selected: herdr 0 yes

    The case-sensitive matching #3130 introduced behaves as intended under both hosts: lowercase all expands to every managed tool, lowercase herdr selects that tool, and the capitalized forms are refused by name.

    The all Exit Code Is Not a #3130 Defect

    Both all runs exit 1 rather than the 0 this issue expected, and the cause is codex rather than the keyword. On this host codex is not installed, and install-agents.ps1's codex Install block deliberately warns that codex documents no Windows installer outside a package manager and returns 1, so the run reports Failed: codex even under -DryRun. Every other selected tool reported its expected dry-run line. Any Windows host without codex sees the same exit 1 from -Agents all, so the expectation here, not #3130's change, was off, and no defect issue is filed for it.

    The Default Directory Was Held During the Check

    The first attempt, against the default bootstrap directory, was refused the lock on every run: a process outside this check still held it, consistent with #3137, where a run typed at an interactive prompt keeps the lock for the life of that session. The eight runs above therefore used -Dir pointing at a fresh scratch directory, which leaves the keyword behavior under test unchanged. #3137's fix is in flight separately.

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

    choreRegistry, labels, rollout, and other fleet housekeepingscriptA defect in hub tooling

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions