You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Remove issue number refs (#1717, #1651) from comments per CLAUDE.md
- Trim multi-line JSDoc on extractNodeOutputEnvVars to 2-line comment
- Remove regex comment that explained WHAT not WHY
- Trim escapedForBash trailing comment
- Add collision guard warn log when two node IDs map to the same env var
- Spread config.envVars into until_bash subprocess for parity with executeBashNode
- Update variables.md: replace stale "auto shell-quoted" description with env-var mechanism
- Update script-nodes.md: fix stale contrast with bash node auto-quoting
- Add CHANGELOG entry for #1717 fix
- Add integration tests: executeBashNode and until_bash env var wiring via spy
- Add empty-string output unit test for extractNodeOutputEnvVars
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
12
12
- MCP server support for Codex workflow nodes via the shared `loadMcpConfig` module — pass `mcp: <path>` on a Codex node and the config is translated to Codex's `mcp_servers` overrides at runtime. MCP client errors are surfaced to the workflow author as `system` chunks when MCP is explicitly configured for the node (#1459).
13
13
14
+
### Fixed
15
+
16
+
-**Bash node large-output corruption**: whole-output `$nodeId.output` refs in `bash:` and `until_bash` loop conditions now travel via environment variables instead of inline shell-quoting. Inputs of any size (including 40 KB+ LLM outputs) are handled correctly. Field-access refs (`$nodeId.output.field`) are unaffected. Closes #1717.
Copy file name to clipboardExpand all lines: packages/docs-web/src/content/docs/reference/variables.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -67,7 +67,7 @@ In DAG workflows, nodes can reference the output of any completed upstream node.
67
67
68
68
### Shell Quoting in `bash:` vs `script:`
69
69
70
-
`$nodeId.output`values are **auto shell-quoted** (single-quoted, with embedded `'` escaped) when substituted into `bash:` scripts, so the value is always safe to embed in a shell command. They are **not** shell-quoted when substituted into `script:` bodies — the raw value is embedded as-is. For script nodes, treat substituted values as untrusted input and parse them with language features (e.g. `JSON.parse`), not by interpolating into shell syntax.
70
+
In `bash:` nodes, `$nodeId.output`(whole-output) is passed into the script via a dedicated environment variable (`_ARCHON_NODE_<ID>_OUTPUT`) and referenced as `"${_ARCHON_NODE_<ID>_OUTPUT}"`. This avoids size limits that inline argument quoting imposes on large LLM outputs. Field-access refs (`$nodeId.output.field`) are still substituted inline as shell-quoted strings. Values are **not** shell-quoted when substituted into `script:` bodies — the raw value is embedded as-is. For script nodes, treat substituted values as untrusted input and parse them with language features (e.g. `JSON.parse`), not by interpolating into shell syntax.
0 commit comments