queued | Deployment created. | — |
secrets_resolved | Secret references looked up. | { secrets: [{name, scope, source}] } — never values |
vars_resolved | Variable references looked up. | { vars: [{name, scope, source, value}] } — values included |
registries_resolved | Private-registry credentials assembled. | { registries: [...] } |
service_refs_resolved | Every ${service.*} reference matched a sibling. | { refs: [{service, field}] } |
service_refs_unresolved | A ${service.*} reference couldn’t resolve; the deploy is failing. | { errors: [{ref, reason}] }, reason ∈ unknown / no_port / no_public_port |
build_start / build_end | Per buildable service — build started / finished (fresh or cached). | — |
deploy_start | Containers starting. | — |
service_ready | One service’s workload reported ready (per service, ahead of the component-wide healthy). | { service } |
cutover | A public service’s URL is live (once per public service). | — |
healthy | Every public service is ready. | — |
failed / cancelled | Terminal failure / cancellation. | — |
superseded | A newer deploy of the same slot replaced this one. | { supersededBy } |
sleeping / resuming / awake | A PR preview slept, started waking, finished waking. | — |
gc | Ephemeral TTL expired; torn down. | — |
notification_failed | A Slack / Discord / webhook channel rejected delivery. | { channel_id } |