These defects remain in the reconstruction worker at 74f7a98. The worker is a draft handoff to Hunter's team, and neither the app nor the demo uses it. The manager accepted documentation and follow-up ownership instead of another repair round.
Unbounded ZIP processing
recon/recon/capture.py:118-130 reads the whole archive to hash it, constructs all ZIP metadata, then extracts members without resource bounds. A large archive can exhaust memory, and a highly compressed member can consume the available disk before manifest validation.
A repair needs bounded archive hashing, metadata and expanded-data limits, and extraction that stops at those limits. Verify rejection with small or mocked inputs, not a large archive on the shared Mac.
Review: #20 (comment)
EXIF rotation without matching camera geometry
recon/recon/depth.py:98-105 loads keyframes with OpenCV's default orientation behavior. An EXIF orientation of 3 rotates pixels 180 degrees but preserves width and height, so the current dimension check passes while pose and intrinsics still describe the sensor image.
A tiny 24x16 JPEG reproduced this with the actual _image helper. A repair needs orientation ignored for sensor-aligned packets, or the image and camera geometry transformed together. Add a dimension-preserving orientation regression.
Review: #20 (comment)
The earlier geometry and clearance defects remain documented in HANDOFF.md section 6. This issue does not claim any defect is fixed or approve production use.
These defects remain in the reconstruction worker at 74f7a98. The worker is a draft handoff to Hunter's team, and neither the app nor the demo uses it. The manager accepted documentation and follow-up ownership instead of another repair round.
Unbounded ZIP processing
recon/recon/capture.py:118-130reads the whole archive to hash it, constructs all ZIP metadata, then extracts members without resource bounds. A large archive can exhaust memory, and a highly compressed member can consume the available disk before manifest validation.A repair needs bounded archive hashing, metadata and expanded-data limits, and extraction that stops at those limits. Verify rejection with small or mocked inputs, not a large archive on the shared Mac.
Review: #20 (comment)
EXIF rotation without matching camera geometry
recon/recon/depth.py:98-105loads keyframes with OpenCV's default orientation behavior. An EXIF orientation of 3 rotates pixels 180 degrees but preserves width and height, so the current dimension check passes while pose and intrinsics still describe the sensor image.A tiny 24x16 JPEG reproduced this with the actual
_imagehelper. A repair needs orientation ignored for sensor-aligned packets, or the image and camera geometry transformed together. Add a dimension-preserving orientation regression.Review: #20 (comment)
The earlier geometry and clearance defects remain documented in HANDOFF.md section 6. This issue does not claim any defect is fixed or approve production use.