# Python
__pycache__/
.ruff_cache/
*.py[cod]
*$py.class
*.so
.Python
venv/
.venv/
ENV/
env/
# Tab 工作区旧路径残迹（名单见 tabpilot/src-tauri/src/infra/workspace_layout.rs）
.tabai-video
.tabai/
.ai-video-layout-migration.json
openclaw-lark/
*.egg-info/
OpenViking/
CoPaw/
.cursor
oapi-sdk-python/
oapi-sdk-go/
backend/openviking_workspace/
backend/.workspace/
backend/libs/.workspace/
tmp_markitdown/
dist/
build/
!tab-lark-cli/internal/build/
!tab-lark-cli/internal/build/**

# Environment
.env
.env.local
.env.*.local
backend/.env.local
!/cloudflare/openai-register/.env
!/tabpilot/.env

# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

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

# macOS
.DS_Store
.AppleDouble
.LSOverride

# Logs
logs/
*.log

# Testing
.coverage
htmlcov/
.pytest_cache/
.mypy_cache/

# Build outputs
*.egg
*.whl

# Data (embedding cache, etc.)
backend/data/

# Reference sources
agent-browser/

# Tab
.target*/
.cargo-target*/
tabpilot/venv/
tabpilot/src-tauri/target/
tabpilot/node_modules/
tabpilot/dist/
tabpilot/__pycache__/
tabpilot/pilot/**/__pycache__/
docs/aily/home/workspace/artifacts/home_directory_backup.tar.gz

# KC-Chat 运行时产物（插件自动生成，请勿入库）
.cursor/kc-mcp/
.cursor/kc-mcp-messages/
.cursor/kc-chat-exports/
# tc-chat-managed: begin
.cursor/mcp.json
.cursor/tc-mcp/
.cursor/tc-mcp-messages/
.cursor/tc-chat-exports/
.cursor/.tc-memory/
# tc-chat-managed: end

videos/

.tabpilot/
# 旧原生剪辑目录（打开时静默迁到 .tabapp/edit/）
.tabedit/

# Tab 工程枢纽（路径名单与 workspace_layout.rs 同源）：
# `.tabapp/` 目录入库；按类型忽略控制面与大生成物；memory / rules / canvases 可跟踪
.tabapp/edit/
.tabapp/ai-video/tabai/
.tabapp/ai-video/assets/
.tabapp/ai-video/exports/
.tabapp/plugin-drafts/
.tabapp/migration-backups/

# 抖音本人登录态 cookie（含 sessionid/sid_tt/sid_guard 等本人登录态，切勿入库）
docs/douyin/cookie.txt
docs/douyin/
