From 14bdddd7e9d960805f92782b0869f2eeb895ef1e Mon Sep 17 00:00:00 2001 From: Jeffrey Smith Date: Thu, 2 Apr 2026 23:52:28 +0000 Subject: [PATCH] Add v0.7.12 changelog entry Co-Authored-By: Claude Opus 4.6 (1M context) --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90980b6..75a5519 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to Armature are documented here. +## v0.7.12 — Concurrent Execution Primitive + +New `batch` sandbox module. Enables extensions to parallelize arbitrary +Starlark callables — including frozen library exports from `lib.require()`. + +**batch module (permission: `batch.exec`)** + +- `batch.exec(callables, timeout=10)` — runs up to 8 zero-arg callables concurrently, each in its own `starlark.Thread` with independent step budget. Returns `(results, errors)` tuple with ordered results. Per-branch timeout (1–30s, default 10). +- Nested `batch.exec()` calls are prohibited (prevents exponential goroutine growth). +- `lib.require()` not available inside branches — load libraries before the batch call. +- `print()` output from branches is discarded. + +**Internal** + +- New file: `sandbox/batch_module.go`. +- New permission constant: `ExtPermBatchExec`. +- Runner wiring: `buildModulesWithLibCtx` creates batch module when permission granted. +- Design doc: `docs/DESIGN-batch-exec.md`. +- 12 new tests (parallel ordering, partial failure, timeout, cancellation, cap enforcement, nesting prevention, frozen sharing, permission gating). + ## v0.7.11 — Query & HTTP Ergonomics Four new Starlark sandbox builtins. No new permissions, no schema changes.