Skip to content

fix(railguard): install from fork + land stranded setup-unification follow-ups - #44

Merged
ulises-c merged 3 commits into
mainfrom
feat/setup-unification-followups
Jun 15, 2026
Merged

fix(railguard): install from fork + land stranded setup-unification follow-ups#44
ulises-c merged 3 commits into
mainfrom
feat/setup-unification-followups

Conversation

@ulises-c

Copy link
Copy Markdown
Owner

Summary

Lands three commits that were stranded on feat/setup-unification after PR #37 merged (the branch was reused and pushed post-merge, never re-PR'd), rebased cleanly onto current main.

  • fix(railguard): install from GitHub fork, migrate existing installs — point cargo install at https://github.com/ulises-c/railguard and drop the binary-exists guard so existing crates.io installs switch over to the fork on re-run, staying a no-op when already up to date. Falls back gracefully when cargo is absent but a binary already exists.
  • fix(setup): address code-review findings across engine and configs
  • fix(zsh): replace zsh-notify plugin with Ghostty/Wayland-safe hook

Notes

Opened as a new branch (feat/setup-unification-followups) rather than reusing feat/setup-unification, since PR #37 is already merged/closed and the old branch diverged from main.

🤖 Generated with Claude Code

ulises-c and others added 3 commits June 15, 2026 11:23
marzocchi/zsh-notify only supports iTerm/Apple Terminal (macOS) and
X11 (Linux), so it printed "unsupported environment" and disabled
itself on the whole Ghostty + Wayland fleet — it never sent a single
notification on any machine.

Replace it with a precmd/preexec hook in the deployed zshrc that calls
terminal-notifier (macOS) / notify-send (Linux) directly, no focus
detection. Drop the plugin and the now-unused xdotool package.

- Prepend _notify_precmd to precmd_functions so it reads the real
  command $? before p10k's hook (loaded via antidote) resets it;
  otherwise every long command was labelled "finished".
- Escape Pango markup metachars in the notify-send body so commands
  containing &, <, > render intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- verify: check Ghostty config at `config` (not `config.ghostty`) so a
  healthy macOS install no longer reports MISSING
- p10k: move p10k.zsh.example to dotfiles/ and deploy it on macOS too,
  so fresh Macs don't drop into the p10k configure wizard
- set -e safety: tolerate antidote pre-clone failure (server), getent
  failure (set_default_shell), and codeburn menubar failure (macOS)
  instead of aborting the whole run
- args: reject missing/flag-shaped --platform|--distro value in both
  core and verify parsers (was silent abort / flag-swallowing)
- reminders: surface priority:"none" custom and app-store entries, per
  the documented "reminders only" contract (llama.cpp, Pixelmator, etc.)
- zshrc: gate notify-send on WAYLAND_DISPLAY/DISPLAY (no D-Bus spam over
  SSH) and make _notify_start read nounset-safe
- pyenv: use grep -qF for the installed-version check to avoid regex
  dot-wildcard false matches

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Point `cargo install` at https://github.com/ulises-c/railguard and drop
the binary-exists guard so existing crates.io installs get switched over
to the fork on re-run, while staying a no-op when already up to date.
Falls back gracefully when cargo is absent but a binary already exists.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ulises-c
ulises-c merged commit d3d46c5 into main Jun 15, 2026
4 checks passed
@ulises-c
ulises-c deleted the feat/setup-unification-followups branch June 15, 2026 18:24
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