You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added signed-event trust bundles and mutual-TLS enforcement for multi-host hub
deployments: operator trust bundles verify event signatures, certificate pins,
project scope, replay windows, and signing-key ids, with explicit
verification-result strings.
Completed the at-rest encryption runtime to the full local storage profile:
SQLite event stores and WAL/SHM sidecars, relay logs, A2A state files, archive
outputs, key-file permission checks, and a migration/rekey flow with backup,
recovery, and failure-safe startup notes.
Added the private-channel runtime completion tranche: synapse channel history returns bounded member-only live history, channel chat is journalled
and relay-mirrored with explicit channel ids, synapse relay --channel / --public-only / --channel-metadata filter projections, and synapse event-query "channel <id> between seq <start> <end>" returns
metadata-only channel evidence.
Added endpoint-side encrypted chat payloads: synapse send --encrypt-key-file
writes an AES-256-GCM payload envelope with route-bound AAD, synapse listen --decrypt-key-file decrypts locally, and synapse channel key-check
validates payload key files while keeping key discovery and rotation out of
scope.
Added opt-in model cost/token accounting. synapse accounting record posts a usage-kind progress note carrying a canonical token/cost body, and synapse accounting report aggregates those notes from a hub SQLite event store into
per-agent and per-model totals with optional --pricing cost estimates and --budget evidence. Synapse calls no model provider and collects no telemetry,
so usage exists only when recorded; budgets are evidence, not an enforcement
gate. The canonical note format is documented so non-Python clients can record
the identical body.
Added human-in-the-loop approval gates. synapse approval request puts a
subject (a held task or policy-gated release) in awaiting_approval, synapse approval decide --approve|--reject records a decision, and synapse approval status replays the approval-kind ledger notes into the current decision
state per subject (latest event wins, so a re-request re-opens the gate). It is
advisory evidence and an audit trail, not a hard runtime gate; an approved
subject can be cited in a release receipt via synapse release --approval.
Rebuilt synapse dashboard as a live fleet nerve-center cockpit. The page now
polls /snapshot.json and updates in place instead of reloading on a full-page
meta refresh: a heads-up vitals bar, a fleet graph that clusters online agents
by project and colours each by waiter health, board lanes, an active-claims
panel, a live progress stream, release receipts, and the capability manifest.
It stays loopback-only and read-only, ships its CSS/JS as package data with no
runtime dependencies, and keeps a server-rendered <noscript> fallback.
Changed
Event-signing and mutual-TLS modules import cryptography lazily, so the base
client, hub, and CLI install and import with only the websockets runtime
dependency; signing, mTLS, at-rest, and payload encryption pull the optional encryption extra only when those features are used.
Security
Updated the JS client dev toolchain (vitest 3.x, vite 7.x, esbuild 0.28.x) to
clear five npm advisories in clients/js, including a critical vitest UI
arbitrary-file read/execute and a high vite server.fs.deny bypass on Windows.