# mempalace local index — do not commit
.mempalace/
mempalace.db
*.chroma/

# OS / editor cruft
.DS_Store
Thumbs.db
*.swp
*~
.idea/
.vscode/

# secrets
.env
.env.*
!.env.example

# MemPalace per-project files (issue #185)
mempalace.yaml
entities.json

# Python bytecode caches
__pycache__/
*.pyc
*.pyo

# Subagent worktree harness
.claude/worktrees/

# ScheduleWakeup runtime lock (Claude Code Skill scheduled-tasks)
.claude/scheduled_tasks.lock

# UI build sandbox — output of the auto-refresh hook
# (tools/ui-build.sh; see wiki/brain/adrs/ui-auto-refresh-hook.md).
# Kept local only; ui/public/ is the committed artefact.
ui/.build-cache/

# Home staleness sentinel — written by tools/home-staleness.sh on
# every wiki/ edit; cleared by editing wiki/index.md. Local-session
# state only; CI's check-home-fresh is the load-bearing enforcement.
# See wiki/brain/adrs/home-content-shape.md.
wiki/_views/home-staleness.json

# Stale legacy sentinel from the previous in-session readme-staleness
# hook; current shape is CI-only via brain.py check-readme-fresh.
# Kept ignored so any local copy is harmless.
wiki/_views/readme-staleness.json

# Python virtualenv (local-only, used for tools/brain.py)
.venv/

.venv2/

# Derived SQLite index — disposable, rebuilt by `brain.py views`/`index`.
# Never committed; files are the only source of truth.
wiki/_views/index.db
wiki/_views/index.db.tmp

# Serving-mode query audit log (local, append-only)
log/queries.log
.reflection-denylist
wiki/_state/producer-heartbeat.json
wiki/_state/inbox-acks.json
.personal-data-patterns

# Hosted-tier identity + event stream — runtime state, never committed.
# agent-keys.json holds SECRETS; the event stream is high-volume runtime
# data (the git audit trail stays the inbox + log/log.md).
wiki/_state/agent-keys.json
wiki/_state/events/
wiki/_state/event-cursors.json
wiki/_state/.emulate-cursors.json
.brain-agent.env

# Architecture-graph artifacts are machine-local; only receipts are
# committed (wiki/_state/enola/). mcp-arch.yaml is generated from
# brain.config.yml by `brain.py enola generate`.
.enola/
mcp-arch.yaml

# uv writes this as a side effect of `uv pip install`; the manifests
# (requirements*.txt) are the declared dependency surface.
uv.lock

# Packaging output
build/
*.egg-info/
