✓ Phase 10 completed: The global store lives only on the commander

The workers hold no replica any more — `store_set`, `store_del` and the two halves of the read-modify-write grant are lane CALLs on `/desk/store_*`, served against the single copy on the vertex, with `GlobalStoreLock`/`GlobalStoreLease` reused from the untouched `spa/global_store.py`. Contract file 8/8 over two real workers on real UDS lanes under one real commander; full suite 2075 passed / 2 skipped; `ruff check .` clean.

**The commit did not land**: the `Pre-commit rules check` hook is permission-gated and denies an unattended session (`git commit` was refused twice, so I stopped). Everything is staged — `git commit -m "wf(phase 10): The global store lives only on the commander"` from an interactive session lands it. I deliberately left your own uncommitted work out of the staging area (`CLAUDE.md`, the three `codex/` documents, `log/phase-9.txt`).
ytx`, `GLOBAL_STORE_KEY`, `GLOBAL_WRITES_KEY`, `apply_global_writes`, `old_value` and the stale refusal — so the coherence findings 1 and 2 dissolve. Two files outside the phase's `Files:` were touched and both were forced: `worker_handler.py` (the death rule needs `on_child_lost` as its caller) and `worker_connector.py`, which now cancels a dead child's parked CALLs so a worker that died PARKED on the grant cannot win it afterwards and deadlock the pool's store forever. `test_contract_phase5_global_store.py` was deleted: this phase's contract file is its rewrite, subject by subject.
