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
This commit is contained in:
Claude Agent
2026-08-30 12:23:33 +00:00
parent c9b9e2e5da
commit 5f34320e3e
8 changed files with 600 additions and 109 deletions

View File

@@ -19,12 +19,12 @@ 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&permissions=309237763136
# 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.
# 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.
@@ -49,6 +49,6 @@ 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
# face din Discord sa aiba istoric separat de proiectele reale. `/cd <cale>` il
# schimba per fir, oriunde in /workspace.
DEFAULT_CWD=/workspace/claude-agent