feat(bridge): 동적 채널 관리 - gravity-{프로젝트명} 채널 자동 생성/아카이브

This commit is contained in:
2026-03-07 10:36:06 +09:00
parent ea5001f243
commit ba8454c2e1
3 changed files with 239 additions and 144 deletions

View File

@@ -13,7 +13,7 @@ class Config:
# Discord
DISCORD_TOKEN: str = os.getenv("DISCORD_TOKEN", "")
DISCORD_CHANNEL_ID: int = int(os.getenv("DISCORD_CHANNEL_ID", "0"))
DISCORD_GUILD_ID: int = int(os.getenv("DISCORD_GUILD_ID") or "0")
# Antigravity Brain path
BRAIN_PATH: Path = Path(os.getenv(
@@ -21,6 +21,9 @@ class Config:
os.path.expanduser("~/.gemini/antigravity/brain")
))
# Session activity detection
ACTIVE_TIMEOUT_SECONDS: int = int(os.getenv("ACTIVE_TIMEOUT_SECONDS", "300"))
# Watcher settings
DEBOUNCE_SECONDS: float = float(os.getenv("DEBOUNCE_SECONDS", "2"))
@@ -35,14 +38,17 @@ class Config:
DISCORD_MSG_LIMIT: int = 2000
DISCORD_EMBED_DESC_LIMIT: int = 4096
# Channel naming
CHANNEL_PREFIX: str = "gravity"
@classmethod
def validate(cls) -> list[str]:
"""Return list of configuration errors."""
errors = []
if not cls.DISCORD_TOKEN:
errors.append("DISCORD_TOKEN is not set")
if not cls.DISCORD_CHANNEL_ID:
errors.append("DISCORD_CHANNEL_ID is not set")
if not cls.DISCORD_GUILD_ID:
errors.append("DISCORD_GUILD_ID is not set")
if not cls.BRAIN_PATH.exists():
errors.append(f"BRAIN_PATH does not exist: {cls.BRAIN_PATH}")
return errors