Rocky v1.3.0 — deep focus, resilience, accuracy, preferences
Trust it: deep focus, a resilient registry, accurate signals, and a preferences layer
This closes out "Horizon 1" from the roadmap — the product only earns its
peripheral-vision job once the click actually lands, the registry can't take
the whole app down, alerts are trustworthy, and a screen-sharing engineer can
mute the cat instantly.
Deep focus for the terminals Rocky already detects
Clicking a tab now lands on the exact window/pane, not just the app, for:
- kitty — via remote control (
kitten @ focus-window), when enabled. - VS Code / Cursor — opens the session's folder; both route it to the
window already showing that workspace. - Terminal.app — fully scriptable by tty, like iTerm2 already was.
- tmux, inside any terminal — selects the exact window + pane and
switches the attached client, so even Ghostty/Alacritty get deep focus if
Claude runs inside tmux there.
Terminals with no scripting surface at all now say so on hover ("click
focuses Ghostty only") instead of silently promising more than they deliver.
Registry resilience
Claude Code's session registry (~/.claude/sessions/) is an undocumented
internal — a single upstream change could've taken Rocky's whole session list
down with it. Now:
- A versioned adapter decodes it, tolerating renamed/retyped fields if the
format drifts. - An unreadable or unrecognizable registry degrades to hooks-only mode
(every session that's fired a hook still shows up) instead of an empty pet. - The right-click menu always shows a plain-language self-check: hooks wired?
registry readable?
Signal accuracy
- Rocky no longer dings for state it discovers already true the moment it
(re)starts — a real, frequent false alarm during dev iteration or after a
reboot. - A permission prompt resolved outside Rocky (approved/denied at the
terminal) now still flags the very next "your turn" instead of missing it. - The re-nudge interval is tunable from the right-click menu.
- Added
scripts/test-session-store.swift, a standalone regression suite
(no framework —swiftc+ run) covering the registry⨯hook merge and alert
logic.
A minimal preferences layer
No config file, no settings window — every knob lives in the right-click menu
and persists in UserDefaults, same as the window position always has:
- Alert Style — Ripple + Sound or Ripple Only.
- Pet Size — Small / Medium / Large.
- Quiet Hours — a daily window where alerts go quiet automatically.
- Respect macOS Focus — best-effort sync with Focus/Do Not Disturb.
- Per-session mute — right-click a tab; it stays visible with a 🔕, just quiet.
Muting anything only silences the interruption (sound, ripple, window
auto-raise) — the tab, its status, and the stuck-pulse stay visible. Rocky's
whole point is peripheral vision, so nothing muting does ever makes a session
disappear.
Install / upgrade
brew upgrade rocky # or: brew install ketansomvanshi/tap/rockyor from source: git clone then ./install.sh.