Releases: gmhoward9289-ops/roost
Release list
v0.6.1
v0.5.0
Added
- LOCAL MODELS panel (#16) — surfaces the models on the box, and stops hiding the ones that aren't currently loaded.
- npm distribution (#12) —
npx roost-topornpm install -g roost-top, alongside the existing PyPI, Homebrew and apt channels. Still the same single-file, stdlib-only Python program; the npm wrapper only locates an interpreter. - ADVICE names the task, not just the pid (#1) — advice lines identify a session by what it is working on, so acting on one doesn't mean cross-referencing the table first.
llms.txt, so AI crawlers get a plain-language summary of what roost is.
Fixed
- Homebrew formula points at a tracked release asset (1a52b2f) rather than a tarball whose checksum moved.
Changed
- Releases run through release-please (#19, #20) — the version bump and tag are cut by merging a release PR instead of by hand, with npm and Homebrew tap publishing automated on release (#18).
- A CHANGELOG now exists, backfilled to cover v0.01 through v0.4 (#13).
- README points at the
help wantedissues; demo recording re-cut against 0.4.
These notes were rewritten by hand. The originally generated set listed only the Homebrew fix, because release-please reads conventional-commit prefixes and only one of the fifteen commits in this range carried one.
Full Changelog: v0.4...v0.5.0
v0.4 — interactive mode, gated behind i
Added
-
Interactive mode is now explicit, and off by default (#10).
iarms and disarms it; the cursor,x,yand theEXPERIMENTALtag all come alive together. Start armed with--interactive.This is a behaviour change. Before 0.4, a dashboard left running could end a session on a stray keypress. If you relied on
xworking immediately, pressifirst. -
Demo GIFs in the README, plus the recording rig that produces them (
demo/). The recordings are realroostreading a staged fleet — session files backed by live pids, transcripts that keep ticking, subagents appearing mid-recording — not mockups.demo/README.mddocuments re-recording.
Rewritten by hand. The auto-generated set led with "Update Homebrew formula for v0.3" — packaging for the previous release — and buried the change above inside a version-bump title.
Full Changelog: v0.3...v0.4
v0.3 — a real, signed apt repository
Added
- Signed apt repository, alongside the standalone
.deb(#2).apt install roostnow upgrades in place instead of being a one-shot local install. CI publishes every tagged.debinto the repo, hosted on GitHub Pages. Signed with a dedicated key held only in repository secrets; its public half is committed atpackaging/apt/pubkey.asc.
Fixed
- Corrected the recorded v0.2 tarball checksum in the Homebrew formula after the tag was re-cut.
Rewritten by hand. The auto-generated set listed "Bump version to 0.3" as a headline item and reduced the apt repository to a PR title.
Full Changelog: v0.2...v0.3
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
v0.01 — top for Claude Code, including subagents
Initial release. top for Claude Code — every live session, the model it is on, how much context it has burned, and the subagents it spawned.
Single file, no dependencies, Python 3.9+. macOS, Linux and Windows.
Added
- A live view of every Claude Code session — model, context consumed, idle time, and the subagents it spawned.
- Subagent visibility, which pid-based tooling cannot provide. Subagents run as sidechains inside the parent and have no process of their own. Each does get a transcript at
projects/<slug>/<sessionId>/subagents/agent-<id>.jsonl, while the short task description lives only in the parent'stoolUseResultkeyed byagentId.roostjoins the two. - Context accounting from the last assistant turn's
input+cache_read+cache_creation. Nothing on disk records the window size, so the tier is inferred — and printed, so the assumption stays visible rather than silently wrong.
This release was tagged but never published; these notes were written afterwards from the changelog. Later releases are the ones to install — see v0.5.0.
Full Changelog: https://github.com/gmhoward9289-ops/roost/commits/v0.01