Repository navigation
0.8.38
Release Notes
From the first field reports on 0.8.37: the plugin now follows a resumed session, never hands a session another agent's hubs, and has confer plugin status|restart. Detached watchers upgrade themselves too.
-
A resumed session arms for the right session. After a Claude Code resume the shell can keep
the pre-resumeCLAUDE_CODE_SESSION_IDwhile the plugin reader runs under the real one. Every
confer armstamped the stale id, the reader delivered nothing, and the agent fell back to
30-minute Monitors all night (jarvis). When the shell's id has no live reader but the Claude Code
process that runs it has one, confer now uses that reader's session, andarmsays so. -
A fresh session no longer inherits another agent's hubs. The plugin remembered each
project's hubs so a new session could resume without arming, but it remembered only the last
agent to use the directory, so a new jarvis session was handed herdr's hub (jarvis). Once a
session arms, remembered hubs of other roles are dropped. When two agents with no role in
common have used a project, fresh sessions there wait for their own arm. -
A watcher that cannot start names the binary. A reader still running a binary an upgrade had
replaced failed every spawn with ENOENT, and the error blamed the clone directory. The error now
names both, and on Linuxconfer plugin statusflags a reader whose binary was replaced on
disk. Detached watchers are now started by the path confer was launched as, not the resolved
executable. -
A detached spool watcher re-execs when its binary is replaced. The plugin reader already does
this (0.8.37). On Grok the watcher is reparented to pid 1 and outlives the Monitor, so an upgrade
left it on the old build until the nextconfer arm. It now execs the new confer in place: same
pid, the lock is adopted instead of signalling itself, and it prints oneupgraded from …line.
Inline watchers are unchanged.CONFER_WATCH_UPGRADE_SECS(default 30) is the check interval. -
confer plugin statusandconfer plugin restart. The documented way to move an old plugin
reader onto a new build was to read its pid from~/.confer/plugin/readers/<session>.jsonand
kill it. On a real machine that file named a reader that had died hours before, and the live
reader for the project ran under a different session id, so the kill hit nothing
(batcave-net).statuslists the running readers and marks yours.restartstops yours (this
session's, else this project's;--pidpicks one when several serve a project), then waits for
the plugin to start a fresh one on the installed confer and reports it. It only ever signals a
pid that a reader record names and that is a live confer process. -
Reader records are cleaned up. A reader removes its record when it exits, and a starting
reader clears records of readers that are no longer running. -
A deliberate stop restarts in 2 seconds, not 30. The plugin's wrapper script now tells a
clean stop (exit 0) from a failure; failures still back off for 30 seconds. Takes effect when
Claude Code updates the plugin. -
A watcher's startup lines are no longer delivered as wakes. "--replace killed the existing
watcher", "owned by role", "streaming new items" and the like reached the agent as six
notifications every time a watcher restarted (astrolabos-voice). They still go to the spool
file for debugging.
Install confer-cli 0.8.38
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/codeshrew/confer/releases/download/v0.8.38/confer-cli-installer.sh | shInstall prebuilt binaries via Homebrew
brew install codeshrew/tap/conferDownload confer-cli 0.8.38
| 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 |