Files
ROMFASTSQL/proxmox/lxc171-claude-agent/discord-bridge/ops/env.example
Claude Agent 5f34320e3e feat(discord-bridge): comenzi slash in loc de prefixul !
Comenzile devin application commands inregistrate pe guild (sync instantaneu,
spre deosebire de cel global care dureaza ~1h): /new [fork], /cd <cale>,
/model <sonnet|opus> cu Choice, /status, /stop, /cleanup [force], /help.

- allowlist-ul se aplica identic la interactiuni (check_ids comun, ca sa nu
  existe a doua implementare care diverge); refuz efemer, fara executie
- fiecare comanda face defer() inainte de lucru — altfel Discord marcheaza
  interactiunea esuata dupa 3s desi comanda a rulat
- sync tolerant: la esec (lipsa scope applications.commands) botul porneste
  normal si logheaza linkul de reinvitare necesar
- mesajele obisnuite raman neschimbate, inclusiv steering-ul mid-tur
- linkul de invitatie primeste scope=bot%20applications.commands; referintele
  la ! din ops/ si documentatie trecute pe /

Verificat in productie: 7 comenzi inregistrate pe guild, citite inapoi din API.
Suita: 296 passed cu discord.py, 293 passed + 3 skipped fara.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B29CApsP1JkSdjYaGaHpE7
2026-08-30 12:23:33 +00:00

55 lines
2.7 KiB
Plaintext

# Configurarea puntii Discord -> Claude Code.
#
# install.sh copiaza acest fisier in ~/.claude-discord/env cu drepturi 0600.
# Formatul e cel cerut de systemd EnvironmentFile: CHEIE=valoare, fara `export`,
# fara ghilimele in jurul valorii, fara expandare de variabile.
#
# DUPA COPIERE COMPLETEAZA MANUAL cel putin DISCORD_TOKEN si allowlist-ul.
# --- Discord ---------------------------------------------------------------
# Token-ul botului: Discord Developer Portal -> aplicatia ta -> Bot -> Reset Token.
# Se vede o singura data. Daca ajunge in git, invalideaza-l imediat din portal.
DISCORD_TOKEN=
# Allowlist. Liste separate prin virgula, cu ID-uri numerice (Discord -> Advanced ->
# Developer Mode, apoi click dreapta -> Copy ID). Gol = nimic permis (fail-closed).
DISCORD_GUILD_IDS=
DISCORD_CHANNEL_IDS=
DISCORD_USER_IDS=
# Aplicatia Discord a puntii (creata 2026-08-30). Link de reinvitare, daca botul
# a fost scos din server sau ii lipsesc permisiuni:
# https://discord.com/oauth2/authorize?client_id=1543576449624186880&scope=bot%20applications.commands&permissions=309237763136
# permissions=309237763136 -> View Channel, Send Messages, Embed Links, Attach Files,
# Read Message History, Add Reactions, Create/Send in Public Threads.
# --- Model si cost ---------------------------------------------------------
# Modelul implicit al firelor noi. `/model opus` il schimba per fir.
CLAUDE_MODEL=sonnet
# Plafon de cost pe zi, in USD. La atingere botul refuza tururi noi si alerteaza.
# Reper masurat: un tur banal pe opus a costat $0.1547.
COST_CAP_USD_DAY=5.00
# --- Limite ----------------------------------------------------------------
# Maxim de procese `claude` vii simultan (406 MB RSS fiecare, masurat).
MAX_LIVE_PROCESSES=4
# Timeout per tur, secunde.
TURN_TIMEOUT_S=900
# Reaper: dupa cate secunde de inactivitate se opreste procesul unui fir.
IDLE_REAP_S=1200
# Cat asteapta hook-ul de confirmare o apasare pe Allow/Deny, secunde.
# CONSTRANGERE: trebuie sa ramana MAI MIC decat `timeout` din bot-settings.json
# (acum 330), altfel CLI-ul taie hook-ul inainte ca acesta sa refuze curat.
CLAUDE_DISCORD_APPROVAL_TIMEOUT=300
# --- Alerte (alerts.py) ----------------------------------------------------
# Destinatarul emailurilor de alerta. Aceeasi conventie ca restul repo-ului
# (vezi proxmox/vm109-windows-dr/scripts/pveelite-down-alert.sh): default root.
ALERT_RECIPIENT=root
# --- Directorul de lucru implicit -----------------------------------------
# Directorul in care porneste un fir nou. Spatiu dedicat, cu git propriu, ca ce se
# face din Discord sa aiba istoric separat de proiectele reale. `/cd <cale>` il
# schimba per fir, oriunde in /workspace.
DEFAULT_CWD=/workspace/claude-agent