v0.2 — a cursor you can act on
The release that made roost actionable rather than purely observational, and gave it real install paths.
Added
- A cursor you can act on.
j/kmove it,xstops the selected session behind a confirmation,ycopies its session id forclaude --resume.QUIETexpands under the cursor, since long-idle sessions are what the sweep is for. - Three install paths — Homebrew,
.deb, and pipx-from-git — plus acurlone-liner. PyPI publication asroost-toplanded at the end of this cycle. - Version stamped on the frame, bottom-right, so a screenshot identifies itself.
Fixed
- The invisible kill confirmation.
paint()truncated silently, so on a frame taller than the terminal (24 sessions plus subagents is ~55 lines against a 40-row window) the confirmation prompt was clipped off-screen: pressingxlooked like it did nothing, and the next keypress cancelled a prompt that had never been seen. The status line moved into the header, which is never clipped, andpaint()now reports... N more line(s) belowinstead of truncating in silence. aandsflip between ADVICE and SUBAGENTS instead of stacking. Opening the second pushed it past the bottom of the window, so you had to close one panel to see the other you had just asked for.- Row ordering moved out of
render()intoarrange(), so the screen and the cursor index are computed once and cannot drift apart. Two orderings that disagree is how you stop the wrong session.frame()returns the row list it actually rendered, and both keys act on that captured row rather than re-resolving an index that may have outlived its frame. - Stopping a session is now logged.
- Test coverage extended to the platform kill itself, not just the guard around it.
- Packaging metadata uses the
swamplink.comcontact domain.
Rewritten by hand. The auto-generated body for this release was a single compare link with no prose — for what is still the largest release roost has had.
Full Changelog: v0.01...v0.2