- derive storage path from owner_primary (fallback default)
- route OCR-corrected and field-enriched outputs to canonical records path
- support explicit output_path for save flows
- prevent SameFileError when overwriting canonical file
- keep version history while using stable canonical file path