docs(phase-14): plan selective analysis and byte cache

This commit is contained in:
curo1305
2026-06-23 14:24:43 +02:00
parent 3514fdcf3a
commit b528b51881
13 changed files with 1117 additions and 16 deletions
@@ -0,0 +1,93 @@
---
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>