)]}'
{
  "commit": "f9e1190e3e29e0168454a94cb77e418ad47553a9",
  "tree": "364b50d140ad8b67e478c6dcd2634b5ffb241ce8",
  "parents": [
    "b62d9716bd16b2c3678b5f4bf8bf516490f1d509"
  ],
  "author": {
    "name": "Wu Sheng",
    "email": "wu.sheng@foxmail.com",
    "time": "Sat Sep 05 15:24:36 2026 +0800"
  },
  "committer": {
    "name": "Wu Sheng",
    "email": "wu.sheng@foxmail.com",
    "time": "Sat Sep 05 15:24:36 2026 +0800"
  },
  "message": "Serve a broken chain as a document, and render the document the same way every time\n\nThe format page always said verification is content: a gap in the chain\nor a failed digest is written into the document, and the rest holds what\ncould be folded. The page\u0027s loader used the strict fold and returned an\nerror instead. Session Flow gained a partial fold, which folds as far as\nthe chain holds and says in words what stopped it, and the page uses it:\na chain with round 2 missing is a document whose head is round 1, whose\nstate is incomplete, whose problems name round 2, and whose rounds list\nround 3 unverified. Anything that needs a whole chain still refuses it.\n\nA node\u0027s edges came out in the order two maps happened to be walked. They\nare ordered by relation id and then direction now, a self-loop appearing\nonce in each direction, and every scenario checks that two builds of the\nsame fold are the same bytes. An observed time floors to the millisecond\nas time.Time does, so a time before 1970 renders the same everywhere,\nwhile an elapsed time still divides toward zero. A preview keeps the\nlongest prefix of whole characters within 2,000 bytes instead of cutting\na character in two.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee7776032147f89f08d413232336e0cbee962bed",
      "old_mode": 33188,
      "old_path": "docs/en/changes/changes-0.2.0.md",
      "new_id": "3dfd208e37f14adc257fcaa85cc319c76c33e25e",
      "new_mode": 33188,
      "new_path": "docs/en/changes/changes-0.2.0.md"
    },
    {
      "type": "modify",
      "old_id": "2788aa6773c80f79abf1da84afae78e8c75b2055",
      "old_mode": 33188,
      "old_path": "docs/en/formats/asz-view.md",
      "new_id": "81f15a7f5a5aefa26a9eb24138436ccce6c41f1f",
      "new_mode": 33188,
      "new_path": "docs/en/formats/asz-view.md"
    },
    {
      "type": "modify",
      "old_id": "89de6555e58094fedc659f6a23090f1deafaa701",
      "old_mode": 33188,
      "old_path": "internal/scenario/expect/expect.go",
      "new_id": "fadd82b46c08900ecac1c8dd43c1c2b45ca61f65",
      "new_mode": 33188,
      "new_path": "internal/scenario/expect/expect.go"
    },
    {
      "type": "modify",
      "old_id": "0a9bb534a840ab6ed3f34d4cf3f1e0daba7059b7",
      "old_mode": 33188,
      "old_path": "internal/view/conversationview.go",
      "new_id": "26dccdcf6e03f8a78e07183ae2f1e781511d4023",
      "new_mode": 33188,
      "new_path": "internal/view/conversationview.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aed77f6ac556fa4d7d33b24a8e31df85a474e29d",
      "new_mode": 33188,
      "new_path": "internal/view/render_test.go"
    },
    {
      "type": "modify",
      "old_id": "2f79ff0ce5d46cf5816f07336208d71d28087d59",
      "old_mode": 33188,
      "old_path": "internal/view/step.go",
      "new_id": "ba6b6ffcf3999a0b34db37bd7f0e9d9b5e6e5258",
      "new_mode": 33188,
      "new_path": "internal/view/step.go"
    },
    {
      "type": "modify",
      "old_id": "5a74b281201b250613fec79d168c16cdb675242b",
      "old_mode": 33188,
      "old_path": "internal/view/view.go",
      "new_id": "604ab088ada19b27d4970d98bec9fab62bd355dd",
      "new_mode": 33188,
      "new_path": "internal/view/view.go"
    },
    {
      "type": "modify",
      "old_id": "73d2e236431bf44a6b05eedcfd1d1f9bcb028d23",
      "old_mode": 33188,
      "old_path": "pkg/sessionflow/fold.go",
      "new_id": "f56b5006e2f492b52b2559ba64e760f40e393492",
      "new_mode": 33188,
      "new_path": "pkg/sessionflow/fold.go"
    },
    {
      "type": "modify",
      "old_id": "8c453d1b2fa222fe2d3dbabdd2c10ccbfa871d79",
      "old_mode": 33188,
      "old_path": "pkg/sessionview/sessionview.go",
      "new_id": "c3d8103994111b374fe8e8224b5717569ba10bec",
      "new_mode": 33188,
      "new_path": "pkg/sessionview/sessionview.go"
    },
    {
      "type": "modify",
      "old_id": "82fb78191f4065b647b5643b9c12537731bb5ea1",
      "old_mode": 33188,
      "old_path": "tests/chain/chain_test.go",
      "new_id": "a04e0d86bd663c0712145739b7c0dd368f6b3678",
      "new_mode": 33188,
      "new_path": "tests/chain/chain_test.go"
    }
  ]
}
