Feb 28, 11-12 PM (14)
Feb 28, 12-1 PM (8)
Feb 28, 1-2 PM (1)
Feb 28, 2-3 PM (19)
Feb 28, 3-4 PM (12)
Feb 28, 4-5 PM (9)
Feb 28, 5-6 PM (5)
Feb 28, 6-7 PM (3)
Feb 28, 7-8 PM (20)
Feb 28, 8-9 PM (9)
Feb 28, 9-10 PM (101)
Feb 28, 10-11 PM (37)
Feb 28, 11-12 AM (27)
Mar 01, 12-1 AM (10)
Mar 01, 1-2 AM (2)
Mar 01, 2-3 AM (8)
Mar 01, 3-4 AM (10)
Mar 01, 4-5 AM (0)
Mar 01, 5-6 AM (1)
Mar 01, 6-7 AM (0)
Mar 01, 7-8 AM (0)
Mar 01, 8-9 AM (3)
Mar 01, 9-10 AM (0)
Mar 01, 10-11 AM (7)
Mar 01, 11-12 PM (3)
Mar 01, 12-1 PM (5)
Mar 01, 1-2 PM (2)
Mar 01, 2-3 PM (13)
Mar 01, 3-4 PM (14)
Mar 01, 4-5 PM (12)
Mar 01, 5-6 PM (6)
Mar 01, 6-7 PM (13)
Mar 01, 7-8 PM (20)
Mar 01, 8-9 PM (13)
Mar 01, 9-10 PM (7)
Mar 01, 10-11 PM (34)
Mar 01, 11-12 AM (27)
Mar 02, 12-1 AM (22)
Mar 02, 1-2 AM (13)
Mar 02, 2-3 AM (11)
Mar 02, 3-4 AM (11)
Mar 02, 4-5 AM (6)
Mar 02, 5-6 AM (7)
Mar 02, 6-7 AM (11)
Mar 02, 7-8 AM (29)
Mar 02, 8-9 AM (33)
Mar 02, 9-10 AM (48)
Mar 02, 10-11 AM (33)
Mar 02, 11-12 PM (42)
Mar 02, 12-1 PM (81)
Mar 02, 1-2 PM (60)
Mar 02, 2-3 PM (58)
Mar 02, 3-4 PM (37)
Mar 02, 4-5 PM (30)
Mar 02, 5-6 PM (90)
Mar 02, 6-7 PM (48)
Mar 02, 7-8 PM (29)
Mar 02, 8-9 PM (13)
Mar 02, 9-10 PM (24)
Mar 02, 10-11 PM (40)
Mar 02, 11-12 AM (42)
Mar 03, 12-1 AM (7)
Mar 03, 1-2 AM (35)
Mar 03, 2-3 AM (22)
Mar 03, 3-4 AM (12)
Mar 03, 4-5 AM (6)
Mar 03, 5-6 AM (17)
Mar 03, 6-7 AM (5)
Mar 03, 7-8 AM (26)
Mar 03, 8-9 AM (32)
Mar 03, 9-10 AM (35)
Mar 03, 10-11 AM (38)
Mar 03, 11-12 PM (17)
Mar 03, 12-1 PM (53)
Mar 03, 1-2 PM (57)
Mar 03, 2-3 PM (62)
Mar 03, 3-4 PM (39)
Mar 03, 4-5 PM (39)
Mar 03, 5-6 PM (12)
Mar 03, 6-7 PM (16)
Mar 03, 7-8 PM (20)
Mar 03, 8-9 PM (4)
Mar 03, 9-10 PM (31)
Mar 03, 10-11 PM (44)
Mar 03, 11-12 AM (20)
Mar 04, 12-1 AM (8)
Mar 04, 1-2 AM (19)
Mar 04, 2-3 AM (12)
Mar 04, 3-4 AM (7)
Mar 04, 4-5 AM (7)
Mar 04, 5-6 AM (6)
Mar 04, 6-7 AM (7)
Mar 04, 7-8 AM (48)
Mar 04, 8-9 AM (54)
Mar 04, 9-10 AM (33)
Mar 04, 10-11 AM (97)
Mar 04, 11-12 PM (40)
Mar 04, 12-1 PM (47)
Mar 04, 1-2 PM (66)
Mar 04, 2-3 PM (81)
Mar 04, 3-4 PM (102)
Mar 04, 4-5 PM (18)
Mar 04, 5-6 PM (62)
Mar 04, 6-7 PM (60)
Mar 04, 7-8 PM (39)
Mar 04, 8-9 PM (56)
Mar 04, 9-10 PM (15)
Mar 04, 10-11 PM (26)
Mar 04, 11-12 AM (26)
Mar 05, 12-1 AM (15)
Mar 05, 1-2 AM (18)
Mar 05, 2-3 AM (17)
Mar 05, 3-4 AM (16)
Mar 05, 4-5 AM (3)
Mar 05, 5-6 AM (9)
Mar 05, 6-7 AM (27)
Mar 05, 7-8 AM (20)
Mar 05, 8-9 AM (31)
Mar 05, 9-10 AM (72)
Mar 05, 10-11 AM (43)
Mar 05, 11-12 PM (53)
Mar 05, 12-1 PM (65)
Mar 05, 1-2 PM (51)
Mar 05, 2-3 PM (68)
Mar 05, 3-4 PM (64)
Mar 05, 4-5 PM (55)
Mar 05, 5-6 PM (56)
Mar 05, 6-7 PM (66)
Mar 05, 7-8 PM (20)
Mar 05, 8-9 PM (21)
Mar 05, 9-10 PM (8)
Mar 05, 10-11 PM (22)
Mar 05, 11-12 AM (21)
Mar 06, 12-1 AM (11)
Mar 06, 1-2 AM (18)
Mar 06, 2-3 AM (8)
Mar 06, 3-4 AM (0)
Mar 06, 4-5 AM (11)
Mar 06, 5-6 AM (5)
Mar 06, 6-7 AM (16)
Mar 06, 7-8 AM (63)
Mar 06, 8-9 AM (35)
Mar 06, 9-10 AM (46)
Mar 06, 10-11 AM (48)
Mar 06, 11-12 PM (45)
Mar 06, 12-1 PM (48)
Mar 06, 1-2 PM (89)
Mar 06, 2-3 PM (93)
Mar 06, 3-4 PM (37)
Mar 06, 4-5 PM (40)
Mar 06, 5-6 PM (20)
Mar 06, 6-7 PM (16)
Mar 06, 7-8 PM (22)
Mar 06, 8-9 PM (15)
Mar 06, 9-10 PM (13)
Mar 06, 10-11 PM (28)
Mar 06, 11-12 AM (22)
Mar 07, 12-1 AM (16)
Mar 07, 1-2 AM (1)
Mar 07, 2-3 AM (6)
Mar 07, 3-4 AM (0)
Mar 07, 4-5 AM (1)
Mar 07, 5-6 AM (5)
Mar 07, 6-7 AM (7)
Mar 07, 7-8 AM (7)
Mar 07, 8-9 AM (4)
Mar 07, 9-10 AM (1)
Mar 07, 10-11 AM (0)
Mar 07, 11-12 PM (1)
4,505 commits this week Feb 28, 2026 - Mar 07, 2026
Add property tests for timer behaviour in RequestedSnapshot and SeenSnapshot states
  Two property-based tests added to HeadLogicSnapshotSpec to lock down correct
  timer behaviour introduced in earlier commits:

  - prop_timerIsNoopInRequestedSnapshotState: for any arbitrary
    RequestedSnapshot{lastSeen, requested} state the timer must emit no ReqSn.
    Re-broadcasting in this state uses stale state (currentDepositTxId is not set
    until the leader receives its own echo) and would race with the original ReqSn,
    causing peers to sign different snapshot contents.

  - prop_timerSeenSnapshotRebroadcastMatchesInFlight: for any in-flight
    SeenSnapshot the timer re-broadcast must use the in-flight snapshot's version
    and number, not the speculatively-computed nextSn.  Ensures all parties sign
    the same content after a re-broadcast.

  Also includes the regression unit test added in HeadLogicSpec ("timer does not
  re-broadcast ReqSn without deposit while waiting for echo") and the onOpenTimer
  nextSn fix (max confSn latestSeenSnapshotNumber + 1).

Signed-off-by: Sasha Bogicevic <[email protected]>