diff --git a/docs/development/contributor-tasks.md b/docs/development/contributor-tasks.md index 31f58adbf..74bcd6725 100644 --- a/docs/development/contributor-tasks.md +++ b/docs/development/contributor-tasks.md @@ -162,7 +162,7 @@ and keep the first PR as a narrow slice. | ID | Area | Task | Validation | | --- | --- | --- | --- | -| GH-C07 | state | Global registry sync now writes inside a lock (`tests/test_global_registry_write_serialization.py`); extend the same lock or optimistic-revision guard to per-goal todo/refresh/history writers and include a concurrent todo add/update regression. | New concurrency regression plus `python3 -m py_compile loopx/*.py` | +| GH-C07 | state | Landed: #4048 (merged 2026-09-07) added `tests/test_todo_write_serialization.py`, a deterministic concurrent add/update regression that drives the real `add_goal_todo` and `update_goal_todo` writers against one state file through the shared legacy writer fence, so a second mutation can no longer be lost. The global registry keeps its own serialization coverage in `tests/test_global_registry_write_serialization.py`, and the remaining `atomic_write_state_text` call sites either hold the sibling lock or document that contract on the caller. | `pytest -q tests/test_todo_write_serialization.py tests/test_global_registry_write_serialization.py` | | GH-C47 | state | Task leases now back Turn fencing and typed CLI acquire/release, the OpenCode 2 goal worker fences its own live worker lease, a lease generation ABA fix is shipped (#3393), and a Pi `loopx_task_lease` facade over the shipped `task_lease_v0` CLI merged (#3559, closing #3549); claim coordination lives there. Adopt the same facade in one more real host integration (for example TraeX): advertise the capability explicitly, preserve soft-claim routing, expose acquire/renew/transfer/release outcomes, and prove overlapping write scopes fail without making `quota should-run` enforce undeclared lease authority. | `python3 examples/control_plane/task-lease-runtime-smoke.py`, `python3 -m pytest -q tests/control_plane/test_task_lease.py tests/test_loopx_turn_driver.py`, and a host-focused fake fixture | ### Design / RFC