Skip to content

0.8.33

Choose a tag to compare

@github-actions github-actions released this 24 Sep 05:24

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 attach stream. confer arm now starts a detached watcher daemon for
    every hub your role is on and hosts ONE confer attach under 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-running confer arm re-attaches, reports already running, and replays exactly what
    arrived in the gap — once. The old per-hub behaviour is confer arm --inline.

    • The daemon double-forks and is reparented to pid 1, because the harness tears a Monitor down by
      walking the process tree; setsid alone 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-status distinguishes spooling, attached (pid N) from spooling, NOTHING ATTACHED —
      running and being read are different claims.
  • Skills never point at a development build. On one shared box the SessionStart resync baked
    target/debug/confer into the per-user skills directory for four days, so co-resident agents'
    /confer-arm named an unreleased mid-edit build. The resync and install-skill now 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-status now 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, so git@github.com:… and
    https://github.com/… produced two complete state namespaces — two watch locks for one hub. It now
    uses the same canonical hub id known_hubs does.

  • confer autoheal prune covers what it used to leave behind: registered paths that were never a
    hub (no threads/ or roles/), 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 unreadable known_hubs.json makes 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 | sh

Install prebuilt binaries via Homebrew

brew install codeshrew/tap/confer

Download 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