Why
Some workflows need to report intermediate results, decisions, warnings, or produced values while they run. Today the supported step logger writes step-log events to the run log, but those events are ignored by the live tree, headless progress output, summaries, and /workflow status. From the user's perspective, the output is lost unless the workflow writes a separate file.
What
Make messages written through a step's logger.info, logger.warn, and logger.error APIs visible during execution and retrievable afterward.
Description
The event log should remain the source of truth. Rendering should subscribe to persisted step-log events and present them on an output surface appropriate to the current mode. Interactive mode may use a dedicated log area or transcript entries rather than adding arbitrary text to the compact progress tree. Headless json and print modes must write human-facing log lines to stderr because stdout is reserved for their machine-readable/answer contracts.
Direct console.log calls should not become the workflow logging API: they cannot be attributed reliably and can corrupt stdout protocols. The documented path should be the injected structured logger, including its level, step path, message, and optional data.
Acceptance criteria
Why
Some workflows need to report intermediate results, decisions, warnings, or produced values while they run. Today the supported step logger writes
step-logevents to the run log, but those events are ignored by the live tree, headless progress output, summaries, and/workflow status. From the user's perspective, the output is lost unless the workflow writes a separate file.What
Make messages written through a step's
logger.info,logger.warn, andlogger.errorAPIs visible during execution and retrievable afterward.Description
The event log should remain the source of truth. Rendering should subscribe to persisted
step-logevents and present them on an output surface appropriate to the current mode. Interactive mode may use a dedicated log area or transcript entries rather than adding arbitrary text to the compact progress tree. Headlessjsonandprintmodes must write human-facing log lines to stderr because stdout is reserved for their machine-readable/answer contracts.Direct
console.logcalls should not become the workflow logging API: they cannot be attributed reliably and can corrupt stdout protocols. The documented path should be the injected structured logger, including its level, step path, message, and optional data.Acceptance criteria
logger.info,logger.warn, andlogger.errormessages become visible during a run.jsonandprintmodes emit step logs to stderr only; stdout remains unchanged./workflow statusor another documented run-inspection command.