Skip to content

feat(status): add rift status - #495

Draft
ericwang401 wants to merge 4 commits into
acsandmann:mainfrom
performave:codex/add-rift-status
Draft

ericwang401 wants to merge 4 commits into
acsandmann:mainfrom
performave:codex/add-rift-status

Conversation

@ericwang401

@ericwang401 ericwang401 commented Sep 16, 2026

Copy link
Copy Markdown

Disclaimer: This pull request was vibe coded with Claude Opus 5 and Fable 5/5.1.

Summary

  • add rift status with human-readable and JSON output
  • distinguish an unavailable window manager from a registered but unresponsive one
  • report the active launchd job and whether the managed plist is installed
  • include the running rift version in metrics and flag version mismatches
  • install the launchd plist for the binary actually being invoked

Dependency

Drafted on top of #494. Until that PR merges, GitHub shows its shared CLI refactor in this diff as well.

Testing

  • cargo check --workspace
  • cargo test --workspace --no-run

find_rift_executable searched $PATH before looking at itself, so `rift
service start` from a dev build wrote a plist pointing at Homebrew's rift
and restarted that instead -- silently managing a different install than
the one invoked.

current_exe comes first now. macOS reports the path a binary was invoked
through rather than resolving it, so a Homebrew invocation still records
the stable bin/rift symlink rather than a Cellar path that the next
version bump moves. $PATH stays as the last resort for `rift-cli
service`, which is not the agent and has to go looking for one.
Nothing reported whether rift was up. The only test was to run a query
and read the error, which cannot tell "not running" from "registered but
not answering" -- and the scripting addition's health lived in a separate
command again.

Three probes, reported separately so the output says which one to fix.
The window manager check round-trips a real metrics query rather than
only looking the Mach service up. The launchd check looks for Homebrew's
labels as well as rift's own, because `brew services` starts rift under
homebrew.mxcl.rift and checking only git.acsandmann.rift reports a
healthy install as "not installed".

Exit status follows the window manager alone: rift runs without the
scripting addition, so a missing payload is reported, not failed.
`rift --version` prints the build. The metrics query carries the version of
the rift that answers, so `rift status` can name it in the window manager
row and say when it is not the version of the binary asking -- the state
every upgrade leaves behind until the service restarts.
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