94 lines
4.5 KiB
Markdown
94 lines
4.5 KiB
Markdown
---
|
|
phase: "14"
|
|
plan: "07"
|
|
type: execute
|
|
wave: 6
|
|
depends_on:
|
|
- "14-04"
|
|
- "14-05"
|
|
files_modified:
|
|
- frontend/src/api/cloud.js
|
|
- frontend/src/stores/cloudConnections.js
|
|
- frontend/src/views/CloudFolderView.vue
|
|
- frontend/src/components/storage/StorageBrowser.vue
|
|
- frontend/src/components/storage/__tests__/StorageBrowser.analysis-queue.test.js
|
|
- frontend/src/stores/__tests__/cloudConnections.analysis.test.js
|
|
- frontend/src/views/__tests__/CloudFolderRenderedFlow.test.js
|
|
autonomous: true
|
|
requirements:
|
|
- ANALYZE-01
|
|
- ANALYZE-02
|
|
- ANALYZE-03
|
|
- ANALYZE-04
|
|
- ANALYZE-05
|
|
- ANALYZE-06
|
|
---
|
|
|
|
<objective>
|
|
Implement the shared-browser Phase 14 analysis experience: row action, toolbar actions, estimate dialog, aggregate progress, expandable queue, and per-item/batch controls using the backend analysis API.
|
|
|
|
Scope fence: do not build Settings controls in this plan beyond consuming already-returned settings values.
|
|
</objective>
|
|
|
|
<context>
|
|
@.planning/phases/14-selective-analysis-and-byte-cache/14-CONTEXT.md
|
|
@.planning/phases/14-selective-analysis-and-byte-cache/14-PATTERNS.md
|
|
@frontend/src/components/storage/StorageBrowser.vue
|
|
@frontend/src/views/CloudFolderView.vue
|
|
@frontend/src/stores/cloudConnections.js
|
|
@frontend/src/api/cloud.js
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Add API/store analysis queue surface</name>
|
|
<files>frontend/src/api/cloud.js, frontend/src/stores/cloudConnections.js, frontend/src/stores/__tests__/cloudConnections.analysis.test.js</files>
|
|
<read_first>
|
|
- frontend/src/api/cloud.js
|
|
- frontend/src/stores/cloudConnections.js
|
|
- frontend/src/stores/__tests__/cloudConnections.test.js
|
|
</read_first>
|
|
<action>
|
|
Add API helpers for estimate, start, list/status, cancel batch, cancel item, skip item, and retry item. Extend the store with analysis jobs, aggregate queue state, status label mapping, simplified/detailed progress mode, and failure behavior. Keep tokens in Pinia memory only and never persist queue credentials or provider refs outside route/session semantics already allowed.
|
|
</action>
|
|
<acceptance_criteria>
|
|
- Store translates backend statuses in one place.
|
|
- API helpers use connection UUID and opaque provider item ids.
|
|
- Tests cover current/already-indexed, failed, cancelled, retry, and aggregate states.
|
|
</acceptance_criteria>
|
|
<verify><automated>cd frontend && npm run test -- cloudConnections.analysis.test.js</automated></verify>
|
|
</task>
|
|
|
|
<task type="auto">
|
|
<name>Task 2: Extend StorageBrowser and CloudFolderView</name>
|
|
<files>frontend/src/components/storage/StorageBrowser.vue, frontend/src/views/CloudFolderView.vue, frontend/src/components/storage/__tests__/StorageBrowser.analysis-queue.test.js, frontend/src/views/__tests__/CloudFolderRenderedFlow.test.js</files>
|
|
<read_first>
|
|
- frontend/src/components/storage/StorageBrowser.vue
|
|
- frontend/src/views/CloudFolderView.vue
|
|
- frontend/src/components/storage/__tests__/StorageBrowser.cloud-queue.test.js
|
|
- frontend/src/views/__tests__/CloudFolderRenderedFlow.test.js
|
|
</read_first>
|
|
<action>
|
|
Add file-row analyze action, toolbar actions for selected items/current folder/current connection, folder current-only vs recursive prompt, estimate review dialog, aggregate analysis progress, expandable item queue, retry/skip/cancel controls, and cancel-all. `StorageBrowser` emits actions; `CloudFolderView` handles API/store calls and refresh behavior. Use icons/tooltips consistent with existing AppIcon patterns and keep text compact enough for mobile.
|
|
</action>
|
|
<acceptance_criteria>
|
|
- No parallel file grid or cloud-only browser component is introduced.
|
|
- Individual file, multi-select, folder, and connection analysis can be initiated.
|
|
- Whole connection and thresholded large scopes show estimate before start.
|
|
- Aggregate and per-item statuses render with accessible controls.
|
|
</acceptance_criteria>
|
|
<verify><automated>cd frontend && npm run test -- StorageBrowser.analysis-queue.test.js CloudFolderRenderedFlow.test.js</automated></verify>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
1. `cd frontend && npm run test -- StorageBrowser.analysis-queue.test.js cloudConnections.analysis.test.js CloudFolderRenderedFlow.test.js`
|
|
2. `rg "analysis" frontend/src/components/storage frontend/src/views/CloudFolderView.vue frontend/src/stores/cloudConnections.js`
|
|
3. Rendered smoke check in browser if the dev server is available.
|
|
</verification>
|
|
|
|
<output>Create `.planning/phases/14-selective-analysis-and-byte-cache/14-07-SUMMARY.md` when complete.</output>
|
|
|