Files
kite/.planning/phases/12-cloud-resource-foundation/12-UAT.md
T

5.2 KiB

status, phase, source, started, updated
status phase source started updated
diagnosed 12-cloud-resource-foundation
12-01-SUMMARY.md
12-02-SUMMARY.md
12-03-SUMMARY.md
12-04-SUMMARY.md
2026-06-19T20:21:31+02:00 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"