test(06.2): update UAT with root cause diagnoses for all 4 gaps

This commit is contained in:
curo1305
2026-05-31 20:01:56 +02:00
parent 1d8c7dba91
commit 6307d9dd86
@@ -1,5 +1,5 @@
--- ---
status: complete status: diagnosed
phase: 06.2-close-v1-sharing-cloud-delete-csv-export-gaps phase: 06.2-close-v1-sharing-cloud-delete-csv-export-gaps
source: [06.2-01-SUMMARY.md, 06.2-02-SUMMARY.md, 06.2-03-SUMMARY.md, 06.2-04-SUMMARY.md] source: [06.2-01-SUMMARY.md, 06.2-02-SUMMARY.md, 06.2-03-SUMMARY.md, 06.2-04-SUMMARY.md]
started: 2026-05-31T12:00:00Z started: 2026-05-31T12:00:00Z
@@ -87,9 +87,13 @@ blocked: 2
reason: "User reported: I cannot share the document as I don't see the username in the admin user tab or even in the user settings nowhere. There is no profile or anything to change or update the information as the user." reason: "User reported: I cannot share the document as I don't see the username in the admin user tab or even in the user settings nowhere. There is no profile or anything to change or update the information as the user."
severity: major severity: major
test: 1 test: 1
root_cause: "" root_cause: "AccountView.vue 'Account information' section renders only email and role — the handle field from authStore.user is never displayed, even though GET /api/auth/me returns it. Users cannot discover their own handle or other users' handles, making the share dialog (which requires a recipient handle) unusable in practice."
artifacts: [] artifacts:
missing: [] - path: "frontend/src/views/AccountView.vue:10-23"
issue: "Account information section shows email and role only — handle field missing"
missing:
- "Add handle display to AccountView.vue account information section: `<div><span class='text-gray-500'>Username:</span> {{ authStore.user?.handle }}</div>`"
- "Consider also showing handles in AdminUsersTab so admins can look up other users' handles"
debug_session: "" debug_session: ""
- truth: "CSV export downloads a file containing audit log data rows (not just a header line)" - truth: "CSV export downloads a file containing audit log data rows (not just a header line)"
@@ -97,9 +101,13 @@ blocked: 2
reason: "User reported: Yes I downloaded a csv file but except an header (title of rows) the csv is empty." reason: "User reported: Yes I downloaded a csv file but except an header (title of rows) the csv is empty."
severity: major severity: major
test: 9 test: 9
root_cause: "" root_cause: "Export silently respects the active user_handle filter; after testing the 'unknown handle → empty list' case in test 8, the stale unknown handle filter was still active when Export was clicked — producing an empty CSV. No backend bug: code is correct, but there is no UI feedback showing which filters the export will apply, and no easy way to clear filters before exporting."
artifacts: [] artifacts:
missing: [] - path: "frontend/src/components/admin/AuditLogTab.vue"
issue: "exportCsv() passes current filters.user_handle to the export with no indication to user; no 'Clear filters' action available"
missing:
- "Add a visible 'Active filters' indicator near the Export button"
- "Add a 'Clear filters' button that resets all filter fields and re-fetches"
debug_session: "" debug_session: ""
- truth: "Audit log entries show user handles prefixed with @ (e.g. @alice) instead of plain usernames or raw UUIDs" - truth: "Audit log entries show user handles prefixed with @ (e.g. @alice) instead of plain usernames or raw UUIDs"
@@ -107,9 +115,14 @@ blocked: 2
reason: "User reported: I see the usernames yes but without a @ symbol." reason: "User reported: I see the usernames yes but without a @ symbol."
severity: minor severity: minor
test: 7 test: 7
root_cause: "" root_cause: "The handle column in the User model stores the bare username without a leading @. The backend returns it as-is and the frontend renders it directly — the @ prefix is never applied anywhere in the pipeline."
artifacts: [] artifacts:
missing: [] - path: "frontend/src/components/admin/AuditLogTab.vue:95"
issue: "Renders entry.user_handle directly with no @ prefix"
- path: "backend/api/audit.py:86-87"
issue: "_audit_to_dict_with_handles() returns handle verbatim from User.handle column"
missing:
- "Frontend fix only: change line 95 from `entry.user_handle || entry.user_id || '—'` to `entry.user_handle ? '@' + entry.user_handle : (entry.user_id || '—')`"
debug_session: "" debug_session: ""
- truth: "Cloud-stored documents can be opened, viewed, and deleted through the UI" - truth: "Cloud-stored documents can be opened, viewed, and deleted through the UI"
@@ -117,7 +130,13 @@ blocked: 2
reason: "User reported: I neither can open, view or delete any files or folders inside the cloud storage" reason: "User reported: I neither can open, view or delete any files or folders inside the cloud storage"
severity: major severity: major
test: 4 test: 4
root_cause: "" root_cause: "The cloud folder browser (/cloud/:provider/:folderId) calls GET /api/cloud/folders/{provider}/{folderId} which returns 404 if no ACTIVE CloudConnection exists for the user. If no cloud provider has been connected (or the OAuth token has expired), the browser shows 'Failed to load folder contents' with no guidance. Cloud-delete propagation built in Phase 6.2 cannot be tested without a working cloud connection."
artifacts: [] artifacts:
missing: [] - path: "frontend/src/views/CloudFolderView.vue:133"
issue: "Error message 'Failed to load folder contents' is shown with no indication of whether the cause is missing connection or expired token"
- path: "backend/api/cloud.py:802-806"
issue: "Returns 404 when no ACTIVE connection found — no distinction between 'never connected' and 'token expired'"
missing:
- "CloudFolderView should check connection status before attempting folder load and show actionable error (e.g. 'Connect a cloud provider in Settings')"
- "Or: prerequisite — user must connect a cloud provider in Settings before this feature can be tested"
debug_session: "" debug_session: ""