.env
PERSONAL_CLAUDE.md
node_modules/
dist/
*.log
__pycache__/
.DS_Store
context-drop.txt
pending-trigger.txt
voice-task.txt
voice-result.txt
tasks/
results/
SESSION.md
conversation.log
quota-state.json
data/*
!data/*.example.json
src/cloudflare-worker.js
logs/*
!logs/.gitkeep
state/*
!state/.gitkeep
AGENT_LOOP.md
PENDING.md
pending-questions.md
.claude/
ACTIVITY.md
build_log.md
notes/*
!notes/.gitkeep

telegram-inbox/
discord-inbox/
archive/
assets/
stand-identity.json
stand-avatar.png
docs/youtube/
core-status.json
dynamic-content.json
tests/*
!tests/*.test.ts
!tests/*.test.py
!tests/*.test.sh
!tests/_helpers/
!tests/_helpers/*.ts
skills/personal-*/
tests/security/*.md
!tests/security/*.md.example
skills/schedule-crons/crons.json
src/Sutando/Sutando
# NativeMic.swift was removed in PR #329 and keeps getting re-added by
# search-and-replace sweeps that leave a stale copy in the working tree
# (regressed in #341, re-deleted in #342). Ignore it so a casual `git add .`
# can't resurrect it.
src/Sutando/NativeMic.swift
voice-context.txt
tab-aliases.json
session-state.md
src/web-client.js
context-drop-image.png
generated-*.png
contextual-chips.json
*.heartbeat
.agent/
.massgen/
.env.bak
.env.bak*
.env.*.bak
.last-pq-notify

# Task archive — created by the watcher when moving processed tasks.
# Will eventually move to $SUTANDO_PRIVATE_DIR/done/ for analytics + self-
# improvement (option b in the 2026-04-27 done/-handling discussion).
# Until that migration ships, keep done/ ephemeral and gitignored.
done/

# Runtime state file written by the voice client. Pure cruft, no commit value.
voice-state.json

# Single-instance lock written by src/voice-agent.ts (acquirePidLock).
.voice-agent.pid
