3 poller
core/server/supervised/ ├── slack_poller.py # Slack RTM + slash command ├── discord_poller.py # Discord slash command ├── telegram_poller.py # Telegram bot API ├── webhook_handler.py # generic webhook fanout └── poller_base.py # shared lifecycle
Binding
core/channels/binding.py 가 channel × user × thread 의 3-tuple key 로 session 을 라우팅합니다. config.toml 의 [gateway.<provider>] 섹션이 binding 패턴 (예: channels = ["#geode"]) 을 정의.
Lane queue
한 channel 안에서 동시 요청이 와도 lane 단위로 직렬화. OpenClaw Lane Queue 패턴을 따라 retry / fairness / quota 가 lane 별로 적용됩니다.
운영
# 시작 + 백그라운드
geode serve &
# 상태 확인
geode status
# 재시작 (config 변경 후)
kill $(ps aux | grep "geode serve" | grep -v grep | awk '{print $2}')
geode serve &
# poller 디버깅
GEODE_POLLER_DEBUG=1 geode serve설정 + 운영 스킬
운영 디테일 (반응 동작, 폴러 상태, OAuth 갱신) 은 `.claude/skills/geode-serve` 스킬 에서 다룹니다. 자세한 binding pattern + failover 는 `.claude/skills/openclaw-patterns`.
참조: `core/server/supervised/*.py`, `.claude/skills/geode-serve`.