)]}'
{
  "commit": "94ca9b14cfe13aacc7115b167d949a79b004c641",
  "tree": "50af6ac6ef2bf70a9c095d330b2c5abddc4459da",
  "parents": [
    "5a4e242a6b4f5a3ede7b081269b7461c5061d10a"
  ],
  "author": {
    "name": "LIU ZHE YOU",
    "email": "zhu424.dev@gmail.com",
    "time": "Fri Oct 02 16:52:10 2026 +0000"
  },
  "committer": {
    "name": "LIU ZHE YOU",
    "email": "zhu424.dev@gmail.com",
    "time": "Sat Oct 03 05:15:27 2026 +0000"
  },
  "message": "Describe the scheduler\u0027s task handler read in ADR-0013\n\nFlow 2 still described a binding loaded with the task instance query, and a scheduler that fails a stub task without a binding. It now describes the read that follows the selection of the task instances to queue, which covers only routed queues, costs one query and takes no row locks, and says the scheduler never fails a task. The reference always names the artifact\u0027s bundle without a version, and the worker, not the scheduler, decides that a reference names the task\u0027s own Dag bundle. Flow 3 says the worker reads such a bundle at the version the run uses, and the Consequences count a bundle name in every payload. The Consequences note that the scheduler reads [sdk] and the task handler Dag bundles, and that scheduling costs nothing without queue_to_coordinator. A workload without a reference also covers a scheduler that cannot read [sdk], which warns only on a loop that queues a task.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e06cb12d4c397ffdf0b39b887818be893e4a659",
      "old_mode": 33188,
      "old_path": "airflow-core/adr/lang-sdk/0013-persisted-task-handler-bindings.md",
      "new_id": "4c035210eb1d8f5b98ca9ca75e991c3203941be2",
      "new_mode": 33188,
      "new_path": "airflow-core/adr/lang-sdk/0013-persisted-task-handler-bindings.md"
    }
  ]
}
