Releases: anulum/synapse-channel
Releases · anulum/synapse-channel
v0.32.0
Added
synapse hub --max-clients Nand--max-msg-kb Kcap concurrent connections and
inbound frame size, so one host or one oversized message cannot exhaust the hub.synapse healthprobes a hub (exit 0 reachable, 1 not), wired as a Docker HEALTHCHECK.- The hub token can be supplied with
--token-file PATHor theSYNAPSE_TOKEN
environment variable instead of--token, which is visible in the process list.
Changed
- The hub drains on SIGTERM/SIGINT (graceful shutdown) instead of running on a bare
future; a name is protected from an eviction storm by a takeover cooldown. - The Docker image is pinned to
python:3.13-slim, the highest version CI exercises.
Security
- SECURITY.md documents the advisory file-scope model (the hub never reads the
filesystem, so claim paths are not a traversal surface), the new caps, and that
state is plaintext at rest on the local machine.
v0.31.0
Added
- A best-effort update notice:
synapse --versionchecks PyPI (cached once a day,
silenced bySYNAPSE_NO_UPDATE_CHECK=1) and prints a one-line upgrade hint when a
newer release exists; every network or cache failure is non-fatal and silent. - CI runs
pip-auditagainst the runtime dependencies and fails on any known
vulnerability. - README: PyPI version and downloads badges.
v0.30.0
Added
synapse wait --wake-jitter <seconds>(default 8): a broadcast wakes every
terminal at once, so their agents all re-invoke and hit the model-provider API in
the same instant — and the provider rate-limits the burst. The waiter now adds a
random 0..jitter delay before exiting on a broadcast wake, spreading the
re-invocations so each reacts without the synchronised stampede; a one-to-one
directed message still wakes immediately. Set0to disable.
v0.28.1
Fixed
synapse waitnow exits (code 3) when its connection drops — a hub restart,
supersede, or network blip — instead of looping forever on the dead socket. A
--timeout 0waiter that silently stayed up after a hub restart was exactly how an
agent went dark (reachable via its presence daemon, but never woken); it now exits
so the caller re-arms.
v0.27.1
Added
- A
synapse-presence@.servicesystemd template and its deployment guide: a
per-project presence holder that keeps a project reachable on the hub even when
its agent is down or rate limited (restarted by systemd if it dies, no model, no
cost), decoupling reachability from the agent while the wake loop stays the
promptness layer.
v0.17.0
Added
- Task-class routing (
routingmodule):classifyis an LLM-free, deterministic
policy that sorts a prompt intorule,slm, orheavyby its length and a
small keyword set, andTieredChatClientis a chat backend that dispatches
each request to the backend for its class (falling back to a default), so
trivial requests are answered cheaply and only hard ones reach a heavy model. - The model worker gains a
tieredprovider (a rule path plus SLM and heavy HTTP
models) and a--heavy-modeloption.classify,TaskClass, and
TieredChatClientare exported. - A committed routing benchmark (
benchmarks/routing_benchmark.py): a fixed
prompt set with checked-in results reporting the class distribution, the
per-prompt decision, and a verification that a tiered client dispatches each
prompt to its class. Decisions are exact and reproducible; backend latency is
out of the offline scope (theslm/heavytiers need a live model server).