Replace SSIM-based frame cropping with full-frame RMS comparison
Simplifies video frame processing by removing crop-based change detection:
- Replace block-based SSIM with RMS difference on downsampled frames (5% threshold)
- Send full frames to Gemini instead of cropped regions
- Remove box_2d from JSONL output schema (meeting participant boxes still preserved)
- Use rolling comparison with cached thumbnails to avoid repeated resizing
- Remove scikit-image dependency (~50MB savings)
Files changed:
- observe/describe.py: New RMS-based qualification, removed crop methods
- observe/utils.py: Removed _group_changed_blocks and _blocks_to_boxes
- observe/describe_*.txt: Updated prompts to reflect full-frame processing
- pyproject.toml: Removed scikit-image
- tests/conftest.py: Removed skimage mock
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>