# =============================================================================
# Python
# =============================================================================

# Byte-compiled / optimized
__pycache__/
*.py[cod]
*$py.class
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# uv
# `python/uv.lock` は commit するので除外しない (lock を commit する方針)
.venv/
venv/
env/
ENV/

# Type checkers / linters / test runners
.pytest_cache/
.mypy_cache/
.pyright/
.ruff_cache/
.tox/
.nox/
.cache/
.hypothesis/

# Coverage
.coverage
.coverage.*
htmlcov/
coverage.xml
*.cover

# Jupyter / IPython
.ipynb_checkpoints
profile_default/
ipython_config.py

# pyenv
.python-version

# =============================================================================
# C# / .NET
# =============================================================================

# Build outputs
[Bb]in/
[Oo]bj/
[Oo]ut/
[Ll]og/
[Ll]ogs/
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/

# Visual Studio / Rider / VSCode user state
.vs/
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.idea/
*.user
*.suo
*.userprefs
*.userosscache
*.sln.docstates

# .NET tooling
.dotnet/
project.lock.json
project.fragment.lock.json
artifacts/

# Test results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
*.VisualState.xml
TestResult.xml
nunit-*.xml

# Roslyn cache / build artifacts
*.tlog
*.lastbuildstate
*.cache
*.ilk
*.iobj
*.ipdb
*.meta
*_i.c
*_p.c
*_h.h

# NuGet
*.nupkg
*.snupkg
**/[Pp]ackages/*
!**/[Pp]ackages/build/
*.nuget.props
*.nuget.targets

# Compiled binaries (mod artifacts deploy 経由で配布する想定)
*.dll
*.pdb
*.exe

# =============================================================================
# Protobuf
# =============================================================================

# Python 側の protoc 出力は意図的に commit する (plan §3.C)
# `python/src/resoio/_generated/` は ignore せず
#
# C# 側は csproj の <Protobuf> ItemGroup から build 時生成される (obj/ に出る) ため
# obj/ の ignore でカバーされる

# =============================================================================
# Environment / secrets
# =============================================================================

.env
.env.*
!.env.example

# =============================================================================
# OS noise
# =============================================================================

.DS_Store
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

# =============================================================================
# Local artifacts
# =============================================================================

*.log
*.tmp
*.swp
*~

# =============================================================================
# Docs site (mkdocs)
# =============================================================================

# `just docs-build` の出力先 (repo root の mkdocs.yml の既定 site_dir)。
site/

# =============================================================================
# Host-side scripts venv
# =============================================================================

# `just host-agent` が起動時に `uv venv` で作る host 専用 venv。
# 既に `.venv/` で吸えるが、scripts/ 配下の意図を明示するため明記する。
scripts/.venv/

# =============================================================================
# E2E artifacts
# =============================================================================

# `just e2e-test camera_stream` 等が録画した MP4 / PNG の出力先。
# 動画は数 MB/run で commit する意味がないため ignore。
python/tests/e2e/e2e_artifacts/

# `just e2e-camera-v2` / `just resonite-screenshot` の出力先。
# repo-relative path で書き出すため repo root 直下に `tmp/` を作る。
tmp/

# =============================================================================
# Decompiled sources
# =============================================================================

# `just decompile` の出力先。Resonite の decompile 結果は配布物・改変対象では
# なく開発者個人の参照用なので commit しない。
decompiled/

# =============================================================================
# Gale profile
# =============================================================================

# Gale (Resonite mod manager) のカスタムプロファイル展開先。
# `just deploy-mod` の配置先 (gale/BepInEx/plugins/ResoniteIO/) も含めて
# host 側で Gale が管理するため、リポジトリには持ち込まない。
gale/

# =============================================================================
# Claude Code
# =============================================================================

# 並列 implementer が一時的に作る git worktree のルート。
.claude/worktrees/
.claude/settings.local.json
.claude/scheduled_tasks.lock

# agent memory runtime mirror (canonical tracked copy lives under memory/agents/)
.claude/agent-memory/
