# Virtual environments
.venv*/
venv/

# Python
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/

# Databases
*.db
*.db-shm
*.db-wal

# Local memory data
memories/

# Research (kept locally, not in repo)
/charts/
experiment_results/
longmemeval_benchmark/
v3_benchmark/
research/
EverMemOS/
lancedb_data/
m1_qdrant_data/
v2_qdrant_data/
m1_results.json
synthetic_*.json

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

# OS
.DS_Store
Thumbs.db

# Secrets & credentials
.env
*.env
.env.*
config.json
*.pem
*.key
*_key
*_secret
credentials.*
secrets.*
benchmark_configuration_journal.md
benchmarks/locomo/scripts/bench_pro_run*.py

# TrueMemory user data (contains real memories / PII)
~/.truememory/
*.db-journal

# Dead code (not imported anywhere — verified 2026-04-06)
truememory/temporal_v2.py
truememory/rich_extraction.py
truememory/episodes.py

# Planning docs (not part of the package)
NAME_CANDIDATES.md
ISSUE_TRIAGE.md
SECURITY_REVIEW_PROMPT.md

# Duplicate template
/CLAUDE_TEMPLATE.md

# Chart HTML sources (PNGs are committed; HTMLs are generation source only)
assets/charts/*.html

# Untracked benchmark scaffolds (no results yet)
benchmarks/convomem/
benchmarks/latency/
# benchmarks/longmemeval/ — now tracked

# Salience sweep research artifacts (validated the v23 decision; not production)
benchmarks/gate_eval/salience_sweep.py
benchmarks/gate_eval/run_salience_sweep.py
benchmarks/gate_eval/run_combination_sweep.py
benchmarks/gate_eval/results/salience_50_sweep.json
benchmarks/gate_eval/results/salience_50_raw_scores.json
benchmarks/gate_eval/results/salience_combination_sweep.json

# Test runner cache
.pytest_cache/
.ruff_cache/
.coverage
htmlcov/

# Internal working directories — audit scaffolding, paper drafts, bench archives, PR diffs.
# NEVER commit; handled by sdist excludes in pyproject.toml.
_working/
_pr_diffs/

# Claude Code tool state (scheduled tasks, telemetry, etc.) — never commit.
.claude/
README_Sunday 3rd May 2026 at 5:48 AM.md
README_v2.md
README_v3.md

# Unreferenced chart PNGs (kept locally, not in repo)
assets/charts/cost-per-answer.png
assets/charts/hardware-matrix.png
assets/charts/latency-comparison.png
assets/charts/architecture.png
assets/charts/hero-banner-white.png
assets/charts/category-radar.png

# Gate eval research artifacts (kept locally)
benchmarks/gate_eval/results/category_feature_analysis.json
benchmarks/gate_eval/results/encoding_salience_variants.json
benchmarks/gate_eval/results/l3_baseline_on_gatelocomo.json
benchmarks/gate_eval/run_weight_threshold_sweep.py
benchmarks/locomo/results/truememory_pro_v3_modal.json
benchmarks/locomo/scripts/modal_benchmark.py
benchmarks/longmemeval/data/*.json

# M-33: stray DB files from a Connection object stringified into a path
# (e.g. `<sqlite3.Connection object at 0x10abc>`). Now guarded in code; ignore
# any that pre-date the fix so they can never be committed.
<sqlite3.Connection object*

# DB backups + migration artifacts — never commit
*.db.backup-*
*.db.backup-pre-migration-*
truememory.db.backup-*

# Build/loop scratch docs — local only, never commit
BUILD_PROMPT*.md
DRAIN_REPORT*.md

# M-96: orphan dashboard build (17MB node_modules) — never tracked, never commit
truememory/dashboard/
