Skip to content

Releases: anulum/synapse-channel

v0.32.0

22 Jun 21:20

Choose a tag to compare

Added

  • synapse hub --max-clients N and --max-msg-kb K cap concurrent connections and
    inbound frame size, so one host or one oversized message cannot exhaust the hub.
  • synapse health probes a hub (exit 0 reachable, 1 not), wired as a Docker HEALTHCHECK.
  • The hub token can be supplied with --token-file PATH or the SYNAPSE_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

22 Jun 18:18

Choose a tag to compare

Added

  • A best-effort update notice: synapse --version checks PyPI (cached once a day,
    silenced by SYNAPSE_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-audit against the runtime dependencies and fails on any known
    vulnerability.
  • README: PyPI version and downloads badges.

v0.30.0

22 Jun 17:36

Choose a tag to compare

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. Set 0 to disable.

v0.28.1

22 Jun 10:57

Choose a tag to compare

Fixed

  • synapse wait now exits (code 3) when its connection drops — a hub restart,
    supersede, or network blip — instead of looping forever on the dead socket. A
    --timeout 0 waiter 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

21 Jun 08:51

Choose a tag to compare

Added

  • A synapse-presence@.service systemd 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

21 Jun 03:12

Choose a tag to compare

Added

  • Task-class routing (routing module): classify is an LLM-free, deterministic
    policy that sorts a prompt into rule, slm, or heavy by its length and a
    small keyword set, and TieredChatClient is 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 tiered provider (a rule path plus SLM and heavy HTTP
    models) and a --heavy-model option. classify, TaskClass, and
    TieredChatClient are 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 (the slm/heavy tiers need a live model server).