fix(claude.ps1): rebuild PATH from registry before launch - #11
Merged
Conversation
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
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Newly winget-installed tools (here:
uv/uvx, required by theunifiMCP 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, anduvx unifi-mcp-serversilently fails to start.claude.ps1now rebuilds$env:Pathfrom the Machine+User registry values at launch, so freshly-installed tools resolve without needing a brand-new terminal. Verified:uvxresolves after the refresh.🤖 Generated with Claude Code