Command Modules

src/commands/pack.rs, src/commands/unpack.rs, src/commands/list.rs — CLI command handlers.

Pack Command

Implementation: Pack Command — CLI Entry Point IMPL-PACK-001
status: implemented
tags: pack, cli, command
release: v1.0
realizes: FR-TRANSFER-028

pack::run orchestrates the pack workflow: argument validation, manifest creation, chunk size selection, space checking, progress display, and streaming pack via the chunker.

Implementation: Pack — Manual Chunk Size IMPL-PACK-002
status: implemented
tags: pack, chunk-size
release: v1.0
realizes: FR-TRANSFER-006

The --chunk-size flag accepts a human-readable size (e.g., 1G, 500M) that overrides auto-detection.

Implementation: Pack — Progress Display IMPL-PACK-003
status: implemented
tags: pack, progress, ux
release: v1.0
realizes: FR-TRANSFER-007

Real-time progress bar via indicatif showing bytes written, transfer rate, and ETA.

Implementation: Pack — USB Swap Prompt IMPL-PACK-004
status: implemented
tags: pack, usb, prompt
release: v1.0
realizes: FR-TRANSFER-008

When available space is insufficient, the per-chunk callback prompts the user to swap USB drives before continuing.

Implementation: Pack — Overwrite Protection IMPL-PACK-005
status: implemented
tags: pack, safety
release: v1.0
realizes: FR-TRANSFER-038

Existing manifest detection: refuses to overwrite without --force, offers --resume for continuation.

Unpack Command

Implementation: Unpack Command — CLI Entry Point IMPL-UNPACK-001
status: implemented
tags: unpack, cli, command
release: v1.0
realizes: FR-TRANSFER-029

unpack::run orchestrates unpack: manifest loading, chunk verification, tar extraction, and final checksum validation.

Implementation: Unpack — Validate Completeness IMPL-UNPACK-002
status: implemented
tags: unpack, validation
release: v1.0
realizes: FR-TRANSFER-012

Before extraction, the manifest is loaded and each chunk file is checked for existence — missing chunks are reported.

Implementation: Unpack — Resume Partial Unpack IMPL-UNPACK-003
status: implemented
tags: unpack, resume
release: v1.0
realizes: FR-TRANSFER-013

Unpack resumes from the first incomplete chunk by skipping already- extracted content.

Implementation: Unpack — Delete Chunks IMPL-UNPACK-004
status: implemented
tags: unpack, cleanup
release: v1.0
realizes: FR-TRANSFER-014

After successful extraction, chunks are deleted by default. --keep-chunks preserves them.

Implementation: Unpack — Progress Display IMPL-UNPACK-005
status: implemented
tags: unpack, progress, ux
release: v1.0
realizes: FR-TRANSFER-015

Progress bar shows extraction progress per chunk and overall.

List Command

Implementation: List Command — CLI Entry Point IMPL-LIST-001
status: implemented
tags: list, cli, command
release: v1.0
realizes: FR-TRANSFER-030

list::run loads the manifest and displays chunk inventory in a formatted table.

Implementation: List — Display Inventory IMPL-LIST-002
status: implemented
tags: list, display
release: v1.0
realizes: FR-TRANSFER-016

Shows all chunk filenames, sizes, and statuses from the manifest.

Implementation: List — Show Sizes and Status IMPL-LIST-003
status: implemented
tags: list, display
release: v1.0
realizes: FR-TRANSFER-017

Each chunk shows its byte size and completion status (pending, completed, failed).

Implementation: List — Identify Missing IMPL-LIST-004
status: implemented
tags: list, validation
release: v1.0
realizes: FR-TRANSFER-018

Chunks not present on disk are flagged as missing in the output.

Implementation: List — Estimated Total Size IMPL-LIST-005
status: implemented
tags: list, display
release: v1.0
realizes: FR-TRANSFER-019

Displays the total transfer size from the manifest header.

Implementation: List — Verify Flag IMPL-LIST-006
status: implemented
tags: list, verification
release: v1.0
realizes: FR-TRANSFER-057

list --verify checks chunk checksums and reports integrity status alongside inventory.