Task Description
taskctl status <issue> always shows Pulse PID: none even when Pulse is actively running. This makes it impossible to know if Pulse is healthy without checking the lock file separately.
Root Cause
startPulse writes a lock file with process.pid but never updates job.pulse_pid in the database. The status command reads job.pulse_pid from the DB, which is always null.
Fix
After writeLockFile in startPulse's startJob() function, also call:
await Store.updateJob(projectId, jobId, { pulse_pid: process.pid })
Quality Gates (Non-Negotiable)
Acceptance Criteria
taskctl status shows the correct Pulse PID when Pulse is running
taskctl status shows Pulse PID: none only when Pulse is not running
- Unit test verifies job.pulse_pid is updated on startPulse