summaryrefslogtreecommitdiff
path: root/internal/lock
AgeCommit message (Collapse)Author
2026-08-07Add per-app flock locking around deploy, config change, rollback, new-appClaude
Nothing previously serialized these against each other, so concurrent invocations for the same app (a manual config change racing an in-flight deploy, a double git push, a rollback mid-deploy) could interleave snapshot/apply/restart/rollback sequences against the same dataset and jail. The lock file lives under a new LocksDir, outside any per-app ZFS dataset, since those datasets get rolled back on a failed health check or a manual rollback.