| 12 |
03 |
cloud-ui-foundation |
| cloud |
| routing |
| capabilities |
| breadcrumb |
| freshness |
| accessibility |
| session-storage |
|
| requires |
provides |
affects |
|
|
| connection-ID routing (/cloud/:connectionId/:folderId) |
| capability-aware action rendering (StorageBrowser) |
| breadcrumb freshness indicators (BreadcrumbBar) |
| session-only folder memory (cloudConnections store) |
| display-name rename for cloud connections |
|
| frontend/src/api/cloud.js |
| frontend/src/stores/cloudConnections.js |
| frontend/src/router/index.js |
| frontend/src/views/CloudStorageView.vue |
| frontend/src/views/CloudFolderView.vue |
| frontend/src/components/settings/SettingsCloudTab.vue |
| frontend/src/components/storage/StorageBrowser.vue |
| frontend/src/components/ui/BreadcrumbBar.vue |
| frontend/src/components/ui/AppIcon.vue |
| frontend/src/utils/formatters.js |
| backend/main.py |
|
|
| added |
patterns |
| CapabilityButton inline render-function component (StorageBrowser.vue) |
| formatRelativeTime (formatters.js) |
| saveLastFolder / loadLastFolder (cloudConnections.js session helpers) |
|
| capability-aware rendering (aria-disabled, not native disabled) |
| session-storage for navigation state only (never tokens/credentials) |
| connection UUID as routing identity (opaque, not provider slug) |
| immediate watcher for freshness state transitions |
|
|
| created |
modified |
| frontend/src/views/__tests__/CloudFolderView.test.js |
| frontend/src/views/__tests__/CloudStorageView.test.js |
| frontend/src/components/storage/__tests__/StorageBrowser.capabilities.test.js |
|
| frontend/src/api/cloud.js |
| frontend/src/stores/cloudConnections.js |
| frontend/src/stores/__tests__/cloudConnections.test.js |
| frontend/src/router/index.js |
| frontend/src/views/CloudStorageView.vue |
| frontend/src/views/CloudFolderView.vue |
| frontend/src/components/settings/SettingsCloudTab.vue |
| frontend/src/components/settings/__tests__/SettingsCloudTab.test.js |
| frontend/src/components/storage/StorageBrowser.vue |
| frontend/src/components/ui/BreadcrumbBar.vue |
| frontend/src/components/ui/__tests__/BreadcrumbBar.test.js |
| frontend/src/components/ui/AppIcon.vue |
| frontend/src/utils/formatters.js |
| backend/main.py |
| frontend/package.json |
| AGENTS.md |
| README.md |
|
|
| Connection identity is the connection UUID, never a provider slug, in routes and API calls |
| CapabilityButton uses aria-disabled (not native disabled) so controls remain keyboard-focusable |
| Local mode uses full capability defaults — no mode==='local' gates remain in action rendering |
| session-only folder memory stored under namespaced key docuvault:cloud:folder:{uuid} |
| Fresh indicator fades after 3s using immediate watcher + fake-timer-tested setTimeout |
| formatRelativeTime added to formatters.js — not duplicated inline |
|
| duration |
completed |
tasks |
files |
| ~45 minutes |
2026-06-18 |
3 |
18 |
|