Files
VoiceStudio/.gitignore
T
Palash Debnathandmergetest 4e5d795832 fix(uninstall,storage): remove the saved-env leftover; count sidecar engines in disk usage (#1108)
Two recon findings from the reset work, fixed properly (whole class + tests +
docs), plus the destructive reset path is now exercised end-to-end.

1. ~/.config/omnivoice/env survived every uninstall. The app persists the
   model-cache location (and a possible HF_TOKEN) there via
   backend/core/user_env.py, but the in-app "Remove all data" (uninstall.rs),
   uninstall.sh, and uninstall.ps1 all walked past it — so a reinstall silently
   inherited the old file and redirected downloads to a maybe-deleted location.
   All three now remove it. It's the same expanduser("~/.config/omnivoice/env")
   path on every OS, so the Windows script uses %USERPROFILE%\.config\omnivoice.
   is_recognizably_ours accepts it (contains "omnivoice"); docs tables updated.

2. Disk usage measured the wrong engines dir. storage_report.default_engines_dir()
   returned backend/engines (built-in engine *modules*, no venvs), while sidecar
   installs live in DATA_DIR/engines/<id>. So a multi-GB IndexTTS-2 install was
   invisible in the engine-venv category and rolled into data/"other". Now points
   at DATA_DIR/engines and sizes the WHOLE install (venv + checkout + weights),
   with the data category claiming that subtree so it isn't double-counted.

Reset hardening: extracted purge_scopes() as a pure fs function (no AppHandle),
so the actual delete loop runs in tests against a real on-disk install tree —
"everything" wipes the install but spares the venv/foreign temp/sibling folders,
a settings reset keeps content+config+models, and a poisoned data_dir="$HOME"
deletes NOTHING. This is the live drive-through of the destructive path, minus
the GUI.

Also: gitignore the node_modules symlink form (the directory rule node_modules/
never matched a worktree symlink, so it kept slipping into commits).

Tests: Rust 78 (6 new), storage_report 20 (2 new incl. once-not-twice count +
default-dir guard), frontend 1207, i18n probe green, format+lint clean.

Co-authored-by: mergetest <nizam4103@gmail.com>
2026-07-12 15:39:07 +05:30

138 lines
7.3 KiB
Plaintext

# ─────────────────────────────────────────────────────────────────────────
# Python
# ─────────────────────────────────────────────────────────────────────────
__pycache__/
*.pyc
*.pyo
*.so
*.egg
*.egg-info/
.venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
dist/
build/
# ─────────────────────────────────────────────────────────────────────────
# Node / Turborepo / Tauri
# ─────────────────────────────────────────────────────────────────────────
node_modules/
node_modules
.turbo/
bun.lockb
frontend/src-tauri/target/
# ─────────────────────────────────────────────────────────────────────────
# Secrets & env
# ─────────────────────────────────────────────────────────────────────────
.env
.env.local
.env.*.local
# ─────────────────────────────────────────────────────────────────────────
# OS junk
# ─────────────────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
# ─────────────────────────────────────────────────────────────────────────
# Editor / tool caches
# ─────────────────────────────────────────────────────────────────────────
# Ignore ad-hoc Claude Code state, but allow project-bundled skills
# (CLAUDE.md invites `.claude/skills/<name>/SKILL.md`).
.claude/*
!.claude/skills/
!.claude/skills/**
/.cache*
/.tmp/
# ─────────────────────────────────────────────────────────────────────────
# Research clones — upstream repos used as reference, not shipped
# ─────────────────────────────────────────────────────────────────────────
research/
# ─────────────────────────────────────────────────────────────────────────
# Runtime data & artifacts
# (app-local state — safe to regenerate)
# ─────────────────────────────────────────────────────────────────────────
omnivoice_data/
/data/
/local/
/results/
/download
/run*
*.db
*.db-shm
*.db-wal
*.log
*.wav
# ─────────────────────────────────────────────────────────────────────────
# Frozen regression fixture (GATE-01) — explicit allow-list.
# The patterns above (omnivoice_data/, *.db, *.wav) would otherwise hide
# tests/fixtures/omnivoice_data/ from git. Phase 0 requires this fixture
# to be checked in (no LFS) so every PR's smoke matrix loads it.
#
# We only un-ignore the EXACT files the seed script produces. The backend
# creates runtime subdirs (dub_jobs/, outputs/, preview/, etc.) when the
# smoke test boots — those stay ignored.
# ─────────────────────────────────────────────────────────────────────────
!tests/fixtures/omnivoice_data/
!tests/fixtures/omnivoice_data/README.md
!tests/fixtures/omnivoice_data/omnivoice.db
!tests/fixtures/omnivoice_data/voices/
!tests/fixtures/omnivoice_data/voices/test-voice/
!tests/fixtures/omnivoice_data/voices/test-voice/profile.json
!tests/fixtures/omnivoice_data/voices/test-voice/sample.wav
# ─────────────────────────────────────────────────────────────────────────
# Bundled demo assets (synthetic, rendered by scripts/build_demos.sh).
# Ship with the installer so first-run users have working demos before any
# model weights download. *.wav above would hide these.
# ─────────────────────────────────────────────────────────────────────────
!backend/assets/samples/**/*.wav
!backend/assets/samples/*.wav
*.jsonl
demo_recording.webp
cloudflared
cloudflared.tgz
# ─────────────────────────────────────────────────────────────────────────
# Reference / experiment scratch
# ─────────────────────────────────────────────────────────────────────────
/exp*/
example.py
examples/data*
examples/download*
examples/exp*/
omnivoice.zip
frontend/src-tauri/binaries/ffmpeg
# cuDNN 8 compat libs (auto-installed by scripts/setup_cudnn.py)
cudnn8_compat/
test-results/
# Research repos (local only)
research/
!.planning/research/
!.planning/research/**
marketing.md
.coverage
/engines/
# ─────────────────────────────────────────────────────────────────────────
# Local planning tooling (Spec Kit / GSD) — not part of OmniVoice.
# NOTE: .claude/skills/omnivoice/ (the MCP skill) IS tracked — only the
# speckit-* helper skills + .specify config are ignored.
# ─────────────────────────────────────────────────────────────────────────
.specify/
.claude/skills/speckit-*/
.antigravitycli/
playwright-report/
.last-run.json
# probe — generated HTML reports
tests/probe/reports/