Releases: sley-lang/sley
Release list
Sley 2.0.3
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 SHA256SUMSis 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.pyThe 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
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 c1layers 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 oneunsafeexception. It is isolated in the binary target by ADR-0052, and a new source-scan gate runs inmake 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
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
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,methodsframe decode|encodeserve --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_gapfield).
Links
🌐 sleylang.org · 𝕏 @SleyLanguage · 🔥 Greyforge Labs (@GreyforgeLabs) · 🏛️ Sley 1.x: GreyforgeLabs/sley-legacy
Licensed under the Apache License 2.0.