Skip to content

v0.1.8

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Oct 17:10
· 86 commits to master since this release

16 commits since v0.1.7, and one reason to cut them: v0.1.7 was re-cut in place, and a moved tag reaches nobody. An update is offered by version, so anyone who installed 0.1.7 before that re-cut is holding the build where clicking a row in the tree took the keyboard away from it, and would never be told otherwise. 0.1.8 is how that fix arrives.

conch says what it is doing, to the terminal it runs in

0.1.7 taught conch to read the Program Status Protocol (OSC 7501) from the agents in its panes. This is the other half: conch is a program on your terminal too, with the same thing to say.

  • One report of its own — blocked while any agent is waiting on you, error for one that has failed, else working, done or idle — with a line naming the agent when there is one of it (claude on feat waiting) and counting them when there are more. A terminal that understands the protocol can put that on the tab, which is the one state you cannot see for yourself, because seeing it means looking at conch.
  • It counts every agent conch knows, not only the workspace on screen: a tab is outside workspaces, and an agent waiting in one you switched away from is exactly the one that is out of sight.
  • conch takes the report away when it quits, so no tab is left saying an agent waits after the conch that said so has gone.
  • Unlike an agent, conch does not ask the terminal first. The answer would arrive on its own stdin, where the TUI reads keys and would take ESC ] 7 5 0 1 ; for an escape followed by the digits 7, 5, 0, 1 — digits that switch tabs. Writing without listening is the safe half. An unknown OSC is thrown away by terminals that do not implement it, and these are written only when something changes.
  • Off inside tmux and screen, which own the window the report would reach. CONCH_STATUS=0 turns it off anywhere, 1 turns it on.

No released terminal is known to display these yet — Ghostty has the parsing in libghostty-vt and the app still ignores it — so this is conch being ready rather than conch lighting up today.

Closing a workspace asks what to do with what is running in it

Closing a workspace moved its agents and terminals to workspace 1, always, with no way to say otherwise. It now asks, naming the count:

  • Move them to workspace 1, still running — what it always did.
  • End them, and close it.

End reaches only the panes no other workspace shows. A project shared with another workspace keeps its agents; closing a view is not somebody else's loss. Panes started in that workspace, panes in a project only it has, and whatever its own agents started are what go. With nothing running it is the plain confirm it always was.

The file explorer shows dotfiles

.github, .env, .gitignore — shown by default, and whether you hide them is remembered.

Saying true things where it said confusing ones

  • A machine's page gives the build conch actually compares, and says up to date or older build. It used to print the hash of the binary running over there, which for a remote is cross-built for another platform and so can never match yours — a machine upgraded minutes ago read as a stranger's build.
  • conch status says (reloaded N ago) beside the uptime. The uptime counts from the first server of a chain of reloads — its panes have been alive that whole time — so it says nothing about which build is in the process, and a server upgraded a minute ago read as days old.
  • conch machine upgrade names the machines conch has when the ref names none, instead of trying to resolve it as a hostname and reporting Could not resolve hostname dxb01.
  • A dialog, and a menu, fit a terminal narrower than they are. A menu was as wide as its longest label, and the view's truncation then took the frame's right edge off the screen; a long item is cut with an ellipsis now. A machine page packs its agents into the width it has, so the page can centre them instead of spilling.
  • A release can be re-cut. The publish step creates the release or replaces its archives, keeping notes somebody wrote. gh release create exits 1 the second time, which failed v0.1.7's workflow twice and published nothing — the thing this release exists to repair.

Fixes

  • A machine's page no longer says up to date about a server that told it nothing to compare. Found by this release's own CI: the comparison is by version in a release build and by build id otherwise, and only one of those paths was guarded.