fix(install): wire BINDIR onto PATH in the shell profile, not a warning #3
No reviewers
Labels
No labels
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-triage
ready
release
scope:apply
scope:capture
scope:coolify-api
scope:fleet
scope:manifest
scope:secrets
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/cast#3
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/installer-path-wiring"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Standing up the coolify box for prod-migration Task 6, the operator ran the documented one-liner and got a working install that they could not invoke:
curl | bashruns in a subshell, so the installer could never exportPATHinto the caller's shell — it warned instead, and a warning in a wall of install output is a step every fresh workstation has to notice and do by hand.source ~/.zshrcdoesn't help either: the export was never written anywhere.What
The installer now writes the
PATHentry to whichever profile$SHELLactually reads, rather than telling you to:zsh→${ZDOTDIR:-$HOME}/.zshrc·bash→.bashrc, or.bash_profileon macOS (login shells) ·fish→config.fishwithfish_add_path· anything else →.profile# added by cast-installmarker, so re-running to upgrade never duplicates the line.$BINDIRis already onPATH(the root case,/usr/local/bin, normally is).CAST_NO_MODIFY_PATH=1opts out and restores the old warn-only behaviour, for people who managePATHthemselves.source <the profile it named>.Also:
ageis required before anyapply/diff, and the bare "age not found" warning read as ignorable — it now names the install command per platform. Same operator hit this in the same session.Verification
Ran the patched installer end-to-end against throwaway
HOMEs in a container, one per shell flavour:.zshrccreated with the export;sourceit →cast --helprunsconfig.fishgetsfish_add_path, not a bash exportCAST_NO_MODIFY_PATH=1Plus
bash -n install.sh(what CI gates on) andnpm run check— both clean.🤖 Generated with Claude Code