88 lines
3.7 KiB
Markdown
88 lines
3.7 KiB
Markdown
---
|
|
phase: "14"
|
|
plan: "08"
|
|
type: execute
|
|
wave: 7
|
|
depends_on:
|
|
- "14-03"
|
|
- "14-07"
|
|
files_modified:
|
|
- frontend/src/views/SettingsView.vue
|
|
- frontend/src/components/settings/SettingsCloudTab.vue
|
|
- frontend/src/components/settings/__tests__/SettingsCloudTab.test.js
|
|
- frontend/src/components/settings/__tests__/SettingsCloudTab.health.test.js
|
|
- frontend/src/stores/cloudConnections.js
|
|
- frontend/src/api/cloud.js
|
|
- backend/tests/test_cloud_cache.py
|
|
autonomous: true
|
|
requirements:
|
|
- ANALYZE-04
|
|
- ANALYZE-05
|
|
- CACHE-04
|
|
---
|
|
|
|
<objective>
|
|
Expose Phase 14 user settings for cache limit, progress detail, and default failure behavior in Settings, backed by the cache/settings API and tier-bound validation.
|
|
|
|
Scope fence: do not change backend cache internals except fixing issues found by Settings integration tests.
|
|
</objective>
|
|
|
|
<context>
|
|
@.planning/phases/14-selective-analysis-and-byte-cache/14-CONTEXT.md
|
|
@frontend/src/views/SettingsView.vue
|
|
@frontend/src/components/settings/SettingsCloudTab.vue
|
|
@frontend/src/stores/cloudConnections.js
|
|
@backend/api/cloud/cache.py
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Add Settings API/store wiring</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
|
|
- backend/api/cloud/cache.py
|
|
</read_first>
|
|
<action>
|
|
Add client/store methods to load and update cache/settings state. Store tier cap, current usage, preferred limit, progress detail mode, and default failure behavior. Handle validation errors without clearing existing settings.
|
|
</action>
|
|
<acceptance_criteria>
|
|
- Store keeps settings in memory and never browser-stores credentials.
|
|
- Invalid cache limit responses surface controlled messages.
|
|
- Updated progress/failure settings affect analysis queue label/control behavior.
|
|
</acceptance_criteria>
|
|
<verify><automated>cd frontend && npm run test -- cloudConnections.analysis.test.js</automated></verify>
|
|
</task>
|
|
|
|
<task type="auto">
|
|
<name>Task 2: Add Settings Cloud tab controls</name>
|
|
<files>frontend/src/components/settings/SettingsCloudTab.vue, frontend/src/components/settings/__tests__/SettingsCloudTab.test.js, frontend/src/components/settings/__tests__/SettingsCloudTab.health.test.js</files>
|
|
<read_first>
|
|
- frontend/src/components/settings/SettingsCloudTab.vue
|
|
- frontend/src/components/settings/__tests__/SettingsCloudTab.test.js
|
|
</read_first>
|
|
<action>
|
|
Add compact controls for cache limit up to tier maximum, simplified vs detailed analysis progress, and pause-batch vs continue-item failure behavior. Keep the existing connection health/test/reconnect UX intact. Use form controls appropriate to settings: slider/number for bytes, segmented/select controls for modes, and clear validation text.
|
|
</action>
|
|
<acceptance_criteria>
|
|
- Settings fit existing Cloud tab layout without nested cards.
|
|
- Existing health/reconnect tests still pass.
|
|
- Accessibility labels identify each control.
|
|
- No visible explanatory tutorial copy is added beyond concise labels and validation messages.
|
|
</acceptance_criteria>
|
|
<verify><automated>cd frontend && npm run test -- SettingsCloudTab.test.js SettingsCloudTab.health.test.js</automated></verify>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
1. `cd frontend && npm run test -- SettingsCloudTab.test.js SettingsCloudTab.health.test.js cloudConnections.analysis.test.js`
|
|
2. `cd backend && pytest -q tests/test_cloud_cache.py -k "settings"`
|
|
3. Render Settings at mobile and desktop widths if a dev server is available.
|
|
</verification>
|
|
|
|
<output>Create `.planning/phases/14-selective-analysis-and-byte-cache/14-08-SUMMARY.md` when complete.</output>
|
|
|