---
status: diagnosed
phase: 12-cloud-resource-foundation
source:
  - 12-01-SUMMARY.md
  - 12-02-SUMMARY.md
  - 12-03-SUMMARY.md
  - 12-04-SUMMARY.md
started: 2026-06-19T20:21:31+02:00
updated: 2026-06-19T20:28:00+02:00
---

## Current Test

[testing paused — 4 items blocked by cloud provider connection failure]

## Tests

### 1. Cold Start Smoke Test
expected: Start DocuVault from a clean stopped state. PostgreSQL migration 0006 completes, the backend and frontend become healthy without startup errors, and the authenticated Cloud Storage page loads normally.
result: issue
reported: "GET /api/cloud/connections raises an ASGI exception: psycopg.errors.UndefinedColumn because cloud_connections.display_name_override does not exist in the live PostgreSQL schema."
severity: blocker

### 2. Connection Roots and Custom Names
expected: Cloud Storage shows each connected account as its own top-level row. Two accounts from the same provider remain distinct; default duplicate names are disambiguated, and renaming one connection in Settings updates only that connection.
result: issue
reported: "Cannot connect Nextcloud test users; POST /api/cloud/connections/webdav raises psycopg.errors.UndefinedColumn because cloud_connections.display_name_override does not exist."
severity: blocker

### 3. Shared Cloud Folder Browser
expected: Opening a connection shows its files and folders in the same StorageBrowser layout used for local documents. The breadcrumb begins with the connection name, folder navigation works, and provider IDs or technical metadata do not clutter normal rows.
result: blocked
blocked_by: server
reason: "Cannot test because cloud provider connection fails with the live database schema error."

### 4. Unsupported Action Explanations
expected: Unsupported cloud actions remain visible in their normal positions but appear gray; temporarily unavailable actions appear amber. Hover or keyboard focus shows the specific explanation, and tapping/clicking an unavailable action explains it without executing it.
result: blocked
blocked_by: server
reason: "Cannot reach a connected cloud folder while provider connection creation is failing."

### 5. Cached-First Refresh and Warning State
expected: Revisiting a previously browsed folder shows saved metadata immediately while a subtle refresh indicator runs. If provider refresh fails, cached rows remain usable and a warning reports the last successful refresh and automatic retry instead of replacing the folder with an error.
result: blocked
blocked_by: server
reason: "Cannot establish the cloud connection needed to seed and revisit provider metadata."

### 6. Session-Only Folder Memory
expected: Leaving and reopening a connection in the same browser session resumes its last folder. Starting a fresh tab/session begins at the connection root, and no credentials or document content are stored in browser session storage.
result: blocked
blocked_by: server
reason: "Cannot enter a connected cloud folder while provider connection creation is failing."

## Summary

total: 6
passed: 0
issues: 2
pending: 0
skipped: 0
blocked: 4

## Gaps

- truth: "A clean start applies migration 0006 and the authenticated Cloud Storage page loads without backend schema errors."
  status: failed
  reason: "User reported: GET /api/cloud/connections raises psycopg.errors.UndefinedColumn because cloud_connections.display_name_override does not exist in the live PostgreSQL schema."
  severity: blocker
  test: 1
  root_cause: "The live database is at Alembic revision 0005 because docker-compose.yml starts backend/workers directly and has no migration service or dependency that runs alembic upgrade head. ORM metadata expects revision 0006."
  artifacts:
    - path: "docker-compose.yml"
      issue: "No migration service; backend and Celery services depend only on PostgreSQL health."
    - path: "backend/migrations/versions/0006_cloud_resource_foundation.py"
      issue: "Required migration exists but is not applied during Compose startup."
    - path: "backend/tests/test_alembic.py"
      issue: "No PostgreSQL regression covering upgrade from revision 0005 to head."
  missing:
    - "Run alembic upgrade head before backend and worker startup."
    - "Add cold-start migration regression and deployment documentation."
  debug_session: ".planning/debug/phase-12-cloud-schema-cold-start.md"
- truth: "A user can connect Nextcloud accounts and each connected account appears as an independently renameable cloud root."
  status: failed
  reason: "User reported: Cannot connect Nextcloud test users; POST /api/cloud/connections/webdav fails because cloud_connections.display_name_override does not exist."
  severity: blocker
  test: 2
  root_cause: "Same schema-drift root cause as Test 1: Nextcloud connection creation queries the Phase 12 ORM while PostgreSQL remains at revision 0005."
  artifacts:
    - path: "docker-compose.yml"
      issue: "No migration gate before the cloud connection API starts."
    - path: "backend/api/cloud/connections.py"
      issue: "Correctly queries CloudConnection, which exposes the unapplied schema immediately."
  missing:
    - "Apply revision 0006/head before accepting cloud connection requests."
  debug_session: ".planning/debug/phase-12-cloud-schema-cold-start.md"
