# ClientFlow v4928.1.5.132.2

## Deterministic post-review task reactivation

### Problem confirmed
A reconstructed review could be completed and persisted as `validated`, while the previously skipped blocked task remained `skipped`. The v132.1 implementation attempted a new INSERT first and only reactivated after an idempotency conflict. In production the post-review hook completed without producing `task_reactivated`.

### Changes
- Controlled post-blocker flows now search and reactivate an existing skipped/ignored materialized task **before** attempting a new INSERT.
- Reactivation is restricted to:
  - `reconstructed_review_completion`
  - `physical_validation_completion`
  - guarded manual repair `manual_v132_2_reactivation_repair`
- Only tasks with `metadata.materialized_from_next_action=true` are eligible.
- A `task_reactivated` event records source, prior status and version.
- Review completion writes `post_review_task_materialization` to `opportunity_events`, including the central decision and materialization result.
- Added guarded dry-run repair script for opportunities already affected.

### Safety
The repair aborts unless:
- review state is explicitly `validated`;
- current central decision matches the recorded blocked action;
- no pending task for the action exists;
- a skipped/ignored materialized task exists;
- physical validation has not already been recorded.

### Validation
- Python compilation: OK
- Focused tests: 6 passed
- Full suite: 528 passed
