Files
kite/.planning/phases/13-virtual-local-cloud-operations/13-VALIDATION.md
T
curo1305andClaude Sonnet 4.6 2f00e122d3 docs(phase-13): update VALIDATION.md — all tasks green, wave-0 complete
Nyquist audit 2026-06-23: 3 gaps found and resolved (open/create-folder/rename
audit writes). All 10 tasks marked green, wave_0_complete: true, status: complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:17:29 +02:00

6.7 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created, audited
phase slug status nyquist_compliant wave_0_complete created audited
13 virtual-local-cloud-operations complete true true 2026-06-22 2026-06-23

Phase 13 — Validation Strategy

Per-phase validation contract for feedback sampling during execution.

Test Infrastructure

Property Value
Framework Backend: pytest 9.0.3 + pytest-asyncio 1.4.0; frontend: Vitest 4.1.7
Config file backend/pytest.ini; frontend test script in frontend/package.json
Quick run command docker compose run --rm backend pytest -v tests/test_cloud.py tests/test_cloud_security.py -x plus cd frontend && npm run test -- src/views/__tests__/CloudFolderView.test.js src/views/__tests__/CloudFolderRenderedFlow.test.js src/components/storage/__tests__/StorageBrowser.capabilities.test.js
Full suite command docker compose run --rm backend pytest -v plus cd frontend && npm run test
Estimated runtime Targeted suites under 120 seconds; full-suite duration measured during execution

Sampling Rate

  • After every task commit: Run the targeted backend or frontend suite named by the task.
  • After every plan wave: Run docker compose run --rm backend pytest -v tests/test_cloud.py tests/test_cloud_backends.py tests/test_cloud_provider_contract.py tests/test_cloud_security.py tests/test_cloud_items.py and cd frontend && npm run test.
  • Before $gsd-verify-work: Full backend and frontend suites must be green, followed by the security/dependency gates required by AGENTS.md.
  • Max feedback latency: 120 seconds for targeted verification; split commands when a target exceeds this budget.

Per-Task Verification Map

Task ID Plan Wave Requirement Threat Ref Secure Behavior Test Type Automated Command File Exists Status
13-W0-01 01/03 0 CLOUD-02..07, CLOUD-09 T-13-01..08 Provider-neutral results contain no credentials or raw provider URLs contract/integration docker compose run --rm backend pytest -v tests/test_cloud_mutations.py green
13-W0-02 01/04 0 CONN-01..03 T-13-04, T-13-08 Reconnect persists refreshed credentials, invalidates caches, and preserves metadata integration/security docker compose run --rm backend pytest -v tests/test_cloud_reconnect.py tests/test_cloud_security.py green
13-W0-03 01/06/09 0 CLOUD-09 T-13-07 Audit rows remain metadata-only for every successful mutation integration docker compose run --rm backend pytest -v tests/test_cloud_audit.py green
13-W0-04 02/07 0 CLOUD-03 T-13-06 Queue pauses on conflict/error and never silently overwrites component cd frontend && npm run test -- src/components/storage/__tests__/StorageBrowser.cloud-queue.test.js green
13-W0-05 02/07 0 CLOUD-02 T-13-02 Open/preview/download remains DocuVault-authorized rendered flow cd frontend && npm run test -- src/views/__tests__/CloudFolderOpenPreview.test.js green
13-W0-06 02/10 0 CONN-01..03 T-13-08 UI distinguishes transient outage from reauthentication and destructive disconnect component cd frontend && npm run test -- src/components/settings/__tests__/SettingsCloudTab.health.test.js green
13-REQ-01 03/04 TBD CONN-01..03 T-13-01, T-13-04, T-13-08 Connection operations are owner-scoped and credential-free integration/component docker compose run --rm backend pytest -v tests/test_cloud.py tests/test_cloud_reconnect.py tests/test_cloud_security.py -k "connect or disconnect or reconnect or health or credential" green
13-REQ-02 04 TBD CLOUD-02 T-13-01, T-13-02 Content endpoints reject foreign ownership and never expose provider links integration/security/rendered docker compose run --rm backend pytest -v tests/test_cloud_mutations.py tests/test_cloud_security.py -k "open or preview or content" green
13-REQ-03 05/06/08/09 TBD CLOUD-03..07 T-13-01, T-13-03, T-13-05, T-13-06 Mutations enforce stale/conflict/cross-connection rules contract/integration/component docker compose run --rm backend pytest -v tests/test_cloud_mutations.py tests/test_cloud_security.py -k "upload or create or rename or move or delete" green
13-REQ-04 06/09/nyquist TBD CLOUD-09 T-13-07 Reconciliation/freshness update and metadata-only audit occur before success returns integration/rendered docker compose run --rm backend pytest -v tests/test_cloud_audit.py tests/test_cloud_items.py green

Status: pending · green · red · ⚠️ flaky

Wave 0 Requirements

  • backend/tests/test_cloud_mutations.py — provider-neutral create/rename/move/delete/upload/open/preview contracts.
  • backend/tests/test_cloud_reconnect.py — connection-ID reconnect, token persistence, cache invalidation, and metadata retention.
  • backend/tests/test_cloud_audit.py — metadata-only audit assertions for every successful mutation (open, upload, create-folder, rename, move, delete; all 11 tests pass, 0 xfail).
  • frontend/src/components/storage/__tests__/StorageBrowser.cloud-queue.test.js — sequential queue, conflict/error pause, resume, skip, and cancel-all.
  • frontend/src/views/__tests__/CloudFolderOpenPreview.test.js — authorized open/preview/download behavior through the shared browser.
  • frontend/src/components/settings/__tests__/SettingsCloudTab.health.test.js — Test/Reconnect controls and transient-outage versus reauth states.

Manual-Only Verifications

All phase behaviors receive automated coverage. No manual-only items.

Validation Sign-Off

  • All tasks have automated verification.
  • Sampling continuity: no three consecutive tasks without automated verification.
  • Wave 0 covers every missing test reference.
  • No watch-mode flags.
  • Targeted feedback latency remains below 120 seconds.
  • nyquist_compliant: true set in frontmatter.

Approval: 2026-06-23 — Nyquist audit complete. 3 xfail gaps (open/create-folder/rename audit writes) resolved by implementing write_audit_log calls in backend/api/cloud/operations.py. All 11 test_cloud_audit.py tests pass green. Full cloud suite: 360 backend tests pass.

Validation Audit 2026-06-23

Metric Count
Gaps found 3
Resolved 3
Escalated 0

Gaps resolved: test_open_file_writes_metadata_only_audit_row, test_create_folder_writes_metadata_only_audit_row, test_rename_success_writes_audit_row — all xfail markers removed; audit writes added to open_cloud_file, create_cloud_folder, and rename_cloud_item routes.