Skip to content

Match Tool Names and the all Keyword by Case in the Windows Agents Loaders - #3130

Merged
ptr727 merged 2 commits into
developfrom
feature/agents-all-case
Oct 16, 2026
Merged

ptr727 merged 2 commits into
developfrom
feature/agents-all-case

Conversation

@ptr727

@ptr727 ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Summary

bootstrap.ps1 -Agents ALL took the all keyword because PowerShell's -contains ignores case, while bootstrap.sh --agents ALL passed ALL through and install-agents.sh refused it as an unknown tool. The Windows side now matches Linux: the keyword check in bootstrap.ps1 uses -ccontains, and the tool-name comparisons in install-agents.ps1 (Get-Tool, Resolve-Selection) use -ceq, -cnotcontains and -ccontains, so only lowercase all is the keyword and a tool name in another case is refused.

Behavior of ALL on Windows after the change

bootstrap.ps1 -Agents ALL hands -Install ALL to install-agents.ps1, which refuses it with Unknown tool "ALL", the same refusal Linux gives. -Agents Herdr is refused the same way instead of being accepted.

Tests

  • tests/test_bootstrap.py: ALL and All hand off as tool names on both the bash and the PowerShell loaders.
  • tests/test_install_agents.py: Herdr is refused as unknown on both sides.
  • Reverting the PowerShell change makes the PowerShell handoff test and the -Report Herdr refusal fail, and the change restores them.
  • Run: tests/test_bootstrap.py and tests/test_install_agents.py pass (171 tests, 5 skipped Windows-only), with PowerShell tests run under Linux pwsh, not Windows. The local review pass ran on the first commit, and the second commit only tightened the new tests to compare the whole step list, per its findings.

Filed from the review: #3129 (a dash-prefixed -Agents name binds -All on both platforms, pre-existing).

Windows-native check still owed

Not run on Windows. For the maintainer, from a hub checkout in pwsh:

./host-setup/bootstrap.ps1 -Agents ALL -DryRun   # expect: Unknown tool "ALL"
./host-setup/bootstrap.ps1 -Agents all -DryRun   # expect: -Install -All, every tool named

Closes #3065

🤖 Generated with Claude Code

ptr727 and others added 2 commits October 16, 2026 06:43
…aders

bootstrap.ps1 -Agents ALL took the all keyword because -contains ignores
case, while bootstrap.sh --agents ALL passed ALL through and
install-agents.sh refused it as an unknown tool. The PowerShell tool-name
comparisons are now case-sensitive, so both loaders treat only lowercase
all as the keyword and refuse any other case as an unknown tool.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 16, 2026 13:47
@ptr727

ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Local strict review (frontier tier) recorded against develop at content digest b4dd060f1cab. It raised 3 findings: 1 pre-existing, filed as #3129; 2 test-strength points, fixed in the second commit.

@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: ptr727/ProjectTemplate/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 264930fb-fb57-43da-9055-794b809386a7
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

A Windows-native check remains owed, so final human review is recommended.

0 open findings

What changed in this PR

Aligns Windows agent selection with Linux by making all and tool-name matching case-sensitive.

Changes:

  • Uses case-sensitive PowerShell comparisons.
  • Adds regression tests for mixed-case keywords and tool names.
File Summary
tests/​test_install_agents.py Tests rejection of incorrectly cased tool names.
tests/​test_bootstrap.py Tests mixed-case keyword handoff behavior.
host-setup/​windows/​install-agents.ps1 Enforces exact tool-name matching.
host-setup/​bootstrap.ps1 Matches only lowercase all.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@ptr727

ptr727 commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Triage of the reviewer's closer-look headline: it names a caution rather than a defect, the Windows-native verification of the PowerShell comparisons, which the PR body already lists as a paste-ready block owed by the maintainer. The PowerShell tests ran under Linux pwsh, including the handoff test, which fails with the change reverted. No code change is owed.

@codecov

codecov Bot commented Oct 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (develop@ddd7ddb). Learn more about missing BASE report.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #3130   +/-   ##
==========================================
  Coverage           ?   63.94%           
==========================================
  Files              ?       17           
  Lines              ?     9151           
  Branches           ?        0           
==========================================
  Hits               ?     5852           
  Misses             ?     3299           
  Partials           ?        0           
Flag Coverage Δ
python-3.13 63.94% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ptr727
ptr727 merged commit 722a458 into develop Oct 16, 2026
14 checks passed
@ptr727
ptr727 deleted the feature/agents-all-case branch October 16, 2026 13:59
ptr727 added a commit that referenced this pull request Oct 16, 2026
… Fixes to Main (#3146)

- #3135 makes `gh-write-guard` read a gh write's subcommand and target
the way gh parses them: the subcommand is found past flags before the
command and before the subcommand, an `R` inside a short-option cluster
is read as a target, `GH_REPO` is read as a target, a run-time
repository owner on a write fails closed, and a run-time word where `pr`
or `merge` goes fails closed beside `--admin` or where word splitting
may split it
- #3139 releases the bootstrap lock when a `bootstrap.ps1` run ends
rather than when its process does, so a second run typed at the same
pwsh prompt is no longer refused the lock
- #3130 matches tool names and the `all` keyword by case in the Windows
agents loaders, as the Linux loaders already do
- #3128 reads CodeRabbit's rate limit on a reply to an explicit review
command in `pr_review.py`
- #3126 reconciles VSCode-Server-DotNetCore in the hub after its resync
- #3124 logs the Docker task's build-base leg in to Docker Hub
- #3122 names the carried skill and the skipped review correctly
- #3120 states the subprocess encoding rule in `CODESTYLE.md`, where
carriers read Python style
- #3118 and #3111 move the release-guard tests' workflow-command checks
onto `runner_commands`, and test the alternatives wiring at the
`audit_repo` and `fidelity_pass` call sites
- #3116 stops the doc gates' printed names forging workflow commands
- #3113 adds a catalog snippet for the release-with-smoke caller
- #3109 moves the `workflow_reuse` fetch onto `audit.contents_text`
- #3105 accepts `.codecov.yml` as an alternative to `codecov.yml`
- #3103 adds a pip ecosystem to the carried Dependabot snippet
- #3100 prefers the venv's ruff and pyright for a declared pip directory
- #3098 tracks composite action pins in Dependabot
- #3096 reads an uppercase Markdown suffix as Markdown at every prose
gate branch

After this merges, the host-safety installer payload changes, so the
maintainer runs the installer after promotion.

Closes #1416
Closes #1425
Closes #1578
Closes #1874
Closes #1892
Closes #1899
Closes #2804
Closes #2850
Closes #2852
Closes #2854
Closes #2996
Closes #3065
Closes #3067
Closes #3069
Closes #3079
Closes #3080
Closes #3089
Closes #3093
Closes #3101
Closes #3106
Closes #3107
Closes #3137

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a pull-request smoke build that runs when relevant release files
change and reports the combined validation and build status.
* Repository audits now recognize `.codecov.yml` as an alternative to
`codecov.yml`.

* **Improvements**
* Python linting and type checks use tools from declared project
environments when available, with fallbacks for missing tools.
* Workflow and lint reports safely display unusual filenames and
command-like text.
* GitHub write-target checks now account for additional command forms
and fail closed when targets cannot be verified.
* Rate-limit detection now recognizes another CodeRabbit response
format.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants