Skip to content

Releases: sley-lang/sley

Sley 2.0.3

Choose a tag to compare

@GreyforgeLabs GreyforgeLabs released this 28 Sep 01:55
Immutable release. Only release title and notes can be modified.

Sley 2.0.3 adds compact AF1-X authoring, persistent draft repair, focused views, checked transformations and bounded workbench search. Existing plain AF1 retains its behavior; the kernel still validates every candidate.

Release notes · Quickstart · Workbench contract

Linux x86_64

The archive contains static musl sley and sley-agent binaries. Built from 69d57b1d8fac0ef9d9f639cb606ded9be6289760, with two clean builds on each of two hosts producing identical archives.

  • Archive: sley-2.0.3-linux-x86_64.tar.gz
  • Size: 5,883,672 bytes; 17 archive members
  • SHA-256: 4a9aef6962795f49f6e9c13dfe2cd6815a9392106708cccbc491367c4ca3c2a3
  • SHA256SUMS is attached.
sha256sum -c SHA256SUMS
tar xzf sley-2.0.3-linux-x86_64.tar.gz
cd sley-2.0.3-linux-x86_64
./bin/sley version
./bin/sley-agent help
python3 demo/run_demo.py

The demo and conformance subset pass without source access. The release source passed 2,481 Rust tests (39 fixture or opt-in tests ignored), formatting, workspace clippy with warnings denied, and the non-Cargo conformance, adversarial and fuzz checks.

ga_claimed remains false; the documented 2.0.0 limits remain applicable. Schema epoch, SSMC1, SCB1 and the protocol method table are unchanged. Provenance is unsigned.

Sley 2.0.2

Choose a tag to compare

@GreyforgeLabs GreyforgeLabs released this 27 Sep 01:34
Immutable release. Only release title and notes can be modified.

Sley 2.0.2 is a point release of Sley 2.0 for the agents that write Sley programs. It adds sley-agent, an agent workbench that ships in the archive next to sley. Correct programs no longer take a slow, expensive write cycle, and they come with tests. The protocol, schema epoch, method table, SSMC1, SCB1 and validation semantics are unchanged, so a 2.0.1 client talks to a 2.0.2 endpoint the same way.

Install

Linux x86_64, as static (musl) binaries.

curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.2/sley-2.0.2-linux-x86_64.tar.gz
curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.2/SHA256SUMS
sha256sum -c SHA256SUMS
tar xzf sley-2.0.2-linux-x86_64.tar.gz
cd sley-2.0.2-linux-x86_64
./bin/sley version
./bin/sley-agent help           # the agent guide
python3 demo/run_demo.py        # prints "result": "PASS"

➡️ Release notes · Quickstart · Workbench contract · sleylang.org

The agent workbench: sley-agent

  • Read a program as compact AV1 listings under local names (view, find).
  • Write a change as an AF1 frame. AF1 is name-based JSON; the tool derives identities, ordinals and result types.
  • Try a frame in one call: it compiles, the kernel validates, and the candidate's tests run. Follow-ups are small: try --on c1 layers a fix or its tests on an earlier candidate.
  • Readable refusals. A refusal gives the kernel's symbol, a hint, and the exact frame position. Every problem in a frame arrives in one refusal, and each malformed shape names its fix.
  • Run functions and TestCases in process (call, test), with batches over a lower-once, load-once image.
  • Submit a Valid candidate (submit). An untested function change is refused unless you say so.

Also in 2.0.2

  • Faster execution and startup. A batch loads and verifies an image once. The binary keeps freed memory for reuse. The accepted head loads with one decode per object.
  • Allocator exception. sley-agent's allocator is the workspace's one unsafe exception. It is isolated in the binary target by ADR-0052, and a new source-scan gate runs in make quick.
  • Fixes. Native-commit recovery (#13), named type expansion (#14) and VM liveness (#15).
  • Packaging. The archive has seventeen members. It is built reproducibly and was reproduced on a second host.

Not a GA claim: ga_claimed stays false.

Sley 2.0.1

Choose a tag to compare

@GreyforgeLabs GreyforgeLabs released this 25 Sep 18:35

Sley 2.0.1 is a patch release of Sley 2.0. It fixes defects found after launch, several of them by our first outside contributor. It also tightens the release. The protocol version, schema epoch and method table are unchanged, so a 2.0.0 client talks to a 2.0.1 endpoint the same way.

Install

Linux x86_64, as a static (musl) binary.

curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.1/sley-2.0.1-linux-x86_64.tar.gz
curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.1/SHA256SUMS
sha256sum -c SHA256SUMS
tar xzf sley-2.0.1-linux-x86_64.tar.gz
cd sley-2.0.1-linux-x86_64
./bin/sley version
python3 demo/run_demo.py        # works from any directory; prints "result": "PASS"

➡️ Release notes · Quickstart · sleylang.org

Fixes contributed by Fred Nix

Thank you, @nixfred:

  • VM: checked division, remainder and negation never abort the host on an operand outside its declared width (#7).
  • Exchange: two entries for one branch name are refused before any write, instead of leaving a stuck clone (#8).
  • CLI: a non-Unicode argument is CLI_USAGE_INVALID (exit 2) instead of a panic. An oversize non-UTF-8 JSON line ends the input (#9).
  • Transactions: the native-test approval records the accepted parent root (#10). New native-test commits get different approval, transaction and receipt ids. Approvals written by 2.0.0 stay readable.

Other changes

  • SMP1 canonical frames. Fuzzing found that a hello frame with nonzero bounds was accepted and silently normalized. It is now refused (PROTOCOL_FRAME_INVALID), and so is a stream chunk event that carries bounds. The independent Python oracle had the same gap and is fixed too.
  • VM input hardening. Caller-supplied package inputs must be canonical for their declared type. An out-of-width integer, or a nested value whose type differs from its container's element type, is refused before execution (VM_EXEC_INPUT_NOT_CANONICAL).
  • License texts. The archive now ships THIRD_PARTY_LICENSES. It covers every locked crate plus the Rust standard library and musl libc linked into the static binary.
  • Robustness and gates:
    • The demo runs from any directory and cleans up after itself.
    • The build fetches every locked crate first.
    • The golden test vectors are checksum-checked.
  • Documentation:
    • The docs match the shipped behavior: exit codes, the demo's scope, and which gates run from a fresh clone.
    • Internal maintainer notes are removed.
    • Spec errata record each fix.

Release artifact

File sley-2.0.1-linux-x86_64.tar.gz
SHA-256 34b3b56957a9ddf9a4edc35c2a961c89928d8e78dc74c76b23f1f5378e975e44
Size 2,559,049 bytes: 16 members plus MANIFEST.json, which lists them
Target x86_64-unknown-linux-musl, Rust 1.93.0
Reproducibility Two clean builds, compared member by member, plus an independent rebuild on a second host, all produced the same digest (MULTI_HOST_REPRODUCIBLE)

Built from c748dda, the v2.0.1 tag. To reproduce it: check out v2.0.1, run cargo fetch --locked, then run python3 scripts/build_release_candidate.py --timeout-seconds 900 --require-clean. You need Rust 1.93.0 with the musl target, Python 3 and uv. The build's records (both hosts' attestations, SBOMs, provenance) are in the records-only commits after the tag on main.

Known limits

This is a release, not a GA claim. Every limit in the 2.0.0 known limits still applies: self-hosting is the 2.1 goal, the succession benchmark has no results yet, the E7 opcodes are excluded, and provenance is unsigned.

🌐 sleylang.org · 𝕏 @SleyLanguage · 🔥 Greyforge Labs

Licensed under the Apache License 2.0.

Sley 2.0.0

Choose a tag to compare

@GreyforgeLabs GreyforgeLabs released this 25 Sep 03:55

Sley 2.0 is the first public release of Sley 2, a machine-native programming system for AI agents. Programs aren't source files: they're typed, immutable semantic graphs that agents query through bounded requests and change by proposing typed mutations, which a deterministic kernel validates before anything is committed.

Machines don't write source. They change verified program state.

Install

Linux x86_64. The binary is static (musl) with no runtime dependencies.

curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.0/sley-2.0.0-linux-x86_64.tar.gz
curl -LO https://github.com/sley-lang/sley/releases/download/v2.0.0/SHA256SUMS
sha256sum -c SHA256SUMS
tar xzf sley-2.0.0-linux-x86_64.tar.gz
cd sley-2.0.0-linux-x86_64
./bin/sley version
python3 demo/run_demo.py        # demo: import, query, execute, branch, export, clone; prints "result": "PASS"

Or build from source: git clone https://github.com/sley-lang/sley.git && cd sley && cargo build --release -p sley-cli

➡️ Quickstart · Concepts · Documentation · sleylang.org

What's in 2.0

  • SSMC1, SCB1, and SMP1:
    • SSMC1 is the canonical program form: 18 entity kinds, types, a control-flow graph, effects, contracts, and tests.
    • SCB1 is the strict canonical encoding, with BLAKE3 and domain-separated hashes. An independent Python oracle produces byte-identical output.
    • SMP1 is the machine protocol, with a JSON-lines bridge.
  • A deterministic kernel covering types, control flow, effects, and contracts. Candidates are validated in 14 phases.
  • Atomic commits with receipts. After a crash you get either the old state or the complete new state.
  • A content-addressed repository:
    • branches and semantic compare
    • deterministic merge, with explicit conflict objects
    • exchange and clone
    • garbage collection
  • Bounded, root-backed queries and context capsules, with no silent truncation.
  • A deterministic VM with fuel, output, and cancellation limits, plus stored execution reports.
  • Protected policy roots, capability tokens, and bounded adapters. There is no arbitrary shell.
  • sley, a thin machine-oriented CLI:
    • version, hello, methods
    • frame decode|encode
    • serve --repository <dir> [--json]

Release artifact

File sley-2.0.0-linux-x86_64.tar.gz
SHA-256 21e072e2e749d8dce4f9379645bb34651050940b671acb482f8c3ea465148696
Size 2,513,160 bytes: 15 members plus MANIFEST.json, which lists them
Target x86_64-unknown-linux-musl, Rust 1.93.0
Reproducibility Two clean builds, compared member by member, plus an independent rebuild on a second host, all produced the same digest (MULTI_HOST_REPRODUCIBLE)
Inside bin/sley, the demo, conformance corpora, MANIFEST.json, SBOM.json, LICENSES.json, LICENSE, NOTICE

Built from commit 1fea02f (the v2.0.0 tag, the repository's root). MANIFEST.json inside the archive names it.

Reproduce it: check out v2.0.0 and run python3 scripts/build_release_candidate.py --timeout-seconds 900 --require-clean. You need Rust 1.93.0 with the x86_64-unknown-linux-musl target, Python 3, and uv. The result is byte-identical to the published archive. The release records for this build are in the records-only commits on main right after the tag: both hosts' attestations, the reproducibility report, the CycloneDX and SPDX SBOMs, and the provenance statement. Run make release-candidate-smoke from main to check them. The records at the tag itself describe an earlier, pre-public build of the same inputs.

Known limits

This is a release, not a GA claim. The release notes list every unmet acceptance criterion. In short:

  • Self-hosting (building the Sley toolchain with Sley) is the Sley 2.1 goal.
  • The succession benchmark (agents working in Sley vs. raw source) is in progress, so no results are claimed yet.
  • The EFFECT/CAP (E7) opcodes are excluded; programs that need them get a deterministic refusal.
  • Provenance is recorded but unsigned.
  • The end-to-end demo covers import, query, execution, reports, branches, export/clone, and GC. Candidate construction, commit, test selection, and merge are implemented in the kernel, but the public candidate builder isn't in the demo yet (the demo says so in its explicit_gap field).

Links

🌐 sleylang.org · 𝕏 @SleyLanguage · 🔥 Greyforge Labs (@GreyforgeLabs) · 🏛️ Sley 1.x: GreyforgeLabs/sley-legacy

Licensed under the Apache License 2.0.