helixnow/deep-student/deep-student-cloud-sync-e2e

Claude Code and agent skill by helixnow/deep-student

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Run real, UI-driven Deep Student cloud sync E2E tests. Use when Codex needs to validate WebDAV/cloud sync, backup, restore, credentials, conflict behavior, multi-device synchronization, or sync regressions through real Tauri UI operations followed by SQLite/WebDAV/log verification.

Install

npx vskill@latest install helixnow/deep-student/deep-student-cloud-sync-e2e

SKILL.md

Deep Student Cloud Sync E2E

Use this skill for realistic cloud sync testing of Deep Student. The entry point must be real Tauri UI actions through Computer Use; shell, SQLite, and WebDAV checks are assertions after UI actions.

Required Shape

  1. Start or claim isolated Tauri instances with tauri-lab.
  2. Start a local Docker WebDAV fixture for cloud storage.
  3. Configure sync through the app UI.
  4. Trigger sync, backup, restore, and retry flows through UI buttons.
  5. Verify results with SQLite, WebDAV file trees, metrics, and logs.
  6. Record failures with exact UI steps and state evidence.

Parallel Agent Shape

For high-throughput real testing, run five subagents over a shared tauri-lab pool and shared local WebDAV fixture:

  • Create 10-15 app instances. Prefer 15 when each agent needs a writer, reader, and recovery/restore target.
  • Give each subagent a distinct owner id and 2-3 leased instances.
  • Each subagent must use only its leased target.app paths with Computer Use.
  • Subagents must not call computer-use list to choose targets. They may inspect lease list for verification, but target selection comes only from the parent assignment.
  • Subagents should run agent targets --owner ... after receiving the assignment, then agent verify <instance> --owner ... --app ... --require-running --json before the first Computer Use action. A failed verify aborts that sub-run.
  • Partition WebDAV roots by scenario or device group so agents do not overwrite each other's remote state unless the scenario is explicitly a conflict test.
  • Subagents must not stop, restart, remove, or reconfigure a shared WebDAV fixture. Interruption tests must use a bad endpoint/credentials, or the parent must allocate an exclusive fixture for that agent.
  • Every subagent reports: leased instance ids, UI steps performed, assertions run, WebDAV tree deltas, evidence snapshot paths, failures, and cleanup status.
  • The parent must not use a short active timeout for full cloud-sync runs. Real UI setup, multi-device sync, backup/restore, and diagnostics can take about an hour. After spawning subagents, the parent should sleep or passively poll, wait for final reports, and avoid closing agents unless they explicitly fail, complete, or the user asks to stop.

Recommended five-way split:

AgentDevicesScenario
A2fresh config, connection test, upload-only, missing password recovery
B2download-only hydration from preseeded WebDAV state
C3bidirectional sync, conflict count, concurrent edits
D3cloud backup, backup history, restore pending slot, restart activation
E2-3interruption/retry, stale config cleanup, post-restore sync sanity

The parent agent owns fixture startup, pool startup, lease assignment, final aggregation, and final cleanup.

Parent waiting policy:

  • Give long-running subagents enough time to finish their assigned real UI workflows.
  • Do not interpret no report within 30/60/180 seconds as a hang.
  • Passive checks are allowed: pool status, lease audit, WebDAV status/tree snapshots, and logs/evidence reads.
  • Active intervention is allowed only after an explicit subagent failure/completion, user instruction, or hard evidence that infrastructure is gone, such as a stopped app process or stopped fixture.
  • Do not operate a subagent's assigned app window from the parent while the subagent is still running.

Anti-collision rule: app windows are never shared. Even conflict tests share cloud state only through WebDAV prefixes; each actor still uses its own leased Tauri instance.

Instance Setup

Prefer a pool when simulating multiple devices:

sh
cd <deep-student-repo>
npm run tauri-lab -- service start --json
npm run tauri-lab -- project register deep-student \
--cwd "$PWD" \
--source-app "src-tauri/target/debug/bundle/macos/Deep Student.app" \
--json
npm run tauri-lab -- pool create deep-student sync-e2e --count 4 --json
npm run tauri-lab -- pool start sync-e2e --concurrency 2 --wait --metrics --timeout 45 --json

For five subagents:

sh
npm run tauri-lab -- pool create deep-student sync-e2e-15 --count 15 --json
npm run tauri-lab -- pool start sync-e2e-15 --concurrency 4 --wait --metrics --timeout 90 --json

Start the WebDAV fixture:

sh
npm run tauri-lab -- fixture webdav start sync-webdav \
--username ds-test \
--password ds-pass \
--root deep-student-e2e \
--json
npm run tauri-lab -- fixture webdav credentials sync-webdav --json

Use the fixture endpoint, username, password, and root only by typing them through the real cloud settings UI.

For repeated regression runs, prefer a tauri-lab data image after one real UI configuration pass:

sh
npm run tauri-lab -- image create sync-webdav-configured \
--from-instance sync-e2e-01 \
--scope home \
--description "WebDAV configured through real UI" \
--json
npm run tauri-lab -- pool create deep-student sync-e2e-15 \
--count 15 \
--image sync-webdav-configured \
--json

The image is allowed only after the original configuration was created through real UI operations. Subsequent tests may start from the image, then perform the scenario-specific sync/backup/restore actions through UI and verify with SQLite/WebDAV/logs.

For a fast, broad cloud-sync smoke, prefer the newest wide coverage image when it is available locally. The current strongest image is sync-wide-chaos-deep-coverage-seed-0531:

sh
npm run tauri-lab -- image inspect sync-wide-chaos-deep-coverage-seed-0531 --json
npm run dstu-test:inspect-wide-sync -- \
--image sync-wide-chaos-deep-coverage-seed-0531 \
--mode seed
npm run tauri-lab -- instance create deep-student sync-wide-writer \
--image sync-wide-chaos-deep-coverage-seed-0531 \
--device-id sync-wide-writer \
--json

The inspect command must pass before using the image as the canonical broad regression seed. It checks foreign keys, blob files, blob references, question-set breadth, todo parent links, tombstones, same-record multi-change chains, composite replay paths, business unique-key reuse after delete, JSON update chains, chat attachments/resources, mistakes review data, and LLM status variety.

The previous stable image sync-wide-stable-coverage-seed-0531 is still useful for comparing historical 441-change runs. Use the deep image first when the goal is maximum schema coverage in one pass.

Drive this scenario through real UI:

  1. Configure WebDAV on the seeded writer, then click Upload.
  2. Verify the remote package contains broad VFS/chat/mistakes/LLM rows and at

least one blobs row.

  1. Create a clean reader with no image, configure the same WebDAV root through

UI, then click Download.

  1. Assert no files -> blobs orphan rows, no foreign_key_check rows, and no

unresolved __sync_conflicts.

  1. Click Download again on the same reader and verify backend logs show

total=0.

  1. Upload the reader's small local delta, then download from a second clean

reader to cover two-package hydration without replay amplification.

  1. Run hydrated audit on downloaded readers:
sh
npm run dstu-test:inspect-wide-sync -- \
--instance <reader-instance-id> \
--mode hydrated

For the deep image, the 2026-05-31 baseline was writer upload 569, first reader download total=435, deduped=134, conflicts=0, repeated download total=0, 4 blobs hydrated, 2 workspace DBs hydrated, and hydrated audit PASS.

Claim an instance for each agent:

sh
npm run tauri-lab -- agent checkout sync-e2e \
--owner codex-sync-agent-a \
--purpose "cloud sync upload/download" \
--ttl 7200 \
--json

Use the returned target.app path in Computer Use.

When assigning multiple devices to one subagent, repeat checkout with the same owner and role-specific purpose. Keep leases active until that subagent has captured evidence, then release or let the parent clean all instances after aggregation.

Subagent preflight:

sh
npm run tauri-lab -- agent targets --owner codex-sync-agent-a --json
npm run tauri-lab -- agent verify sync-e2e-01 \
--owner codex-sync-agent-a \
--app "<exact target.app path returned by tauri-lab>" \
--require-running \
--json

Parent final audit and cleanup:

sh
npm run tauri-lab -- lease audit --json
npm run tauri-lab -- lease clear --pool sync-e2e-15 --json

What To Verify

  • Configured provider/root/username/password behavior.
  • Missing credential state: safe config present but secure credential absent must not look healthy.
  • Upload-only: remote change files and manifest appear; local pending changes clear.
  • Download-only: remote changes hydrate local DB; local-only pending changes remain pending.
  • Bidirectional sync: both upload and download effects occur.
  • Cloud backup: remote ZIP appears and UI history updates.
  • Cloud restore: inactive slot becomes pending, then restart switches active slot.
  • Post-restore sync: credentials and device identity remain correct.
  • Conflict reporting: UI conflict count must match actionable conflict rows.

Assertions

Prefer tauri-lab assertions after UI actions:

sh
npm run tauri-lab -- assert sqlite sync-e2e-01 \
--slot active \
--db chat_v2 \
--query "select count(*) from chat_v2_sessions;" \
--equals 6 \
--json
npm run tauri-lab -- assert credential sync-e2e-01 --cloud-storage present --json
npm run tauri-lab -- assert webdav-tree sync-webdav \
--contains "data_governance/manifests/e2e-device-a.json" \
--json

Capture evidence after each major cloud sync phase and before cleanup:

sh
npm run tauri-lab -- evidence snapshot sync-e2e-01 --tail 300 --json
npm run tauri-lab -- fixture webdav tree sync-webdav --json

Read logs when behavior is surprising:

sh
npm run tauri-lab -- logs sync-e2e-01 --kind backend --tail 200
npm run tauri-lab -- logs sync-e2e-01 --kind frontend --tail 200
npm run tauri-lab -- logs sync-e2e-01 --kind stderr --tail 200

Known Product/Test Lessons

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
259
Repository forks
51
7-day trend score
28

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 3 Sep 2026, 2 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/helixnow/deep-student/deep-student-cloud-sync-e2e/badge)](https://verified-skill.com/skills/helixnow/deep-student/deep-student-cloud-sync-e2e)

Something wrong with this skill or its page? Tell us.