Skip to content

v0.66.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 06:39
· 1365 commits to main since this release

Added

  • 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.