CluPilotCloud/app/Provisioning
nexxo f43ade79b0 fix(engine-b): address Codex round 6 (crash-window idempotency)
- Clone: recover via vmExists() when the task ref was lost, instead of
  re-cloning the reserved vmid (which Proxmox rejects).
- Deploy: persist the DB password ENCRYPTED before compose up and reuse it on
  retry, so a crash can't regenerate a mismatching credential.
- Complete: gate credential delivery on a credentials_sent breadcrumb so a
  retry after a crash doesn't re-send the email.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 12:23:28 +02:00
..
Contracts fix(engine): address Codex round 2 (poll budget, host error state, wg race) 2026-07-25 10:26:37 +02:00
Events feat(engine-b): live provisioning progress (admin console + customer dashboard) 2026-07-25 11:57:35 +02:00
Jobs fix(engine): record wg peer only after verified handshake; async host purge 2026-07-25 11:06:13 +02:00
Steps fix(engine-b): address Codex round 6 (crash-window idempotency) 2026-07-25 12:23:28 +02:00
PipelineRegistry.php feat(engine): orchestrator core (state machine + tick + lock) 2026-07-25 09:54:52 +02:00
RunRunner.php fix(engine): don't reset started_at on poll so step deadlines accumulate 2026-07-25 12:15:26 +02:00
StepResult.php fix(engine): address Codex round 2 (poll budget, host error state, wg race) 2026-07-25 10:26:37 +02:00