Add terminal lane states for when a lane discovers its work is already
landed in main, superseded by another lane, or has an empty diff:
LaneEventName:
- lane.reconciled — branch already merged, no action needed
- lane.merged — work successfully merged
- lane.superseded — work replaced by another lane/commit
- lane.closed — lane manually closed
PolicyAction::Reconcile with ReconcileReason enum:
- AlreadyMerged — branch tip already in main
- Superseded — another lane landed the same work
- EmptyDiff — PR would be empty
- ManualClose — operator closed the lane
PolicyCondition::LaneReconciled — matches lanes that reached a
no-action-required terminal state.
LaneContext::reconciled() constructor for lanes that discovered
they have nothing to do.
This closes the gap where lanes like 9404-9410 could discover
'nothing to do' but had no typed terminal state to express it.
The policy engine can now auto-closeout reconciled lanes instead
of leaving them in limbo.
Addresses ROADMAP P1.3 (lane-completion emitter) groundwork.
Tests: 4 new tests covering reconcile rule firing, context defaults,
non-reconciled lanes not triggering reconcile rules, and reason
variant distinctness. Full workspace suite: 643 pass, 0 fail.