WS-B 완료 보고 (2026-07-05)
PR: https://github.com/shinjadong/callcenter-os/pull/6 (feat/ws-b-mm-plugin, [WS-B] 접두, 머지는 PM 세션)
산출물
mm-plugin/(Go 신규): MM 플러그인com.balerion.callcenter— ① 인바운드 webhookPOST /plugins/com.balerion.callcenter/notify(X-Callcenter-Secret 상수시간 검증 → 지정 채널에 한국어 메시지 bot 게시) ②/리드 <전화 뒷4자리|이름>slash command (코어 GET /t/{tenant}/leads, 서비스 JWT, 상위 3건 ephemeral) ③ 설정 스키마 5종 (CoreURL/Tenant/ServiceJWT/SharedSecret/TargetChannel). MM 서버 코어 무수정 (ADR-001 v1.1 상한 준수)core/app/notify/mm_plugin.py(신규): MMPluginNotifier — 마스킹(010****0712)은 코어 수행, 리드 생성 + 신규 부재중 콜 후크, 실패 전량 흡수(요청 경로 불침범)core/tenants/*.yaml:mm_plugin: {url, secret, link_base?}옵션 주석 예시 — 미설정 테넌트는 완전 no-op- 번들:
make dist→mm-plugin/dist/com.balerion.callcenter-0.1.0.tar.gz(linux-amd64, 13MB) - 계약 문서:
mm-plugin/README.md(페이로드 스키마·설정·mmctl 설치 절차)
검증 (전부 실행 확인)
- 백엔드 pytest 110 passed (기존 102 무회귀 + 신규 8)
- 프론트 vitest 54 passed + cockpit build OK
- Go 테스트 16 PASS +
go vetclean (httptest + plugintest — MM 서버 불필요) - 미검증(계획된 이연): 실 MM 연동 스모크 — WS-C 스택 가동 후
mmctl plugin add
핵심 발견
- MM 커스텀 커맨드 트리거는 영숫자 강제지만 플러그인 등록 경로(RegisterPluginCommand)는 검증을 안 타서 한글 트리거
/리드등록 가능 (vendor/mattermost 소스 확인) - 레퍼런스: 구조=mattermost-plugin-starter-template, 패턴=mattermost-plugin-github (핸드오프 지시대로 ai-translate 배제)
다음 액션
- PM: PR #6 머지 큐 (우선순위 C>A>B>D>E)
- WS-C 스택 가동 후: mmctl 설치 + 코어 서비스 계정 JWT 발급 + 실 스모크
STATUS.md B행 갱신 완료 (상태: PR).