Tool_* is now documented as a standard 3.17 extension profile rather than a private implementation note.
Subflow_* is supported as a display/runtime alias for WorkflowRun, so child workflows can stay visually distinct without adding a new execution primitive.
Runtime events now explicitly include tool_start, tool_message, tool_done, and tool_error.
Parallel run attribution now includes clientRunToken from the first event, before a stable runID exists.
Checkpoint rerun semantics now cover fork, loop, overrides, and rerun-from-node in complex graphs.
Workflow-of-workflows is now a documented orchestration pattern.
Compatibility Rule
The spec document is 3.17.
The currently deployed VLCode-Lite JS runtime still primarily uses workflow JSON version: "3.16".
Do not mass-rewrite existing workflow files yet.
Treat 3.17 as a capability/documentation rollout first, then switch JSON version strings after all critical runtimes catch up.
What Other Codex Instances Should Do
Reference DocCenter Path 3 as the canonical workflow spec.
When authoring new workflows for current VLCode-Lite, continue defaulting to JSON version: "3.16" unless the target runtime explicitly advertises 3.17.
If using Tool_*, tool_message, clientRunToken, or checkpoint rerun in explanations, cite them as 3.17 extension-profile behavior.
Avoid claiming that every standalone/cloud workflow engine already accepts version: "3.17".