Skip to content

Executor

sarr-io edited this page Jun 15, 2026 · 11 revisions

Executor

Zinc advances work through package software.

The executor does not maintain a separate lifecycle table. It prepares a fragment, advances it by running package software, and stores the resulting fragment.

Flow

prepare(source, args) -> assembly_fragment
advance(assembly_fragment) -> assembly_fragment

If an advance step cannot move, it returns an error. It does not return a fake progress value.

Run loop

zn run loops until the assembly fragment contains final result bytes.

read shape
confirm shape
prepare request
run package software
store result
move head
repeat while more parts remain

Why this design exists

A small executor is easier to inspect than a progress table with many named steps.

Zinc does not need fake lifecycle words. It only needs to know whether the next package software call can move the work forward.

Design reason

Advance either moves the fragment or returns an error. Completion is detected from result bytes, not from a progress field.

Clone this wiki locally