# Rust
/target/
**/*.rs.bk
*.pdb
# Cargo.lock IS committed — this is an application crate, not a library.
# Committed lockfile guarantees reproducible builds across machines and CI,
# and lets `cargo audit` / `--locked` flags work without a generate step.

# Debug files
*.dSYM/
*.pdb

# Configuration and data
opencrab.toml
opencrab.json
opencrab.db
opencrab.db-shm
opencrab.db-wal
*.log

# User data directories
.opencrab/
.opencrabs/
.local/share/opencrab/
.config/opencrab/
/opencrabs

# Environment variables
.env
.env.local
.env.*.local

# Testing
/tests/fixtures/temp/
coverage/
cobertura.xml
*.profraw
*.profdata

# Documentation build
/book/
/target/doc/

# OS
.DS_Store
Thumbs.db
Desktop.ini

# Temporary files
*.tmp
*.temp
*.bak
*.backup
~*


# GitHub workflows (temporarily ignored)
.github/workflows/opencrabs-review.yml

# Release artifacts
/dist/
/releases/

# Claude Code / AI Development Files
.claude/
.codegraph/

# Workspace personal files (use docs/reference/templates/ for generic versions)
src/workspace/


# Local
whatsapp-rust/
src/patches/
src/tasks/
tasks/
~/
.opencrabs_*.json
PLAN.md
COST_ESTIMATE.md
src/plans/
*.swp
*.swo
*.backup
commands.md
cc-research.md
# modum linter local baseline (regenerable; not used by CI)
.modum-baseline.json

# Local dev binary drops (scripts/build-dev-binaries.sh)
dist/

# Tauri/Cargo build output for the desktop GUI. Never committed: it is
# ~24k files and ~940k lines of regenerable artifacts, and a stray
# `git add -A` sweeps every one of them into whatever commit is open.
desktop/src-tauri/target/
desktop/dist/

# The rest of desktop/ too, for now. The two rules above left the directory
# itself untracked rather than ignored, so it still showed up as a pending
# addition — 12GB of it — and a `git add -A` would still take it. The GUI
# lives on the `desktop-gui` branch, which is where its sources are tracked;
# ignoring the path here does not affect files already tracked there. Drop
# this line when the branch lands on main.
desktop/
