# Disinto — Environment Configuration
# Copy to .env and fill in your values.
# NEVER commit .env to the repo.

# ── Per-project config ────────────────────────────────────────────────────
# Project-specific settings (CODEBERG_REPO, PROJECT_REPO_ROOT, PRIMARY_BRANCH,
# WOODPECKER_REPO_ID) now live in projects/*.toml — see projects/harb.toml
# for an example. Do NOT set them here; they leak into every session.

# ── Auth tokens ───────────────────────────────────────────────────────────
# Dev-agent token: push branches, create PRs, merge PRs.
# Use the dedicated bot account (e.g. factory_bot / disinto_dev).
# Branch protection: this account must be in the merge whitelist.
CODEBERG_TOKEN=

# Review-agent token: post review comments and submit formal approvals.
# Use the human/admin account (e.g. johba).
# Branch protection: this account must be in the approvals whitelist.
REVIEW_BOT_TOKEN=

# Comma-separated Codeberg usernames to filter from issue comments.
# The token owner is auto-detected; add extra bot accounts here if needed.
CODEBERG_BOT_USERNAMES=

# ── Woodpecker CI ─────────────────────────────────────────────────────────
WOODPECKER_TOKEN=
WOODPECKER_SERVER=http://localhost:8000
# WOODPECKER_REPO_ID — now per-project, set in projects/*.toml [ci] section

# Woodpecker Postgres (for direct DB queries)
WOODPECKER_DB_PASSWORD=
WOODPECKER_DB_USER=woodpecker
WOODPECKER_DB_HOST=127.0.0.1
WOODPECKER_DB_NAME=woodpecker

# ── Matrix (optional — real-time notifications & escalation replies) ──────
MATRIX_HOMESERVER=http://localhost:8008     # Dendrite/Synapse URL
MATRIX_BOT_USER=@factory:your.server       # bot's Matrix user ID
MATRIX_TOKEN=                              # bot's access token
MATRIX_ROOM_ID=                            # coordination room ID (!xxx:your.server)

# ── Project-specific secrets ──────────────────────────────────────────────
# Store all project secrets here so formulas reference env vars, never hardcode.
# Example: BASE_RPC_URL for on-chain evolution scripts.
BASE_RPC_URL=

# ── Tuning ────────────────────────────────────────────────────────────────
CLAUDE_TIMEOUT=7200                        # max seconds per Claude invocation
