Skip to content

v0.9.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Jul 01:20
· 9 commits to main since this release
5e0130e

sykli 0.9.0-rc.1

Release candidate — GitHub-only prerelease. No registry publishes; binaries
below are for local testing.

The mandate release.

Schema v5 lands end to end: contracts declare who executes a task (actor)
and under what bounded authority (mandate), the engine enforces those
bounds with git-backed verification, and sykli audit judges any recorded
run against the pinned contract. Alongside it: the Sykli Workbench, a
local-first web control room for one repo.


Highlights

v5: actor + mandate, enforced

  • All five SDKs emit v5 (actor, mandate). Agent actors require a
    mandate, non-empty success_criteria, and non-empty evidence_required
    — a hard schema error otherwise. Gate and review tasks reject the new
    fields.
  • The executor enforces mandates. Scope is verified with git
    fingerprints (pre-existing dirty files cannot hide task writes), budgets
    cap diff lines and wall clock, and capabilities.network: false denies
    network where the runtime supports isolation. Every executable task with
    a mandate records a mandate_outcome
    (kept / violated / unverified / unsupported) in run history —
    verification never fails open.
  • sykli audit <run-id>. Judges a recorded run manifest: lock hash
    match, success-criteria and evidence results recorded, mandate outcomes
    present for agent tasks. The verdict is computed at read time against the
    current sykli.lock — re-locking a different contract flips old runs
    to fail. The core lives in Sykli.Services.Audit, shared by CLI and the
    Workbench.

Sykli Workbench (sykli gui)

A local-first control room for one repo: contract, run graph, members,
work items, gates, evidence, activity — one screen. Bandit + Plug bound to
127.0.0.1 only; the SPA is embedded in the binary at compile time.

  • Real data by default. Repo identity from git, contract from
    sykli.lock / .sykli/context.json, runs and evidence from .sykli/runs/,
    work items and gates from their local stores. The GUI never executes repo
    code — GET /api/state cannot trigger an SDK emit. --demo serves the
    showcase dataset.
  • Gate decisions write through. Approving a gate in the browser produces
    the same .sykli/gates/<id>.json artifact as sykli gate approve, with
    member:-qualified attribution.
  • The v5 story rendered. Contract-declared agent actors appear as
    members with their mandates; nodes show mandate outcomes; evidence rows
    show the live audit verdict and a per-run mandate summary.

Fixes

  • Daemon heartbeat shutdown. The final offline goodbye in terminate/2
    can no longer turn a clean stop into a crash when the transport is
    already gone (e.g. :inets stopping during VM drain).
  • Run lookup by id. Sykli.RunHistory.get/2 finds a run without
    loading every manifest; corrupt manifests cannot hide valid runs.

Using the SDKs with this rc

This is a GitHub-only prerelease: no SDK package was pushed to any
registry
(crates.io, PyPI, Hex, npm, Go module tag). Registry versions
resolve again at the stable 0.9.0 tag. Until then, depend on the tag
directly:

Rust (verified against this tag):

[dependencies]
sykli = { git = "https://github.com/false-systems/sykli", tag = "v0.9.0-rc.1" }

Python:

pip install "git+https://github.com/false-systems/sykli@v0.9.0-rc.1#subdirectory=sdk/python"

Elixir:

{:sykli, git: "https://github.com/false-systems/sykli.git", tag: "v0.9.0-rc.1", sparse: "sdk/elixir"}

Go (the module-aware sdk/go/v… tag ships with stable releases only;
pin the release commit):

go get github.com/false-systems/sykli/sdk/go@5e0130e

TypeScript: npm cannot install a subdirectory of a git repo — clone the
tag and use a local file: dependency on sdk/typescript for now.

Compatibility

  • Pipelines emitting versions "1""4" are unchanged. "5" is emitted
    automatically when actor/mandate are used.
  • Run manifests gain optional mandate_outcome on task results; older
    manifests read cleanly.
  • New CLI surface: sykli audit <run-id>, sykli gui. New error codes are
    cataloged in docs/error-codes.md.

Checksums

SHA256SUMS.txt is attached to this release.