# Rust
target/
*.rs.bk

# Cargo.lock is committed intentionally — Arbor is a binary project.
# See: https://doc.rust-lang.org/cargo/faq.html#why-have-cargolock-in-version-control
crates/Cargo.lock

# Flutter
visualizer/.dart_tool/
visualizer/build/
visualizer/.flutter-plugins
visualizer/.flutter-plugins-dependencies
visualizer/.packages
visualizer/pubspec.lock
.dart_tool/

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

# OS
.DS_Store
Thumbs.db

# Arbor
.arbor/
arbor-graph.json

# Build artifacts
*.exe
*.dll
*.so
*.dylib

# Debug artifacts
log_dump.txt
debug_wrapper.bat
err_check.txt
out_check.txt
crates/err.txt
crates/input.json
crates/log.txt
crates/out.txt
crates/output.log
crates/response.json
crates/stderr.txt
crates/stdout.txt
crates/test_output.txt
crates/clippy_output*.txt
crates/error.txt
visualizer/analysis.txt

# Release artifacts (upload to GitHub Releases, not the repo)
*.zip
releases/*.tar.gz
releases/v*/
arbor-windows-*/

# Media recordings (keep source assets, not large recordings)
media/*.mp4
media/*.mov

# Security — never commit
.env
.env.*
*.pem
*.key
secrets.json
credentials.json

# Node.js (VS Code extension)
node_modules/
extensions/*/node_modules/
extensions/*/out/
*.vsix

# Personal / ephemeral files
v1_release_checklist.md
HANDOFF_FOR_NEW_LAPTOP.md
/package-lock.json
/arbor-logo.png

# MCP Publisher (never commit)
.mcpregistry_*
mcp-publisher.exe
server.json
.servers-fork/

# Planning logs
*log.md

# Private startup scaffolding (Lattice - personal knowledge graph starter)
lattice/
.worktrees/
