Skip to content

fix(claude.ps1): rebuild PATH from registry before launch - #11

Merged
ChrisonSimtian merged 1 commit into
mainfrom
fix/claude-launcher-path
May 29, 2026
Merged

fix(claude.ps1): rebuild PATH from registry before launch#11
ChrisonSimtian merged 1 commit into
mainfrom
fix/claude-launcher-path

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

Newly winget-installed tools (here: uv/uvx, required by the unifi MCP server) land on the registry PATH, but terminals opened before the install carry a stale PATH — so Claude Code (and the MCP servers it spawns) can't find them, and uvx unifi-mcp-server silently fails to start.

claude.ps1 now rebuilds $env:Path from the Machine+User registry values at launch, so freshly-installed tools resolve without needing a brand-new terminal. Verified: uvx resolves after the refresh.

🤖 Generated with Claude Code

winget-installed tools (e.g. uv/uvx, required by the unifi MCP server) land on the registry PATH but aren't visible to terminals opened before the install. Rebuilding $env:Path from the Machine+User registry values at launch makes them resolvable for Claude Code and the MCP servers it spawns, so a fresh terminal isn't required.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisonSimtian
ChrisonSimtian merged commit 2e073af into main May 29, 2026
@ChrisonSimtian
ChrisonSimtian deleted the fix/claude-launcher-path branch May 29, 2026 02:40
ChrisonSimtian added a commit that referenced this pull request Jul 26, 2026
From Phase 2a (#302), the first MULTI-container quadlet deployment.

- #11: depends_on: condition: service_healthy has no quadlet OR systemd
  equivalent — After=/Requires= wait for STARTED, not READY. And a host-side
  ExecStartPre wait can't substitute, because container names only resolve
  inside the podman network while ExecStartPre runs on the CT. Do it the systemd
  way: Restart=always + RestartSec=10 and let it crash-retry.
- Multi-container stacks need an explicit .network quadlet: compose gives
  service-name DNS for free, quadlets don't. Verified aardvark-dns resolution
  on CT 5114.
- #10 sharpened: the constraint is on QUOTING, not healthchecks as a category.
  youtarr's curl probe works precisely because it needs no quotes, so check for
  a quote-free probe before giving up. Also: never put a secret in HealthCmd —
  it lands in the unit file.
- userns section: check whether the NFS export SQUASHES before reasoning about
  ownership. Phase 2a's predicted 100000-vs-101000 split never materialised
  because the Synology export maps every incoming uid to 1024:100.

Refs #302, #284
ChrisonSimtian added a commit that referenced this pull request Jul 26, 2026
From Phase 2a (#302), the first MULTI-container quadlet deployment.

- #11: depends_on: condition: service_healthy has no quadlet OR systemd
  equivalent — After=/Requires= wait for STARTED, not READY. And a host-side
  ExecStartPre wait can't substitute, because container names only resolve
  inside the podman network while ExecStartPre runs on the CT. Do it the systemd
  way: Restart=always + RestartSec=10 and let it crash-retry.
- Multi-container stacks need an explicit .network quadlet: compose gives
  service-name DNS for free, quadlets don't. Verified aardvark-dns resolution
  on CT 5114.
- #10 sharpened: the constraint is on QUOTING, not healthchecks as a category.
  youtarr's curl probe works precisely because it needs no quotes, so check for
  a quote-free probe before giving up. Also: never put a secret in HealthCmd —
  it lands in the unit file.
- userns section: check whether the NFS export SQUASHES before reasoning about
  ownership. Phase 2a's predicted 100000-vs-101000 split never materialised
  because the Synology export maps every incoming uid to 1024:100.

Refs #302, #284
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.

1 participant