The jobs guide says the runtime emits HEARTBEAT_LOST and transitions the job to failed when heartbeat acknowledgements stop arriving at docs/guides/jobs.md:168, and the conformance pages list heartbeats as an implemented durable-job surface at CONFORMANCE.md:20 and docs/conformance.md:14. The implementation only sends periodic job.heartbeat envelopes from JobManager.heartbeatLoop at Sources/ARCP/Runtime/JobManager.swift:542. ARCPRuntime.handle has no branch that accepts heartbeat ack envelopes, records the latest acknowledged heartbeat sequence, detects missed deadlines, or emits an ARCPError.heartbeatLost terminal failure. The current behavior therefore advertises heartbeat recovery semantics that are not enforced.
Fix prompt: Either implement heartbeat acknowledgement tracking or narrow the docs and conformance claims to say that the SDK only emits heartbeat telemetry. A full implementation should correlate ack envelopes to job.heartbeat sequence numbers, track missed acknowledgements per job, transition the job to failed with HEARTBEAT_LOST when the negotiated recovery policy requires it, and stop the heartbeat task after the terminal event. Add integration tests for acknowledged heartbeats, missed acknowledgements, and the advertised Capabilities.heartbeatRecovery behavior.
The jobs guide says the runtime emits
HEARTBEAT_LOSTand transitions the job tofailedwhen heartbeat acknowledgements stop arriving atdocs/guides/jobs.md:168, and the conformance pages list heartbeats as an implemented durable-job surface atCONFORMANCE.md:20anddocs/conformance.md:14. The implementation only sends periodicjob.heartbeatenvelopes fromJobManager.heartbeatLoopatSources/ARCP/Runtime/JobManager.swift:542.ARCPRuntime.handlehas no branch that accepts heartbeatackenvelopes, records the latest acknowledged heartbeat sequence, detects missed deadlines, or emits anARCPError.heartbeatLostterminal failure. The current behavior therefore advertises heartbeat recovery semantics that are not enforced.Fix prompt: Either implement heartbeat acknowledgement tracking or narrow the docs and conformance claims to say that the SDK only emits heartbeat telemetry. A full implementation should correlate
ackenvelopes tojob.heartbeatsequence numbers, track missed acknowledgements per job, transition the job to failed withHEARTBEAT_LOSTwhen the negotiated recovery policy requires it, and stop the heartbeat task after the terminal event. Add integration tests for acknowledged heartbeats, missed acknowledgements, and the advertisedCapabilities.heartbeatRecoverybehavior.