# --- Rust / Cargo ---
/target/
**/*.rs.bk
Cargo.lock.bak

# Keep Cargo.lock tracked once a real build exists in Phase 1.
# Until then, an empty Cargo.toml exists and no lockfile is produced.

# --- Slint build artifacts ---
ui/*.slint.bak
*.slint~

# --- Windows / IDE / OS ---
.vs/
.vscode/
.idea/
*.user
*.suo
*.sdf
*.opensdf
*.cachefile
*.VC.db
*.VC.opendb

# OS junk
Thumbs.db
ehthumbs.db
ehthumbs_vista.db
.DS_Store
Desktop.ini
$RECYCLE.BIN/

# --- Local config / state ---
# The runtime config + state files live under %APPDATA%/WindowsGotify/
# and are NEVER inside the repo. The list below is just a defensive net.
*.local.json
*.local.toml
config.local.*
state.local.*

# --- Logs ---
*.log
logs/

# --- Secrets ---
.env
.env.*
*.pem
*.key

# --- UPX / packing artifacts ---
*.upx
packed/

# --- Release staging ---
# `release/` is a scratch dir we copy the built EXE into before
# pushing it to Gitea's release page. We gitignore the whole dir
# (including the *named* binaries) so we never accidentally commit
# a 10 MB blob — the canonical artifact lives on Gitea, not in
# the repo. (AGENTS.md §56 "可以接受 release 里没二进制".)
/release/