hermes - 💡(How to fix) Fix Bootstrap consolidation: pip/uvx browser setup broken + Windows dep_ensure missing [4 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
  • PR #26620 (closed) — original Windows bootstrap work, never landed
  • PR #26668 (closed) — squash-rebase deleted 7+ features from main, work extracted into fresh PRs

Error Message

  • PR 3: ensure_browser() explicit return 0; _run_setup_browser catches OSError instead of broad Exception

Root Cause

  • PR #26620 (closed) — original Windows bootstrap work, never landed
  • PR #26668 (closed) — squash-rebase deleted 7+ features from main, work extracted into fresh PRs

Fix Action

Fixed

Code Example

Bootstrap script not found at .../bootstrap_browser_tools.sh — wheel may be incomplete.
RAW_BUFFERClick to expand / collapse

What's broken on main today

1. hermes acp --setup-browser fails for pip/uvx installs (all platforms)

_run_setup_browser() in acp_adapter/entry.py shells out to acp_adapter/bootstrap/bootstrap_browser_tools.{sh,ps1}, but these files are not included in pyproject.toml package-data — they exist in the git repo but don't ship in the wheel. pip/uvx users get:

Bootstrap script not found at .../bootstrap_browser_tools.sh — wheel may be incomplete.

2. dep_ensure.py is POSIX-only — Windows has zero lazy dep support

dep_ensure.py hardcodes ["bash", str(script), "--ensure", dep]. No _IS_WINDOWS check, no PowerShell invocation, no install.ps1 discovery.

3. install.ps1 not shipped in pip wheel

CI only bundles install.sh. Even if dep_ensure gained Windows awareness, install.ps1 wouldn't be there.

4. install.sh ensure_browser is missing features the ACP bootstrap has

Missing camofox-browser, system browser detection with .env writing, macOS app-bundle paths, per-distro Chromium install guidance.

5. Two independent browser bootstrap code paths (687 lines duplicated)

acp_adapter/bootstrap/ (399+288 lines) and install.sh ensure_mode do the same thing with zero shared code.


PRs

  • PR 0 — Close #26668 (rebase-damaged, work extracted into fresh PRs)
  • PR 1 — stamp-install-method #27843 — stamp_install_method() + Docker detection + install-method resolution. Ready for review.
  • PR 2 — windows-bootstrap #27845 — Cross-platform dep_ensure.py + install.ps1 -Ensure/-PostInstall + browser_tool.py Windows detection + wheel bundling. Fixes #2, #3. Ready for review.
  • PR 3 — consolidate-bootstrap #27851 — Delete 687 lines of acp_adapter/bootstrap/, route through dep_ensureinstall.{sh,ps1} --ensure. ensure_browser() gains camofox, macOS paths, per-distro hints. Fixes #1, #4, #5. Stacked on PR 2. Ready for review.

Merge order

  1. PR 1 (independent)
  2. PR 2 (independent)
  3. PR 3 (rebase onto main after PR 2 merges)

E2E Verification (2026-05-18)

PhaseIsolationResult
Wheel buildBuild✅ Scripts bundled, no bootstrap remnants
Docker bare (no Node)Container✅ 10/10 — graceful degradation
Docker + Node (full chain)Container✅ 8/8 — install + detect end-to-end
Windows SSH (sidbin@vespyr)Windows✅ 13/14 — full detection chain works
Git-clone regressionLocal✅ 3/3 — existing users unbroken

Bugs found and fixed during E2E

  • @askjo/camofox-browser dependency (impit) enforces pnpm via postinstall npx only-allow pnpm — fails under npm. Fixed with --ignore-scripts in both install scripts.

Review fixes applied (2026-05-18)

  • PR 1: Docker stamp moved from Dockerfile to entrypoint.sh (survives VOLUME overlay); install.sh stamp moved after print_success
  • PR 2: Removed unused env_extra param; Invoke-EnsureMode node case uses Test-Node consistently; Install-AgentBrowser uses throw instead of exit 1
  • PR 3: ensure_browser() explicit return 0; _run_setup_browser catches OSError instead of broad Exception

Context

  • PR #26620 (closed) — original Windows bootstrap work, never landed
  • PR #26668 (closed) — squash-rebase deleted 7+ features from main, work extracted into fresh PRs

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Bootstrap consolidation: pip/uvx browser setup broken + Windows dep_ensure missing [4 pull requests]