Skip to content

v0.39.0 — memory ingest seam, the syn CLI, and honest git auto-release

Choose a tag to compare

@anulum anulum released this 24 Jun 06:47
· 1708 commits to main since this release

Added

  • A sequence-cursored ingest seam over the durable event store, for an optional
    persistent-memory adapter. EventStore.read_since(after_seq, kinds=..., limit=...)
    returns events whose monotonic sequence is above a cursor, optionally filtered to
    a set of kinds and capped to a batch size — so an adapter tracks the last sequence
    it consumed, polls forward in batches, and resumes with no loss or duplication
    across hub restarts. MEMORY_KINDS names the subset a memory layer ingests
    (recall, finding, checkpoint, handoff), excluding the pure coordination
    kinds. A synapse ingest <db> [--since N | --cursor FILE] [--memory | --kind K ...] [--limit N] command streams the events as newline-delimited JSON for an operator
    or a non-Python bridge, persisting the cursor between runs.
  • An opaque memory_tag on SynapseAgent.chat(...) — a free-form marker (e.g.
    "remember") that rides the durable chat event and the broadcast unchanged so a
    read-side filter can pick out actively authored context. The hub carries it
    without interpreting it, and it is omitted from the envelope when blank.
  • A first-class syn command (with syn-name/syn-wait/syn-say/syn-inbox/
    syn-board aliases) — a thin, identity-correct front end over the package
    commands for the loop an agent runs each session. The project identity is
    resolved from --project, then $SYN_PROJECT/$SYN_IDENTITY, and the working
    directory only as a last resort, so a command run from the wrong directory no
    longer silently coordinates as the wrong project; an identity that looks
    accidental (the home directory, a system path) is flagged rather than used in
    silence. syn arm builds a directed-only waiter named distinctly from the sender
    in one place, correctly.

Documentation

  • MEMORY.md — the persistent-memory write-side architecture: the two-sided model,
    the three honesty axes (evidence kind / claim status / freshness), the emit-gate
    invariants, hub-attested provenance, the durable kinds + MEMORY_KINDS, the
    sequence-cursored ingest seam with a worked example, and the write-side ↔
    read-side honesty contract.

Fixed

  • Honest auto-release feedback. A git-claim --auto-release-on commit|merge is
    enacted only by the client-side git hook, never by the hub, so a claim made
    without synapse git-hook installed would sit held while the banner implied an
    automation that was not wired. The grant now checks whether the matching hook is
    installed and, when it is not, says so plainly and points at both remedies
    (install the hook, or drop the claim with synapse release <task> --name <you>).
  • git-release no longer traps a manual caller. It is hook-invoked and auto-detects
    which claims to drop from the git diff, so it takes no task id and needs
    --trigger; running synapse git-release <task> or omitting --trigger now
    returns a message pointing at the verb that actually performs a manual drop
    (synapse release <task> --name <you>) instead of a bare argument error.