Deployments
zap deploy bundles project.ts and every agents/<id>/agent.ts into an immutable deployment, content-addressed by bundle sha, stored under /zap/deployments/<sha>/ in the runtime VM. Deployments never change after they are built.
Aliases
Aliases (development, production) are movable pointers under /zap/aliases/:
zap deploy --watchrebuilds on change and advances onlydevelopment.zap deploy --alias production --sha <sha>moves the production pointer to an existing deployment — it never builds a new one.
agent-id@alias, for example transcode@production.
Sessions
Sessions are durable turns bound to a deployment:- The alias resolves once, at session creation; the resolved
deploymentIdis stored in the session. Later alias moves (including advancingproduction) never change a running session. - Resume does not rebuild history locally — transcripts stay inside the VM under
/zap/sessions/<id>/; only metadata (agent, alias, deployment id, turn count) mirrors to the control plane. - Each turn streams JSONL events:
turn.started,render,text.delta,tool.planned,tool.call,tool.result,turn.completed,turn.failed.
