personal memory agent

deps: swap opencv-python → opencv-python-headless master

PyAV and opencv-python both bundle libavdevice.*.dylib at different major versions (61.3.100 vs 62.1.100) on macOS. Both load into the same process, producing `objc[...]: Class AVFrameReceiver is implemented in both ... .dylib` warning spam on every CLI invocation (observed on `sol --help`) and a latent crash risk. opencv-python-headless drops the ffmpeg/libav bundle and retains all the image operations this codebase uses. Grep confirmed zero VideoCapture / VideoWriter / imshow usage — cv2 is aruco + cvtColor + imwrite only. Verified: cv2.aruco.getPredefinedDictionary works, test_aruco.py passes (12/12), `sol --help` clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>


+12 -12
2 changed files