Skip to content

v0.6.0-alpha — fleetops tells you when its hooks aren't set up

Choose a tag to compare

@jitokim jitokim released this 20 Jul 17:14
0c4a235

Everything merged since v0.5.0-alpha. This one closes the gap that made fleetops quietly do half its job on a fresh machine.

Features

  • fleetops now self-verifies its hooks at launch (#83). Without the SessionStart hook, a session is observed but never registered — so a typed action (kill / interrupt / inject) can only fall back to "no unambiguous claude surface". You'd get no warning until a keypress failed. Now the cockpit checks hook health on launch and, when they're not fully installed, shows a dismissible banner:

    ▲ HOOKS hooks not fully installed — new sessions won't be actionable · [H] install · [esc] dismiss

    [H] installs them in place (it shells out to the same audited hooks install, which backs up your settings first). It also catches a nastier state than "missing": a hook entry that looks installed but points at a binary that no longer exists — that silently broke registration once in this project's own history, and now shows as stale-path instead of reading as healthy. New fleetops hooks status prints the same verdict on the command line.

Docs

  • Explained why a typed action can hit no unambiguous claude surface (#82). The install docs listed the commands but never the ordering consequence: the SessionStart hook registers a session only when it starts, so a session already running when you install the hooks is observed but never registered. Documented next to the install steps, plus a "Known rough edges" entry naming the three causes (started before hooks, a headless claude -p session, or a stale binding after a terminal restart).

Honest scope

This kills the "forgot to install on a new machine" class. It does not retroactively register sessions that were already running when you installed the hooks — that's a fundamental limit (there's no reliable way to link a session id to a live process from outside the hook's own context; the obvious transcript-handle trick was measured and doesn't work, because claude doesn't hold the file open). Restart such a session, or act on it manually.


Install / upgrade: go install github.com/jitokim/fleetops/cmd/fleetops@v0.6.0-alpha, then fleetops hooks install (or just launch it and press H).

Still alpha — it sends real keystrokes and can kill real processes. Read the README's "Known rough edges" first.