)]}'
{
  "commit": "4ec2a882f93bcea7051adf9f8c4664bc3c143bf6",
  "tree": "78a47855c1657890a4c71dc83db06c470228f613",
  "parents": [
    "0fda14657a5e3010c632b2cd32c781a793ef0af8"
  ],
  "author": {
    "name": "Christina Quast",
    "email": "christina.quast@9elements.com",
    "time": "Sat Aug 15 11:11:37 2026 +0200"
  },
  "committer": {
    "name": "Christina Quast",
    "email": "chrysh.ng+github@gmail.com",
    "time": "Wed Aug 19 17:20:33 2026 +0200"
  },
  "message": "orchestrator: Latch at the queue front, never lose the latch\n\nA failed effect with a full pending queue silently dropped the\nEffectFailed push: failed stayed set, nothing latched, and the run\nsettled as if the actuation had succeeded. Fold both failure paths into\none latch() helper: evict the newest queued event if the queue is full,\nand push the latch to the *front*, so it settles next and queued\nfeedback drains into Locked instead of actuating hardware after a\nfailure. Document that returned events must quiesce.\n\nAssisted-by: Claude:claude-fable-5\nSigned-off-by: Christina Quast \u003cchristina.quast@9elements.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9faaad01a9d7c208e86b7256c83d8cc047b67bac",
      "old_mode": 33188,
      "old_path": "services/orchestrator/sm/src/lib.rs",
      "new_id": "5a872f40b27da727a443523071a80a6a87a03564",
      "new_mode": 33188,
      "new_path": "services/orchestrator/sm/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "7db8226c6dec32a1fef5004a448fe50634c57775",
      "old_mode": 33188,
      "old_path": "services/orchestrator/sm/src/tests.rs",
      "new_id": "b574c4c60e2749f257ce6ee1e5d4f110d842bbe1",
      "new_mode": 33188,
      "new_path": "services/orchestrator/sm/src/tests.rs"
    }
  ]
}
