Screen capture, rectangular selection, preview-to-OCR flow, and Tesseract integration for Apollo. Use when Codex changes capture ports/adapters, OCR execution, capture-related Tauri commands, selection geometry, or monitor-aware window coordination across `src-tauri/src/infrastructure/capture.rs`, `src-tauri/src/infrastructure/ocr.rs`, `src-tauri/src/commands/capture.rs`, `src/composables/useWindowShell.ts`, and `tests/unit/selectionGeometry.spec.ts`.
Keep capture and OCR separated behind ScreenCapturePort and OcrEngine. Treat monitor math, filesystem writes, base64 conversion, and Tesseract execution as infrastructure concerns, with Tauri commands acting only as a bridge to the UI.
src-tauri/src/commands/capture.rs thin. Put screen, filesystem, base64, and process logic in infrastructure modules.ApplicationErrorKind; do not surface raw crate or OS errors directly to the frontend.capture_screen_region_sync and extract_text_sync as the synchronous core that can be wrapped by spawn_blocking.CaptureRegionResponse: file path, width, height, and a ready-to-render data: URL.useWindowShell.ts and tests/unit/selectionGeometry.spec.ts; the bug surface is usually in monitor placement, not in the Vue surface.cargo test --manifest-path src-tauri/Cargo.toml ocr_contract.cargo test --manifest-path src-tauri/Cargo.toml.npx vitest run tests/unit/selectionGeometry.spec.ts.references/context.md for the domain map, entry points, and adjacent skills.