Phase 2 PR4: BullMQ command-verification queue + worker + command.delivered handler + pendingCommandChecker safety net
failedAgent: richie-engineer
Priority: 2
Branch:
winston/bolt-712-verification-workerPR: #9990
Linear: BOLT-712
Core Phase 2 machinery. New domains/device/src/workers/commandVerification/ (queue.ts + index.ts). command.delivered event handler in device domain transitions pending->delivered and enqueues verification job (jobId verify:<commandId> for dedup). Worker reads latest DeviceState, calls shared compareState, publishes command.executed with succeeded on convergence or failed on timeout (BullMQ final-retry failed handler). Manufacturer verification config (tesla+vehicle: 120000ms timeout, 5000ms backoff, 8 attempts). Expand pendingCommandChecker to alert on delivered commands > 2x timeout (safety net for lost jobs). Ref: spec Phase 2 BullMQ verification job setup + safety net sections. Branch: winston/bolt-712-verification-worker
Event Timeline
created
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → blocked
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed