handleDeliveryError()'s retry re-queue used message.to ('broadcast') as the
queue key for a broadcast message instead of the per-subscriber agentId
enqueue() actually fanned the message out to. processQueues() skips any
unsubscribed queue, so a failing broadcast subscriber's retries -- and
eventual message.failed -- were silently dropped into an orphaned queue
leaking until shutdown(). Explicitly disclosed as a known limitation by the
preceding #3562/#3563 MessageBus rewrite; closed by threading
subscription.agentId through deliverMessage() -> handleDeliveryError() ->
the re-queue.
2 new discriminating tests (stash-isolated baseline-fails/candidate-passes,
independently reproduced by an adversarial critic). Full swarm suite
274/274 -> 276/276, 0 regressions, tsc clean both ways.
Co-Authored-By: RuFlo <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_016qkoWKmaupqNEJwqiedzsX
Gate hive-mind init/join/leave/spawn/propose/vote/broadcast/shutdown/
memory set+delete/optimize-memory for remote (HTTP/WebSocket) callers only;
local stdio, ruflo mcp exec, the CLI and in-process callers keep working
with no extra step. hive-mind_init never returns hiveToken. Operator secret
from RUFLO_HIVE_BOOTSTRAP_SECRET or a 0600 bootstrap.secret created by the
first local init. state.json is written 0600 atomically (dir 0700).
Constant-time compare. RUFLO_HIVE_REQUIRE_AUTH=1 for bridged stdio.
Co-Authored-By: RuFlo <ruv@ruv.net>
The caption and the section mark were set out of step in the recording, so
for ~3 s near the end the pin lagged one section. Re-recorded with the
check that fails the build on a pin/caption disagreement.
Co-Authored-By: RuFlo <ruv@ruv.net>
Boot, then the whole Workflows page on a sample run with pinned section
headers, the measured Control tab, replay playing by itself, the autopilot
envelope editor. Recorded with an isolated home and a sample federation
file; checked against the real peer, tailnet, host and user names (none
appear). 1.3 MB, 952x964, pure CSS, no scripts.
Co-Authored-By: RuFlo <ruv@ruv.net>
The SVG merged in #3847 showed the Conversation target list from the
recording machine's real federation peers. Those hostnames are replaced with
same-length neutral names, and the animation now pins each section's header
(sticky, following the section at the top of the dock).
Co-Authored-By: RuFlo <ruv@ruv.net>
The README's near-square GIF (5.5 MB, the old all-pages tour) becomes an
animated SVG at the same 952x964: the boot, then the Workflows page on a
sample run. 1.3 MB, pure CSS animation, no scripts. The wide all-pages tour
GIF stays linked.
Co-Authored-By: RuFlo <ruv@ruv.net>