Migrating to v0.48.1

Compact foreground run outputSection anchor link

Piped sparkwing run output now contains a start record, up to 20 node completion records, up to five diagnostics, and one terminal record. A normal run emits at most 27 display records, each below 32 KiB. Build and setup diagnostics remain on stderr. Validation can fail before a run exists; such failures retain their nonzero exit and diagnostic without a terminal record. Child output stays in stored logs. This changes the default JSON display, including explicit SPARKWING_LOG_FORMAT=json on a terminal.

The terminal run_finish record keeps the run ID and actual status. Its attributes include node outcome counts, duration when available, up to five failed-node causes, omitted event/failure counts, and commands for status and logs. Display strings are at most 256 bytes and carry [truncated] when cut. Use the terminal status rather than inferring success from progress records. The process still exits nonzero for failed or cancelled runs.

Consumers that need every live event must request it:

sparkwing run checks --sw-verbose

For already-running or completed work, read the stored stream:

sparkwing runs logs --run RUN_ID --follow

SPARKWING_LOG_LEVEL=debug also selects the complete JSON stream for a pipeline binary invoked directly. Pretty terminal output and explicit quiet summaries retain their existing behavior. Detached launch acknowledgments and node-process transport are unchanged.