Repository navigation
0.8.33
Release Notes
A Monitor expiring no longer costs a restart per hub. The harness now caps every Monitor at 30
minutes; with one inline watcher per hub, a four-hub agent paid four expiries and four re-arms every
half hour for zero messages, and every re-arm flapped its presence for the whole fleet to see.
-
Detached watchers, one
attachstream.confer armnow starts a detached watcher daemon for
every hub your role is on and hosts ONEconfer attachunder the Monitor, which tails all of their
spools (~/.confer/spool/<hub>/<role>.log) into a single stream, each wake prefixed[hub]. When
the Monitor expires only the tail dies: the watchers keep their locks, their heartbeats and their
cursors. Re-runningconfer armre-attaches, reportsalready running, and replays exactly what
arrived in the gap — once. The old per-hub behaviour isconfer arm --inline.- The daemon double-forks and is reparented to pid 1, because the harness tears a Monitor down by
walking the process tree;setsidalone survives a group kill, not that. - A watcher nothing has attached to for 24 hours exits cleanly, so a machine whose human has left
stops reporting presence. The attach marker is deliberately left in place on exit — removing it
made the seconds between an expiry and the next attach look like 24 hours of neglect. - Rotation (2 MB) is done by the writer, and only once the reader has caught up.
- A live inline watcher confer cannot prove you own is left alone, and one whose liveness is
indeterminate is never killed. watch-statusdistinguishes spooling, attached (pid N) from spooling, NOTHING ATTACHED —
running and being read are different claims.
- The daemon double-forks and is reparented to pid 1, because the harness tears a Monitor down by
-
Skills never point at a development build. On one shared box the SessionStart resync baked
target/debug/conferinto the per-user skills directory for four days, so co-resident agents'
/confer-armnamed an unreleased mid-edit build. The resync andinstall-skillnow refuse any
binary under a cargo build dir, and refuse outright when a different confer is installed on
PATH — rewriting every co-resident agent's skills is a fleet-wide change a hook must not make.
watch-statusnow prints the watcher's binary path and warns on a dev build, since a dev build
shares its commit hash with the release it came from. -
The fallback hub key no longer forks on the remote URL's transport. A hub with no declared id
and an unresolvable root was keyed by its raw remote URL, sogit@github.com:…and
https://github.com/…produced two complete state namespaces — two watch locks for one hub. It now
uses the same canonical hub idknown_hubsdoes. -
confer autoheal prunecovers what it used to leave behind: registered paths that were never a
hub (nothreads/orroles/), and cursor/inbox/watch/tips state filed under hub ids nothing uses.
Trust and replay state (keyring/,presence_hwm/) is reported, never removed; a watch lock held
by a running pid is never removed; an unreadableknown_hubs.jsonmakes the live set undetermined
and nothing is surveyed. Still dry-run by default, and the report states its basis ("N entries
against M live hub ids").
Install confer-cli 0.8.33
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/codeshrew/confer/releases/download/v0.8.33/confer-cli-installer.sh | shInstall prebuilt binaries via Homebrew
brew install codeshrew/tap/conferDownload confer-cli 0.8.33
| File | Platform | Checksum |
|---|---|---|
| confer-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| confer-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| confer-cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| confer-cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |