Merge pull request #682 from fabro-sh/feat/raise-stdin-source-ceiling
Some checks are pending
Rust / Format (push) Waiting to run
Rust / Clippy (push) Waiting to run
Rust / Generated Docs (push) Waiting to run
Rust / Test (Linux) (push) Waiting to run
Rust / Test (macOS) (push) Waiting to run
TypeScript / Typecheck (push) Waiting to run
TypeScript / Test (push) Waiting to run
TypeScript / Build (push) Waiting to run

feat(workflow): raise the stdin_source ceiling to 30 MiB
This commit is contained in:
Bryan Helmkamp 2026-07-29 17:05:41 -04:00 • committed by GitHub
commit 81deda3c69
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 3 deletions

View file

@ -117,7 +117,7 @@ When a node has no explicit `shape` or `type`, the presence of `script` makes it
For `stdin_source`, strings are passed unchanged. Other JSON values use compact
JSON. Fabro does not add a newline. A missing source, or a value larger than
10 MiB, fails before the command starts.
30 MiB, fails before the command starts.
### Human

View file

@ -220,8 +220,10 @@ impl Handler for CommandHandler {
/// Ceiling on encoded stdin bytes. `stdin_source` values are runtime data —
/// often model-produced — so their size is not something a workflow author
/// reviewed; this bounds peak memory and remote uploads the same way
/// `MAX_FOR_EACH_ITEMS` bounds `for_each` fan-out.
const MAX_STDIN_BYTES: usize = 10 * 1024 * 1024;
/// `MAX_FOR_EACH_ITEMS` bounds `for_each` fan-out. Sized for wide fan-in:
/// a `context.parallel.results` batch from a large `for_each` round easily
/// carries tens of structured agent outputs.
const MAX_STDIN_BYTES: usize = 30 * 1024 * 1024;
fn validated_stdin_source(node: &Node) -> Result<Option<&str>, String> {
match node.context_key_attr("stdin_source") {