---
status: complete
phase: 12.1-fix-nextcloud-root-listing-and-sync-visibility
source: 12.1-01-SUMMARY.md, 12.1-02-SUMMARY.md, 12.1-03-SUMMARY.md, 12.1-04-SUMMARY.md
started: 2026-06-22T00:00:00Z
updated: 2026-06-22T00:00:00Z
---

## Current Test

## Current Test

[testing complete]

## Tests

### 1. Nextcloud Root Items Appear in Cloud Browser
expected: Open the DocuVault app, navigate to a configured Nextcloud connection in the cloud browser. The root folder loads and shows its actual contents (folders and/or files) in the file grid — not empty, not an error.
result: pass

### 2. Cloud Items Show Correct Type Icons
expected: In the cloud browser, folders appear with a folder icon and files appear with a file icon. No item has a wrong or missing type indicator. (This applies to any cloud provider — Nextcloud, WebDAV, Google Drive, OneDrive.)
result: pass

### 3. Folder Navigation via Click
expected: Click a folder in the cloud browser. The view navigates into that folder and displays its contents. This should work even for providers like OneDrive where folder IDs are opaque strings (not paths). The URL/route updates to reflect the new folder.
result: pass

### 4. Breadcrumb Shows Navigation Lineage
expected: After clicking into a subfolder (or several levels deep), a breadcrumb bar shows the path taken (e.g., "Root > Documents > 2026"). Clicking any breadcrumb segment navigates back to that level correctly — contents reload for that folder.
result: pass

### 5. Warning State on Incomplete Listing (Freshness)
expected: If the cloud provider returns a partial/incomplete listing (network issue, timeout, provider-side limit), the UI should show a warning/caution indicator — NOT a "fresh" or "synced" indicator. Previously cached items remain visible during the warning state rather than disappearing.
result: skipped
reason: Requires injecting a mid-call failure into the backend to trigger complete=False. Covered by 9 automated tests (test_incomplete_listing_never_marks_folder_fresh, test_browse_complete_false_never_sets_fresh, etc.) — manual trigger not worth patching production code.

### 6. Freshness Timestamp Comes from Server
expected: The "last refreshed" or "last synced" timestamp shown in the cloud browser UI matches the server-reported time — it does NOT jump to the current browser clock time on every page load. If the server says "last synced 10 minutes ago," the UI reflects that.
result: issue
reported: "All 'modified' rows are empty and just with a '-' filled. The native cloud storage browser does show a modified time."
severity: major

### 7. Test Suite Passes (Backend + Frontend)
expected: Running `cd backend && pytest -v` passes all tests (excluding the pre-existing `test_extract_docx` failure). Running `cd frontend && npm test` or `npm run test:unit` passes all 376 frontend tests with 0 failures.
result: pass

## Summary

total: 7
passed: 5
issues: 1
pending: 0
skipped: 1
blocked: 0

## Gaps

- truth: "Cloud browser displays per-item modification timestamps supplied by the provider"
  status: failed
  reason: "User reported: All 'modified' rows are empty and just with a '-' filled. The native cloud storage browser does show a modified time."
  severity: major
  test: 6
  root_cause: ""
  artifacts: []
  missing: []
  debug_session: ""
