---
id: FILE-001
title: File Copy Job with Strategy Pattern
status: Done
assignee: jamiepine
parent: FILE-000
priority: High
tags: [core, jobs, file-ops, vdfs]
whitepaper: Section 4.4.6
---

## Description

A flexible `FileCopyJob` will be implemented to handle all copy and move operations. It uses a strategy pattern to select the optimal file transfer method (e.g., local move, cross-volume stream, remote transfer) based on the source and destination `SdPath`.

## Implementation Notes

- The `FileCopyJob` and `CopyOptions` will be defined in `src/operations/files/copy/job.rs`.
- The `CopyStrategyRouter` in `src/operations/files/copy/routing.rs` selects the appropriate strategy.
- Implement strategies include `LocalMoveStrategy`, `LocalStreamCopyStrategy`, and `RemoteTransferStrategy` in `src/operations/files/copy/strategy.rs`.
- The job provides detailed, byte-level progress updates.

## Acceptance Criteria

- [x] The job can copy files and directories locally.
- [x] The job correctly selects an atomic `rename` for same-volume moves.
- [x] The job can orchestrate a cross-device transfer between two peers.
- [x] The job correctly handles `delete_after_copy` for move operations.
