)]}'
{
  "commit": "aa9a2dfff005cd4e82f3cf4b804e9793934cfce9",
  "tree": "7bf3ac23584295b16bfeb5d13f106f0e3e29a55e",
  "parents": [
    "d111508b3f25071908dee61c4cceb034d6c7ebd2"
  ],
  "author": {
    "name": "Christina Quast",
    "email": "christina.quast@9elements.com",
    "time": "Fri Aug 07 11:14:07 2026 +0200"
  },
  "committer": {
    "name": "Anthony Rocha",
    "email": "116300062+rusty1968@users.noreply.github.com",
    "time": "Tue Aug 11 16:04:33 2026 -0700"
  },
  "message": "orchestrator: Make invalid table entries unconstructible\n\nEvery schema check is per-device, so the constructors can run them\nall. BootCheckpoint::new and DeviceConfig::new are const fn -- board\ntables still build in const context, so a bad table is still a build\nerror -- but the fields are private now, and a checkpoint or device\nentry that violates the schema cannot be constructed at all.\n\nThe free validate() is gone with the loophole it carried: it had to\nbe remembered, and a board table that dropped the const fence\ncompiled fine while broken. Construction is the one gate every entry\npasses. Board-local checks keep the const-fence pattern\n(validate_signals in the mock table), reading through the new\naccessors.\n\nAssisted-by: Claude:claude-fable-5\nSigned-off-by: Christina Quast \u003cchristina.quast@9elements.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c544a79fa466d19194b919a6fc4385ac3e5e1378",
      "old_mode": 33188,
      "old_path": "services/orchestrator/config/src/lib.rs",
      "new_id": "f4e742412db383fcf8719ec0e8837f5388fe65b7",
      "new_mode": 33188,
      "new_path": "services/orchestrator/config/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "33af731cb47d1b8e9e9df0c72dba8ec3cb03ff60",
      "old_mode": 33188,
      "old_path": "target/mock/devices.rs",
      "new_id": "98802697eea962626e66a16a306414829c04e96b",
      "new_mode": 33188,
      "new_path": "target/mock/devices.rs"
    }
  ]
}
