The suspend-payload key the executor backstop stamps on a task it parked
because the deployment was fenced mid-dispatch. Namespaced so it cannot
collide with a tool's own suspend payload, and read back by
BackgroundTaskHost.#resumeFenceSuspendedTasks — which is what makes the
parking reversible rather than a quieter kind of loss.
PUBLISHED via ./background-tasks because it is the only way a host can tell
a fence-parked row from a tool-suspended one: listTasks({ status: 'suspended' }) returns both, and the marker lives in the suspend payload
where no filter can express it. The drain inventory imports this same
definition directly, so a rename cannot silently leave a hard-coded census
predicate behind.
The suspend-payload key the executor backstop stamps on a task it parked because the deployment was fenced mid-dispatch. Namespaced so it cannot collide with a tool's own suspend payload, and read back by
BackgroundTaskHost.#resumeFenceSuspendedTasks— which is what makes the parking reversible rather than a quieter kind of loss.PUBLISHED via
./background-tasksbecause it is the only way a host can tell a fence-parked row from a tool-suspended one:listTasks({ status: 'suspended' })returns both, and the marker lives in the suspend payload where no filter can express it. The drain inventory imports this same definition directly, so a rename cannot silently leave a hard-coded census predicate behind.