)]}'
{
  "commit": "b18b78cca3a932e6e47f2ea7435940b6441c98c6",
  "tree": "7e8ed0cab9ba571db29341082bc5d90e4ee95f85",
  "parents": [
    "fd52b1056e7ded223bd17f10a5a1a2a87a652b7a"
  ],
  "author": {
    "name": "Christina Quast",
    "email": "christina.quast@9elements.com",
    "time": "Wed Sep 16 14:59:06 2026 +0200"
  },
  "committer": {
    "name": "Christina Quast",
    "email": "chrysh.ng+github@gmail.com",
    "time": "Wed Sep 16 16:56:44 2026 +0200"
  },
  "message": "orchestrator: Move the cursor off a component gated mid-walk\n\nA cascade can gate the component currently under verification. Only\nchain[cursor] can be released, so leaving the cursor on that component let its\nin-flight verdict take it back out of reset. handle_corruption_advancing gates\nby policy and then moves the cursor to the next ungated component. The two\nstates that release only chain[cursor], PreSupervision and AwaitingReady, route\nCorruptionDetected through it.\n\nIt is not called from handle_supervising. Recovering\u0027s cursor is stale, since\nVerificationFailed leaves it on the failed component, so advancing there would\nverify mid-recovery or reach Ready instead of re-walking.\n\nThe release property now randomizes the chain shape as well as the event\nsequence. The AwaitingReady race needs a gateable component after an active\none, which the old fixed chain never had.\n\nAlso adds the missing test for the Chain::try_from length bound. cursor is a u8\nusing chain.len() as its past-the-end sentinel, so a 256-entry chain would\ntruncate that sentinel to 0 and the walk would never read as done.\n\nAssisted-by: Claude:claude-opus-5\nSigned-off-by: Christina Quast \u003cchristina.quast@9elements.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "07f9f4d3ce973834377b13142150eee4b13d836e",
      "old_mode": 33188,
      "old_path": "services/orchestrator/sm/src/lib.rs",
      "new_id": "1e1e85a8f51d2bdb831e3985527fa5cf7cc0529a",
      "new_mode": 33188,
      "new_path": "services/orchestrator/sm/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "2eab2a71e239b509538061df578d62aba4547290",
      "old_mode": 33188,
      "old_path": "services/orchestrator/sm/src/tests.rs",
      "new_id": "d087fdd8a136a7dfdfceba313f20380e59ba8013",
      "new_mode": 33188,
      "new_path": "services/orchestrator/sm/src/tests.rs"
    }
  ]
}
