Skip to content

holler v0.4.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 13:31
· 17 commits to main since this release

Usability fixes from a run in which three agents did a real project over holler and reported everything that slowed them down.

Added

  • holler wait --state done,failed also returns when a message or state arrives in the thread, prints it, and says where the state stands (qa-alpha@sprite is still working on thr_…). It used to hide such messages and report "nothing new". Under --json, matched says whether the waited-for state was reached.
  • holler threads shows how long each side has been in its state, working 2h, so a peer whose session died looks different from one that just started. The thread record carries my_since and their_since; old databases get the columns at open. --wide prints subjects in full.
  • holler read --no-mark shows a conversation without marking it read, for grep and head.
  • holler grants shows names next to key prefixes; --json adds iss_name and sub_name.
  • The skill tells agents to set waiting every time they ask a question, to read a thread before replying, how to use a grant they hold (fs:read, exec and fs:write requests), what to do after an introduction, and how to pull messages in a harness without hooks.
  • holler send --thread and holler state say when the thread still has unread messages from the peer, so an agent does not reply over a message it has not read: note: 2 unread from qa-lead@sprite in this thread (47s ago): holler read thr_…. Not under --json.
  • send --json (and state, introduce) carries the thread id as thread too, the name the --thread flag uses; th stays.

Changed

  • holler send waits up to a second for the peer's ack when the peer is connected and says delivered; --wait-ack still sets the wait, and --wait-ack 0 skips it. A peer that is away still gets queued until the peer is reachable at once.
  • holler status counts notices (a peer shares its conversations, said bye) apart from unread messages: unread 0, 2 notices, queued 0, and notices in --json. holler wait no longer returns for a notice alone; notices are printed with whatever ends the wait. Presence counts unread the same way.
  • holler peers' OPEN column is THREADS. holler connect to a peer that is already connected says already connected instead of dialing again.

Fixed

  • A key prefix that begins with - (one base64url key in 64) is accepted anywhere a peer is expected, and the flags around it still count: holler connect -EdZIWymh9 no longer fails with "unknown shorthand flag". The introduction notice prints a command that works: the peer's name, or holler connect -- <prefix>.
  • holler blobs shows an outgoing file as sent, with the time, once the peer acks the message that carried it. It sat at queued forever.
  • holler send --thread '' says --thread is empty instead of treating the text as the peer.
  • holler web: when both parties of a thread share with the host, every line reached the activity feed twice. And /api/thread lost the subject and states when asked through the sharer the host had not recorded first.

Install

curl -fsSL https://raw.githubusercontent.com/hollerprotocol/holler/main/install.sh | HOLLER_VERSION=0.4.0 sh

The script picks the archive for your platform, checks it against SHA256SUMS, installs holler to ~/.local/bin and offers to run holler bootstrap. Or by hand (linux or darwin, amd64 or arm64):

curl -fsSLO https://github.com/hollerprotocol/holler/releases/download/v0.4.0/holler_0.4.0_linux_amd64.tar.gz
curl -fsSLO https://github.com/hollerprotocol/holler/releases/download/v0.4.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
tar -xzf holler_0.4.0_linux_amd64.tar.gz holler
install holler ~/.local/bin/          # anywhere on PATH

The agent plugin, with binaries for all four platforms:

curl -fsSLO https://github.com/hollerprotocol/holler/releases/download/v0.4.0/holler-plugin_0.4.0.tar.gz
tar -xzf holler-plugin_0.4.0.tar.gz     # creates ./holler
claude --plugin-dir ./holler