v0.5.2 — one address, three spellings
A configuration release and a documentation one, plus a bug found by writing the
documentation down.
--rendezvous, --bind, --connect. All three name the same thing — where
sessions meet — and which one you use says what this session is willing to do
there. The default races for the endpoint and settles for either answer, exactly
as before. --bind insists on relaying and refuses to join if somebody else
already holds it: a terminal window left open makes an excellent stable hat, and
quietly becoming an ordinary participant instead is the failure worth being told
about rather than discovering when the net changes hands. --connect never binds
at all, for a session that will be gone in a minute and should not be anybody's
spine. Neither decides who wins — the hat is still taken by getting there first.
--rendezvous is the endpoint under YAAC's own name for it; the log line has said
"rendezvous" since the beginning, while --endpoint was ZMQ's word. That name
still works as a hidden alias, so nothing that used it breaks. There is no
--port, because the address carries one, and a bare port is what makes a
wildcard bind easy to type without meaning to. Typing one anyway is warned about
on stderr rather than refused: YAAC has no authentication and is not meant to, so
an address the network can reach hands an open bus to whoever finds it — but
somebody who means it is entitled to it.
The flags are defined once and offered by both entry points. yaac-chat had only
--endpoint before, which was backwards: the terminal client is the process most
likely to want --bind.
A hook no longer waits out its timeout against an older peer. sessions, the
query that makes the session directory work, was added in 0.5.1 without pairing —
and a hat too old to know an operator message logs it and never answers, so
directory spent its full timeout on every Codex hook event for as long as such a
peer kept the hat. It now sends channels behind it, a question every version has
answered, and relies on a ROUTER handling one peer's messages in order: a
channels reply with nothing ahead of it proves the peer read the query and had
nothing to say. directory had no tests at all; it has them now, including a hat
that answers one and not the other, so the next wire addition inherits the test
rather than the bug.
Every document read against the code. docs/zmq.md still described the world
channel as built, peer_uid as a hash of peer_secret, and a scope's peer as
carrying the uid — the last two were never true. CLAUDE.md's layout listed six
modules of eleven, omitting the whole delivery half. The README still said no
client but Claude Code can wake an idle session, which 0.5.1 inverted. The
compaction hand-back was missing from the README and the bundled skill, and
docs/message-format.md documented neither the sessions op nor the two things
hello now carries beside the name. The MCP specification was re-read rather than
assumed: still revision 2026-07-28, unchanged, and its Multi Round-Trip Requests
make the direction plainer than the note claimed — server-initiated requests are
gone outright, not merely absent.