Skip to content

fix(windows): add local cmd installer bootstrap - #3133

Merged
ogulcancelik merged 2 commits into
masterfrom
issue/2751-windows-cmd-installer
Aug 22, 2026
Merged

fix(windows): add local cmd installer bootstrap#3133
ogulcancelik merged 2 commits into
masterfrom
issue/2751-windows-cmd-installer

Conversation

@ogulcancelik

Copy link
Copy Markdown
Collaborator

Summary

  • keep the existing irm https://herdr.dev/install.ps1 | iex install command
  • add a one-line Command Prompt fallback that downloads and runs install.cmd locally for endpoint-protected environments
  • use curl.exe for installer manifest and package downloads while preserving SHA-256 verification
  • publish install.cmd with the website and document the fallback in current and next-release Windows docs

Why

Cortex XDR can block the fileless irm | iex process shape before Herdr's PowerShell installer runs. A local script launched with powershell.exe -File avoids that behavior without replacing the familiar public install command.

Validation

  • just check
  • website production build; generated install.cmd matches the source asset
  • Windows VM installer integration test through the CMD bootstrap
  • exact documented CMD flow against the production stable manifest/package with Microsoft Defender real-time protection enabled
  • no new Defender detection during VM validation

Cortex XDR confirmation still requires the issue reporter's environment.

Refs #2751

@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d3cbaf2b-8676-43c2-a4ea-dee34d6b0a99

📥 Commits

Reviewing files that changed from the base of the PR and between c21b919 and e1b9ba3.

📒 Files selected for processing (2)
  • docs/next/CHANGELOG.md
  • website/install.cmd

Included review availability: Your plan provides up to 10 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The Windows installer now supports a curl.exe and install.cmd fallback when fileless PowerShell installation is blocked. The PowerShell installer uses curl-based downloads. Website publishing, validation, changelog, and localized installation documentation were updated.

Changes

Windows installation fallback

Layer / File(s) Summary
Installer bootstrap and curl downloads
website/install.cmd, website/install.ps1
Adds the install.cmd bootstrap and changes manifest and package downloads to use validated curl.exe requests with cleanup and error handling.
Installer asset publishing and serving
website/scripts/prepare-docs.mjs, website/_headers
Publishes install.cmd and configures inline plain-text responses for both installer scripts.
Windows installer integration validation
scripts/windows_install_conpty_package_test.ps1
Validates installer contents and runs the stable installation scenario through install.cmd with HERDR_INSTALLER_URL.
Fallback installation documentation
README*, docs/next/README*, docs/next/website/src/content/docs/*, docs/versions/0.8.2/website/src/content/docs/*, website/agent-guide.md, website/index.html, docs/next/CHANGELOG.md
Adds endpoint-protected Windows links, fallback commands, localized instructions, and unreleased changelog entries.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: 🔵 Low · up to e1b9b

The Windows CMD fallback may leave install.cmd in the working directory when installation fails, creating minor cleanup burden for affected users. The PR is otherwise mergeable with explicit owner awareness or follow-up to clean up the file on failure.

Sequence Diagram(s)

sequenceDiagram
  participant CommandPrompt
  participant install.cmd
  participant install.ps1
  participant curl.exe
  CommandPrompt->>install.cmd: download and run bootstrap
  install.cmd->>curl.exe: download install.ps1
  install.cmd->>install.ps1: forward installer arguments
  install.ps1->>curl.exe: download manifest and package
  curl.exe-->>install.ps1: return downloaded files
  install.ps1-->>install.cmd: return installer exit code
  install.cmd-->>CommandPrompt: remove temporary file and return exit code
Loading
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (2 skipped: 2 unsupported.) Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding a local Windows CMD installer bootstrap.
Description check ✅ Passed The description accurately covers the CMD fallback, curl-based downloads, documentation, validation, and Cortex XDR motivation.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue/2751-windows-cmd-installer

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.

@kangal-bot kangal-bot added the ai-review Trigger automated AI reviews for pull requests admitted by the PR gate label Aug 22, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 78561173-7f43-4cfd-9a35-823506e725cd

📥 Commits

Reviewing files that changed from the base of the PR and between c714e4c and 7b64c54.

📒 Files selected for processing (24)
  • README.md
  • README.zh-CN.md
  • docs/next/CHANGELOG.md
  • docs/next/README.md
  • docs/next/README.zh-CN.md
  • docs/next/website/src/content/docs/install.mdx
  • docs/next/website/src/content/docs/ja/install.mdx
  • docs/next/website/src/content/docs/ja/windows-beta.mdx
  • docs/next/website/src/content/docs/windows-beta.mdx
  • docs/next/website/src/content/docs/zh-cn/install.mdx
  • docs/next/website/src/content/docs/zh-cn/windows-beta.mdx
  • docs/versions/0.8.2/website/src/content/docs/install.mdx
  • docs/versions/0.8.2/website/src/content/docs/ja/install.mdx
  • docs/versions/0.8.2/website/src/content/docs/ja/windows-beta.mdx
  • docs/versions/0.8.2/website/src/content/docs/windows-beta.mdx
  • docs/versions/0.8.2/website/src/content/docs/zh-cn/install.mdx
  • docs/versions/0.8.2/website/src/content/docs/zh-cn/windows-beta.mdx
  • scripts/windows_install_conpty_package_test.ps1
  • website/_headers
  • website/agent-guide.md
  • website/index.html
  • website/install.cmd
  • website/install.ps1
  • website/scripts/prepare-docs.mjs

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.

Comment thread docs/next/website/src/content/docs/install.mdx
Comment thread README.zh-CN.md Outdated
Comment thread website/install.cmd Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: aafe2bbb-149b-4e0a-8ceb-0d144aa37cfc

📥 Commits

Reviewing files that changed from the base of the PR and between 7b64c54 and 63f08be.

📒 Files selected for processing (4)
  • README.zh-CN.md
  • docs/next/README.zh-CN.md
  • website/install.cmd
  • website/install.ps1
🚧 Files skipped from review as they are similar to previous changes (2)
  • README.zh-CN.md
  • docs/next/README.zh-CN.md

Included review availability: Your plan provides up to 10 included reviews per hour; 6 remain after this review.

Comment thread website/install.cmd Outdated
@greptile-apps

greptile-apps Bot commented Aug 22, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds a locally downloaded Command Prompt bootstrap for Windows environments that block fileless PowerShell execution.

  • Publishes install.cmd through the website and documents the fallback across current and next-release documentation.
  • Routes manifest and package downloads through curl.exe while retaining package SHA-256 verification.
  • Extends Windows installer integration coverage for the CMD bootstrap and its argument forwarding.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
website/install.cmd Adds the local CMD bootstrap, propagates installer arguments and exit status, and removes its temporary PowerShell script.
website/install.ps1 Uses a bounded curl-based helper for manifest and package downloads while preserving validation and checksum enforcement.
scripts/windows_install_conpty_package_test.ps1 Extends Windows installer integration coverage to invoke the CMD bootstrap and verify a successful stable installation.
website/scripts/prepare-docs.mjs Copies the new CMD bootstrap into the website's public build assets.
website/_headers Configures the public CMD installer endpoint to be served as inline plain text.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Command Prompt user] --> B[Download install.cmd over HTTPS]
  B --> C[install.cmd downloads install.ps1 to TEMP]
  C --> D[PowerShell runs local install.ps1]
  D --> E[Download release manifest]
  E --> F[Select Windows package]
  F --> G[Download package]
  G --> H[Verify SHA-256 and package layout]
  H --> I[Activate versioned release]
  I --> J[Delete temporary installer]
Loading

Reviews (3): Last reviewed commit: "fix(windows): bound installer downloads" | Re-trigger Greptile

@ogulcancelik
ogulcancelik force-pushed the issue/2751-windows-cmd-installer branch from 63f08be to c21b919 Compare August 22, 2026 21:13

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a1cca11f-4169-4cf2-aefd-81482f257749

📥 Commits

Reviewing files that changed from the base of the PR and between 63f08be and c21b919.

📒 Files selected for processing (2)
  • docs/next/CHANGELOG.md
  • website/install.cmd
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/next/CHANGELOG.md

Included review availability: Your plan provides up to 10 included reviews per hour; 4 remain after this review.

Comment thread website/install.cmd
@ogulcancelik
ogulcancelik force-pushed the issue/2751-windows-cmd-installer branch from c21b919 to e1b9ba3 Compare August 22, 2026 21:24
@ogulcancelik
ogulcancelik merged commit c9601b9 into master Aug 22, 2026
9 checks passed
@kangal-bot kangal-bot removed the ai-review Trigger automated AI reviews for pull requests admitted by the PR gate label Aug 22, 2026
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