.DS_Store
/config.toml
/config.toml.bak
/storage/
/data/
/.env
/.idea/
/app/services/__pycache__
/app/__pycache__/
/app/config/__pycache__/
/app/models/__pycache__/
/app/utils/__pycache__/
/*/__pycache__/*
.vscode
/**/.streamlit
__pycache__
logs/

node_modules
# VuePress 默认临时文件目录
/sites/docs/.vuepress/.temp
# VuePress 默认缓存目录
/sites/docs/.vuepress/.cache
# VuePress 默认构建生成的静态文件目录
/sites/docs/.vuepress/dist
# 模型目录
/models/
./models/*

venv/
.venv

# Debug and test files
CLAUDE.md
debug/
debug_*.py
test_*.py
!test/services/test_*.py
!test/**/*.py
!packages/**/test_*.py
!packages/**/tests/**/*.py
!engines/**/Tests/**
streamlit.log
.coverage
coverage.xml
htmlcov/
.codegraph
/docs/superpowers
.understand-anything

# Podcli is installed by scripts/install_podcli.sh at a pinned sha and patched
# in place. It is a separate AGPL-3.0-only program we invoke, not part of this
# tree — and it carries its own venv and node_modules.
vendor/
.tmp-harness/

# Ad-hoc "just in case" snapshots next to a live file. Git history is the rollback.
*.rollback-*

# The desktop build's own outputs. The frozen Python environment, the vendored
# wheels and the static ffmpeg pair are built by
# scripts/build_desktop_python.py (they are hundreds of megabytes and are
# reproducible from uv.lock); the Rust target directory and the no-updater
# config overlay belong to a build, not to the repository.
/src-tauri/target/
/src-tauri/resources/desktop-python/
/src-tauri/no-updater.conf.json
