| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Introduce SetReceiveSchedule / QueryPeerReceiveSchedule, remove synthetic response-time seed, and align ping send/RX guards with server semantics. Includes unit tests and aether_uap_delivery_timing_bench (live delivery blocked on peer UAP query completion).
…et_next_read_delay. Server ping() alone stores rx_window as nextReadDelay; follow with set_next_read_delay(interval) so get_uap delta matches the promised ping interval. Harden TimePointOffsetByMs against duration::rep overflow that was clamping anchors to TimePoint::min. Co-authored-by: Cursor <cursoragent@cursor.com>
Prove via public QueryPeerReceiveSchedule that last_ping advances while Bob is alive, freezes after a hard-killed missed deadline, and advances again after the same Bob UID returns. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose last_online_time from inbound cloud responses and derive expected_ping_response_time as Tn + frozen p99_RTT/2 from the UAP schedule. Co-authored-by: Cursor <cursoragent@cursor.com>
Use max expected response across active ping servers, skip stopped or quarantined servers, keep last_online_time monotonic, and make the response hook internal to Client. Co-authored-by: Cursor <cursoragent@cursor.com>
| Back | FazBrowse Home | New Git URL |
Summary
Preserve the nominal UAP ping schedule across transport retries and expose peer receive timing without turning packet-loss recovery into schedule drift.
The client now keeps logical ping cycles anchored to the original nominal grid, extends receive windows for early sends, supports deterministic peer deadline state, and provides runtime control over how many retries are budgeted before the advertised deadline.
Retry scheduling
ReceiveSchedule::ping_retry_count is the number of additional retries whose time is reserved before the advertised deadline Tn.
Default: ping_retry_count = 0
Therefore the default path reserves only guard + R99/2 before Tn.
For N > 0:
After Tn, ping_retry_count is no longer a retry limit. The same logical ping continues recovery until a valid server response confirms it.
Phase preservation
Retries remain physical attempts of the same logical ping cycle. A late retry never establishes retry_time + interval as a new phase. After recovery the next deadline is the first future point on the original nominal grid.
Peer state
MissedDeadline represents a missed advertised deadline and is recoverable after later client activity — not a permanent failure.
Guard / RX window
Fault testing
Deterministic logical-cycle fault injection replaces timing-racy bind-next behavior:
FAULT_ARMED → FAULT_MATCHED → FAULT_DROPPED
Matching is by logical_cycle_id and physical_attempt_index, not wall-clock alone.
Validation
Unit
Deterministic first-request-loss (200 cases each)
Long phase characterization
ping_retry_count=0 runtime acceptance (15 harness-valid cases)
State semantics
Harness note: Alice Q2 in the focused retry_count=0 harness is flaky because of dest-cloud warm-up. This is harness/test infrastructure and did not expose a Bob production recovery failure.
Design notes
UAP ping scheduling design doc
Test plan
Made with Cursor