RUDPClient/openspec/changes/optimize-high-frequency-sync/specs/network-session-lifecycle/spec.md

1.2 KiB

MODIFIED Requirements

Requirement: Heartbeat is limited to liveness, RTT, and time sync

The shared session lifecycle SHALL treat heartbeat traffic as infrastructure input for liveness detection and round-trip-time measurement only. Clock-synchronization samples MUST be forwarded to a separate sync-strategy component rather than being owned by SessionManager, and heartbeat processing MUST NOT itself own login success, login failure, or reconnect policy decisions.

Scenario: Heartbeat updates liveness and RTT while forwarding clock samples

  • WHEN a heartbeat response is received for an active session
  • THEN the session manager updates last-seen or timeout bookkeeping and RTT data
  • THEN any server-tick sample is forwarded to the clock-sync strategy without making heartbeat the owner of login state

Scenario: Missing heartbeat triggers timeout state

  • WHEN the configured heartbeat timeout elapses without a required heartbeat or other liveness signal
  • THEN the session lifecycle transitions the session into a timed-out state
  • THEN reconnect handling is delegated to the lifecycle reconnect policy rather than hidden inside the heartbeat handler itself