afc0cfaac8
The watch lane settled the investigation with `settleOpenInvestigations`, then appended the terminal card as a separate write — and swallowed that write's error, logging it and reporting success. So the row went terminal, the card never arrived, the stale sweep stopped selecting the row because it was no longer `in_progress`, and the user was left on "Working…" with nothing able to repair it. Nothing in production calls the action again on its own, which is exactly why the swallowed error mattered. The lane now writes through `settleInvestigationStateAndCloseCard`: the terminal revision and the closing card commit in one transaction, under the lane's own message id, and the error propagates so the task's retry is a real retry. If the card cannot be rendered the settle rolls back, leaving the `in_progress` row the sweep still selects. The duplicated revision bump is gone with it — one outcome is now one revision. The regression test drives a failing close in one action; it no longer proves recovery by calling the action a second time by hand.