GitHub release asset id of the .so.
The hash the operator was shown in the confirmation dialog. Both gates
compare against this: the download before any rent is spent, and the
buffer read back from chain before Upgrade (§5.3).
<program>-<network>-v<ver>+<sha> — for the audit record and the page.
Dashboard user, for the terminal audit records (§6.2).
What the server action hands the workflow: the operator's intent, validated. No bytes and no addresses the worker can derive itself — the artifact is fetched by the activity from
assetId, and the program id comes from the register.