Desktop Material

Reviewed batch repository sync

The repository picker exposes Sync repositories for workspace-scale network updates. The dialog loads the current persisted repositories, selects all by default, and lets the user review an exact subset before starting either a pull or a fetch-only batch.

Behavior and configuration

No persistent scheduler setting is created; every batch is explicitly reviewed.

Failure modes and recovery

Missing repositories, missing remotes, detached or unborn branches, branches without upstreams, and already-running network operations are skipped with a per-repository reason. Authentication and network failures affect only that row. If the repository inventory changes between review and execution, the batch stops before any selected operation begins and asks for a refresh.

Security considerations

The renderer submits only the operation enum and bounded numeric repository IDs. The store re-resolves every ID against the live persisted inventory and rejects duplicates, invalid IDs, empty selections, more than 500 entries, or a stale set. No remote URL, refspec, credential, or raw Git argument crosses the review boundary.

Verification

Automation coverage checks bounded concurrency, ordered isolated results, and distinct fetch progress. Renderer coverage checks the review gate, subset selection, fetch-only semantics, background continuity, and completion/failure summaries.