feat: NanoClaude Phase 3 — Synology Chat 연동

- POST /webhook/synology: outgoing webhook 수신 + token 검증
- 파이프라인 완료 시 incoming webhook으로 응답 자동 전송
- "분석 중..." typing 메시지 선전송
- 응답 길이 1500자 제한 (Synology Chat 제한 대응)
- 에러/실패 시에도 사용자에게 알림 메시지 전송
- 중복 요청 방지 (30초 TTL dedup)
- Synology에서 rewrite 이벤트 숨김 (SSE에서만 노출)
- callback 구조로 확장 가능 (Slack, Discord 등)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-04-06 12:25:48 +09:00
parent 9f0c527442
commit a44f6446cf
8 changed files with 144 additions and 4 deletions

View File

@@ -19,6 +19,8 @@ class Job:
task: asyncio.Task | None = field(default=None, repr=False)
pipeline: bool = True
rewritten_message: str = ""
callback: str = "" # "synology" | ""
callback_meta: dict = field(default_factory=dict) # username, user_id 등
class JobManager: