- Remove _init_blur_pipeline call from _post_init (display_size invalid at startup)
- Add validation for ws.x > 0 and ws.y > 0 before FBO creation
- Add validation for fb_scale > 0 with default fallback to 1.0
- Make _init_blur_pipeline return bool for success/failure
- Update plan.md to reflect current progress
Fixes crash: GLError(err=1281, description=b'invalid value')