Skip to content

v0.88.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 08:45
· 1196 commits to main since this release

Added

  • The Participant Fabric gained its operator surface: synapse participant list
    reports each registered provider driver's readiness (claude, codex, kimi, ollama,
    ollama-api, grok) without taking a turn, and synapse participant ask runs exactly
    one turn against one provider and prints the answer — or the full typed turn result
    with --json. Grok turns are refused while its stream schema remains unverified
    against a real binary.

  • The participant surface gained the Fabric's deliberation layers:
    synapse participant exchange runs an opener turn and a reactor turn that sees the
    opener's result only as fenced peer data, and synapse participant convene fans a
    question out to a panel named as PROVIDER[:MODEL] seats, runs the conversation
    mode's cross-critique rounds (--mode auto selects colloquy, roundtable, or
    symposium from the panel shape), and in a symposium ends with the moderator's
    synthesis. Both print each turn as it is produced — or the full typed transcript
    with --json — and honour a cumulative --budget-usd ceiling.

  • Release receipts' coordination-log commitments can now carry hub-key provenance:
    synapse merkle keygen generates the hub deployment's Ed25519 receipt-signing
    keypair (owner-only private key, distributable .pub whose key_id is derived
    from the key material), synapse verify-release --signing-key signs the Merkle
    commitment into verification.merkle_signature, and synapse policy-check --trusted-signing-key adds a merkle_signature decision so a verifier holding
    only the receipt and the .pub file learns which hub attested that exact log
    state — no access to the live log required. Verification is deny-by-default: a
    tampered root, an untrusted or transplanted key, a malformed envelope, and a
    signature with no commitment to cover all fail; only an unsigned receipt reads
    not_applicable.

  • synapse causality contention weighs every pair of overlapping live claims —
    different owners, same worktree, intersecting path scopes — by what each
    contender's task gates downstream (causal descendants of its recorded events
    plus pending declared dependents, transitively) and recommends which agent
    yields; on an equal count the later claim yields. Advisory only: no claim is
    preempted, and the exit code doubles as a collision signal (0 no overlap,
    1 at least one pair).

  • synapse status --json and synapse doctor --json emit their counts and
    verdicts as machine-readable JSON for monitoring scripts and CI health gates;
    doctor --json is a plain diagnostic and refuses the mutating and checklist
    flags so stdout stays one document. The install guide now surfaces
    synapse completions and synapse install-shell-hook.

Fixed

  • Both multi-hub transports now decode peer-hub replies with the same
    depth-bounded JSON loader the hub applies to its own inbound frames, so a
    deeply nested reply from a malicious or compromised peer fails the poll (or
    refuses the forwarded claim) instead of recursing through an unbounded parse.
  • The federation gate no longer downgrades a frame signed with a peered key to
    local processing when the connection presents no pinnable certificate — a
    plaintext socket or a certificate read that fails now denies such a frame
    outright, because the cross-domain authority its key claims can only be bound
    by a live pin. Frames signed with purely local keys are unaffected.