This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
Summary
AI summaryFixed two bug behaviors: empty/whitespace strings in foreach now iterate zero times, and fallback rescues undefined references regardless of filter position.
Full changelog
Upgrade impact: none (additive). Two cases that previously errored now succeed; nothing that already worked changes behavior.
Both fixes come from Perry dogfooding a list-driven enter-project skill (thread 9ed7554b):
foreachover an empty/whitespace-only string input now iterates zero times (was: one iteration with an empty element). PassingRULE_IDS=""into a skill and iterating it used to run a single pass withRID="", which then blew up downstream (e.g.amp_get_memory("")). An empty string is "no items", so it now matches[]and an absent ref — both already yielded zero iterations. A JSON-array string and a non-empty scalar are unaffected (still parsed / still wrapped to one iteration).- A
|fallbacknow rescues an unresolved reference regardless of its position in the filter chain. Previously only a lone|fallback, or a|fallbackplaced first, rescued an undefined base; any transforming filter ahead of it (${x|trim|fallback:"d"},${x|length|fallback:"0"}) threwUnresolved variable referencebefore the fallback could fire. Now an undefined base propagates lazily past intervening filters to the fallback — matching Jinja'sundefined|filter|defaultcontract, so a chain containing|fallbacknever explodes on a missing ref. Scoped toundefinedonly: a value that resolves — including a whitespace string like" "— still flows through every filter unchanged (${WS|length|fallback:"0"}withWS=" "is still"2", not"0"), so no existing behavior shifts. A chain with no|fallbackstill throws on an unresolved ref exactly as before.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Skillscript
All releases →Related context
Related tools
Earlier breaking changes
- v0.35.0 Editing `# Deadline:` on an approved skill drops it to Draft (signature invalidates).
Beta — feedback welcome: [email protected]