The resume guide says to open a fresh session after a transport drop and send ResumePayload(afterMessageId:), as shown in docs/guides/resume.md:10 and README.md:101. The implementation of ARCPRuntime.handleResume replays eventLog entries for info.sessionId at Sources/ARCP/Runtime/ARCPRuntime.swift:474, which is the newly accepted session id, not the previous session whose last message id the client tracked. A reconnect that follows the docs will not find the old message id under the new session and will either replay the wrong stream or throw DATA_LOSS. The documented checkpointId and includeOpenStreams fields are also accepted by ResumePayload at Sources/ARCP/Messages/Control.swift:101, but the runtime rejects checkpoint resume and ignores open-stream re-emission.
Fix prompt: Decide whether the SDK supports cross-session resume in this release. If it does, add an explicit resume token or original session identifier to the handshake or resume flow, authorize it against the authenticated principal, and replay from the original session while preserving live delivery semantics. If it does not, update the README, resume guide, conformance docs, and samples to state that only same-session event-log replay is implemented. Add an integration test that uses two sessions and proves the documented reconnect behavior either works or is explicitly rejected with accurate docs.
The resume guide says to open a fresh session after a transport drop and send
ResumePayload(afterMessageId:), as shown indocs/guides/resume.md:10andREADME.md:101. The implementation ofARCPRuntime.handleResumereplayseventLogentries forinfo.sessionIdatSources/ARCP/Runtime/ARCPRuntime.swift:474, which is the newly accepted session id, not the previous session whose last message id the client tracked. A reconnect that follows the docs will not find the old message id under the new session and will either replay the wrong stream or throwDATA_LOSS. The documentedcheckpointIdandincludeOpenStreamsfields are also accepted byResumePayloadatSources/ARCP/Messages/Control.swift:101, but the runtime rejects checkpoint resume and ignores open-stream re-emission.Fix prompt: Decide whether the SDK supports cross-session resume in this release. If it does, add an explicit resume token or original session identifier to the handshake or resume flow, authorize it against the authenticated principal, and replay from the original session while preserving live delivery semantics. If it does not, update the README, resume guide, conformance docs, and samples to state that only same-session event-log replay is implemented. Add an integration test that uses two sessions and proves the documented reconnect behavior either works or is explicitly rejected with accurate docs.