ORCH_PLANE_API_URL=http://plane-app-api-1:8000 # External (browser) web URL of Plane for clickable issue links in notifications # (ORCH-017). Falls back to ORCH_PLANE_API_URL; a loopback fallback is treated as # "no web URL" and the Plane link is omitted. Example: https://plane.example.org ORCH_PLANE_WEB_URL= ORCH_PLANE_API_TOKEN= ORCH_PLANE_WORKSPACE_SLUG= ORCH_PLANE_WEBHOOK_SECRET= ORCH_GITEA_URL=http://localhost:3000 ORCH_GITEA_TOKEN= ORCH_GITEA_WEBHOOK_SECRET= ORCH_CLAUDE_BIN=/usr/bin/claude ORCH_REPOS_DIR=/home/slin/repos ORCH_DB_PATH=/app/data/orchestrator.db # ORCH-042: live-tracker mode. edit (DEFAULT) -> the task card is edited in place # (editMessageText). bump -> on every update the old card is deleted and a fresh # one is sent silently to the BOTTOM of the chat (deleteMessage + sendMessage + # repoint). One card per task in both modes. Any value other than "bump" -> edit. ORCH_TRACKER_MODE=edit # ORCH-043: merge-gate (auto-rebase onto current origin/main + re-test + merge-lock) # on the deploy-staging -> deploy edge. Deterministic sub-gate (no LLM) that catches # the branch up to the CURRENT origin/main, re-tests it, and serialises merges so two # green parallel branches can't break main. # ENABLED -> global kill-switch (false -> whole gate is a no-op pass). # REPOS -> CSV of repos where the gate is REAL; empty -> only the self-hosting # repo (orchestrator); other repos -> conditional no-op (mirrors ORCH-35). # RETEST_TIMEOUT_S -> wall-clock budget for the post-rebase re-test. # RETEST_TARGET -> pytest target for the re-test. # LOCK_TIMEOUT_S -> max merge-lease age before a stale lease is reclaimed. # DEFER_DELAY_S -> delay before re-running the gate when the lock is busy. # DEFER_MAX_ATTEMPTS -> defer retries before escalation (avoids livelock). ORCH_MERGE_GATE_ENABLED=true ORCH_MERGE_GATE_REPOS= ORCH_MERGE_RETEST_TIMEOUT_S=600 ORCH_MERGE_RETEST_TARGET=tests/ ORCH_MERGE_LOCK_TIMEOUT_S=300 ORCH_MERGE_DEFER_DELAY_S=60 ORCH_MERGE_DEFER_MAX_ATTEMPTS=5