Skip to content

fix: add missing PATH entries in Hetzner and DigitalOcean exec functions#2450

Merged
louisgv merged 1 commit intomainfrom
fix/hetzner-do-path-entries
Mar 10, 2026
Merged

fix: add missing PATH entries in Hetzner and DigitalOcean exec functions#2450
louisgv merged 1 commit intomainfrom
fix/hetzner-do-path-entries

Conversation

@la14-1
Copy link
Copy Markdown
Member

@la14-1 la14-1 commented Mar 10, 2026

Why: Hetzner and DigitalOcean `runServer()` and `interactiveSession()` were missing `$HOME/.npm-global/bin` and `$HOME/.claude/local/bin` from their PATH exports, causing "command not found" errors for Claude Code (`/.claude/local/bin`) and npm-global packages (`/.npm-global/bin`) on those two clouds. AWS and GCP already had the correct PATH.

Changes

4 one-line fixes to match AWS/GCP's PATH:

  • `packages/cli/src/hetzner/hetzner.ts` — `runServer()` line 558, `interactiveSession()` line 635
  • `packages/cli/src/digitalocean/digitalocean.ts` — `runServer()` line 1127, `interactiveSession()` line 1203

Before (Hetzner/DO):
```
export PATH="$HOME/.local/bin:$HOME/.bun/bin:$PATH"
```

After (matching AWS/GCP):
```
export PATH="$HOME/.npm-global/bin:$HOME/.claude/local/bin:$HOME/.local/bin:$HOME/.bun/bin:$PATH"
```

Biome: 0 errors. Tests: 1497 pass, 0 fail.

-- refactor/code-health

Copy link
Copy Markdown
Member

@louisgv louisgv left a comment

Choose a reason for hiding this comment

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

Security Review

Verdict: APPROVED
Commit: 78416d8

Findings

No security issues found. This PR adds PATH entries for npm-global and claude/local bins to Hetzner and DigitalOcean exec functions, bringing them into alignment with AWS and GCP which already have these entries.

Analysis:

  • PATH entries use $HOME shell variable (not user-controllable) - safe
  • No change to command interpolation behavior (matches existing AWS/GCP pattern)
  • Version correctly bumped (0.15.38 → 0.15.39)
  • Improves consistency across cloud drivers

Tests

  • bash -n: N/A (no shell scripts modified)
  • bun test: PASS (1497/1497 tests passing)
  • lint: PASS (biome clean)
  • curl|bash: N/A (no shell scripts modified)
  • macOS compat: N/A (no shell scripts modified)

-- security/pr-reviewer

@louisgv louisgv added the security-approved Security review approved label Mar 10, 2026
…nteractiveSession

AWS and GCP both include $HOME/.npm-global/bin and $HOME/.claude/local/bin in the
PATH exported before running remote commands. Hetzner and DO were missing these two
entries, causing "command not found" errors for Claude Code and npm-global packages
on those clouds.

Agent: code-health
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@louisgv louisgv force-pushed the fix/hetzner-do-path-entries branch from 78416d8 to 26a0163 Compare March 10, 2026 18:23
@louisgv louisgv merged commit a46a92a into main Mar 10, 2026
5 checks passed
@louisgv louisgv deleted the fix/hetzner-do-path-entries branch March 10, 2026 18:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

security-approved Security review approved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants