- Notifications
You must be signed in to change notification settings - Fork 3
Home
Scott Shwarts edited this page Aug 31, 2026
·
12 revisions
Pragmatic, task-oriented notes on each release: what changed, why you'd care, and how to use it. This is the friendly companion to the CHANGELOG — the CHANGELOG is the terse authoritative record (every change + its upgrade impact); these pages are the "here's the feature, here's how you'd actually use it" walkthrough.
If you're deciding whether a release matters to you, start here. If you need the exact list of what changed, read the CHANGELOG.
Newest first. Each page covers the problem a release solves, the few things you can now do, a copy-paste example, and the gotchas.
- 0.40.1 —
|fallback:works wherever you put it, and the reference is current again — putting|fallback:after another filter suppressed 0.40.0's raise without supplying the fallback value; fixed, along within's left-hand side and the empty-value predicate. Also: the language reference shipped in the package had been stale since July and is regenerated — if you wrote anot inde-duplication check against it, re-read that section. - 0.40.0 — A condition that can't read a field now says so — an unresolved reference inside an
ifused to evaluate as false, so "the field is missing" and "the field says no" were the same answer; it now raises. Note the direction:notand!=conditions used to run their branch on an unreadable field. BREAKING only where a field is genuinely absent at runtime. - 0.39.4 — Assigning a list of records no longer breaks it —
$set ITEMS = ${records}used to shred a list of objects into text fragments, so a laterforeachcouldn't read any field; objects were mangled the same way. BREAKING only for bare numeric# Vars:lists, which now hold numbers instead of text. - 0.39.3 — "Couldn't tell" no longer means "no" — a store outage stops reading as a negative answer:
skillfile deletefails closed (and now detects the$ execute_skill name="…"reference form it used to miss), and composition / lint / promote report "store unreachable" instead of "not found" / "typo" / "no valid signature". - 0.39.2 — A silently truncated argument, fixed — a
$dispatch value containing a double-quote (or unquoted whitespace) no longer silently truncates the argument; kwargs are parsed before substitution. - 0.39.1 — HTTP MCP connectors recover from a bad moment — a transient network blip during a connector's handshake no longer wedges it until a runtime restart; it recovers on the next call.
- 0.39.0 —
# OnError:is gone (and it never worked) — the inert error-handler header is removed; a skill carrying it now fails to compile with a pointer toelse:/(fallback:). BREAKING only if you used it. - 0.38.0 — Line-slicing and field-projection filters —
tail/head/linesto slice a log without a shell binary;pluckto project a field from a list of records for clean dedup. - 0.37.0 — Bounding external work: the right lever — per-leg
timeout=+(fallback:)for a partial-tolerant gather, vs. the whole-run# Deadline:cap. - 0.36.0 — Autonomous-fire failure supervision — a cron/event run fails; the runtime pushes it to a handler skill instead of leaving it in a trace nobody reads.
- 0.35.0 — Deadlines & cancellation — bound a whole run in wall-clock time; real cancellation, not race-and-abandon.
- 0.34.0 — REST-backed connectors + secret hardening — a plain REST API is a first-class connector (no MCP server needed); shell ops no longer leak secrets into child processes.
Deeper how-tos for individual capabilities, independent of the release they shipped in.
- Tagging skills (
# Tags:) — organize and find skills; group a big skill menu into families.
- Language reference — the canonical spec (syntax, ops, semantics):
docs/language-reference.md - Adopter playbook — wiring substrates, security boundaries, running as a service:
docs/adopter-playbook.md help({topic})— the language surface, reachable from your agent over MCP (ops,frontmatter,connectors,lint-codes,error-handling).