# ===== Python =====
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.venv/
venv/
env/
.python-version
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
dist/
build/
*.egg-info/

# ===== uv =====
.uv/

# ===== Node / pnpm =====
node_modules/
.pnpm-store/
.pnpm-debug.log*
.npm/
*.log

# ===== Vite =====
frontend/dist/
frontend/.vite/
backend/static/
backend/app/static/

# ===== IDE =====
.idea/
.vscode/
*.swp
*.swo
.DS_Store

# ===== Project data (Parquet/DuckDB) =====
backend/data/**
!backend/data/.gitkeep
data/**
!data/.gitkeep
# 扩展数据: 全部纳入版本控制(含 config.json 表结构 + part.parquet 数据文件)
# 注意 gitignore 否定规则特性: 需先放行目录才能放行内部文件
!data/ext_data/
!data/ext_data/**

# ===== Secrets =====
.env
.env.local
.env.*.local
backend/.env

# ===== User-derived prompts =====
backend/user_prompts/

# ===== Browser automation =====
.playwright-mcp/

# ===== AI IDE =====
.trae/

# ===== TypeScript build cache =====
frontend/tsconfig*.tsbuildinfo

# ===== Data files =====
*.xlsx

# ===== Private deploy / 服务器私有信息(不开源) =====
DEPLOY.md
deploy.sh

# ===== 内部设计文档(不开源) =====
DESIGN.md
DESIGN-proposal.md
CLAUDE.md

# ===== 私人脚本(不开源) =====
docs/zhihu/

# ===== 用户自定义策略(私有,不开源) =====
data/strategies/custom/

# ===== 临时 / 调试产物 =====
backend._recheck*.py
backend/_verify*.py
backend/_desktop_run.log

# ===== 打包产物 (本地构建的安装包,不入库) =====
backend/TickFlowStockPanel-win-x64.zip
backend/TickFlowStockPanel-macos.zip
backend/TickFlowStockPanel-linux-x64.tar.gz
packaging/Output/
packaging/icon_preview.png
packaging/designs/
packaging/install.log
packaging/installed_run.log
# macOS 本地构建产物 (PyInstaller .app 与 create-dmg 产出的 .dmg,根目录产出)
TickFlowStockPanel.app/
TickFlowStockPanel-macos*.dmg
TickFlowStockPanel-macos*.zip
