76 lines
4.1 KiB
Markdown
76 lines
4.1 KiB
Markdown
# 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.
|