# Phase 13: Virtual-Local Cloud Operations - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-06-22 **Phase:** 13-virtual-local-cloud-operations **Areas discussed:** Open/preview/upload flow, naming and conflicts, move/delete safeguards, connection recovery --- ## Open, Preview, and Upload Flow | Question | Options considered | Selected | |----------|--------------------|----------| | Cloud interaction model | In-app preview, new tab, download, shared local experience | Shared local experience | | Same-name upload | Conflict dialog, automatic keep-both, reject, provider-native | Conflict dialog | | Multi-file processing | Parallel independent, sequential, all-or-nothing, current-local exact | Sequential with queue pause | | Unsupported preview | Authorized download, provider website, unsupported dialog | Authorized download | **User's choice:** Reuse the local storage experience and code wherever possible. Upload conflicts/errors pause the full sequential queue for explicit Keep both/Replace/Retry/Skip/Cancel-all decisions. **Notes:** In-app preview must not download to the user's machine. Temporary cache lifecycle belongs to Phase 14. --- ## Naming and Conflict Behavior | Question | Options considered | Selected | |----------|--------------------|----------| | Create/rename collision | Dialog, automatic rename, reject, provider-native | Automatic rename | | Suffix convention | Counter, copy suffix, timestamp, provider-native | Human-readable counter | | Concurrent name race | Next-suffix retry, stop, provider-native | Bounded next-suffix retry | | Stale mutation | Stop/refresh, apply anyway, ask, provider-native | Stop, refresh, explain | **User's choice:** Generate `Name (1).ext` automatically and retry boundedly on races; never mutate externally changed stale state. --- ## Move and Delete Safeguards | Question | Options considered | Selected | |----------|--------------------|----------| | Destination interaction | Shared local drag/picker, picker only, drag only, clipboard | Shared local drag and picker | | Confirmation strength | Context-sensitive, uniform, type name, folders only | Context-sensitive | | Delete semantics | Prefer trash, permanent, ask each time, provider-native | Prefer provider trash | | Invalid folder moves | Prevent early, error later, provider rejection, files only | Prevent in UI and backend | **User's choice:** Match local move interactions, constrain moves to one connection, warn more strongly for folder deletion, and use recoverable provider deletion where possible. --- ## Connection Recovery | Question | Options considered | Selected | |----------|--------------------|----------| | Health UI | Browser + Settings, Settings only, browser only, toasts | Browser + Settings | | Test timing | Automatic + on demand, on demand, every operation, scheduled | Automatic + on demand | | Reconnect metadata | Preserve/revalidate, clear, unchanged, full rebuild | Preserve then revalidate | | Explicit disconnect | Remove DocuVault data, retain metadata, disable, delete provider files | Remove credentials/metadata | **User's choice:** Temporary outages preserve everything and expose retry/reconnect. Explicit Settings disconnect removes DocuVault credentials/metadata after confirmation and never touches provider files. **Notes:** The user requested future disconnect-time conversion of cached cloud files into hierarchy-preserving local documents. This is recorded under deferred `IMPORT-01` because Phase 13 has no byte cache and permanent import is outside v0.3. --- ## Codex's Discretion - Exact accessible wording, controlled provider-error mapping, progress labels, suffix retry bound, and endpoint/service decomposition within existing architectural rules. ## Deferred Ideas - Phase 14 temporary preview-byte cache and eviction behavior. - `IMPORT-01`: preserve cached/downloaded files as quota-counted local documents on explicit disconnect, under a connection-named folder with the provider hierarchy retained.