# conversation_log 채널 구분 개선

**날짜**: 2025-08-28  
**테이블**: conversation_log  
**상태**: ✅ 해결 완료 (2025-08-28)

## 현재 상황 (DB 확인)
| channel_id | 건수 | 실제 내역 |
|------------|------|-----------|
| web | 55 | Frontend(46) + Slack DM(9) 혼재 ❌ |
| C0920L68267 | 10 | Slack 채널 ✅ |
| dm_summary | 3 | 시스템 ✅ |

**문제**: Slack DM이 "D..."로 저장되지 않고 "web"으로 저장됨

## 코드 위치
- **Frontend**: `rb8001/main.py:73` → `channel="web"` 하드코딩
- **Slack**: `rb8001/app/router/slack_handler.py:169` → `event.get("channel")`

## 해결 방안

### ✅ 구현 완료 (2025-08-28)
```python
# rb8001/main.py:367-404
@app.post("/api/message")
async def frontend_message(request: Request):
    """Frontend에서 오는 메시지 처리 (Gateway 경유)"""
    # ...
    result = await router.route_message(
        message=text,
        user_id=user_id,
        channel="frontend",  # 'web' 대신 'frontend' 사용
        thread_ts=None
    )
```

Frontend 요청은 이제 channel_id="frontend"로 저장됩니다.
Slack DM은 여전히 "D..."로 정상 저장됩니다.

### Phase 2: DB 스키마 개선 (선택)
```sql
ALTER TABLE conversation_log 
ADD COLUMN thread_ts VARCHAR(20),     -- 쓰레드 구분
ADD COLUMN channel_type VARCHAR(20);  -- public_channel/private_channel/im/mpim
```

## Slack 채널 ID 체계
- **C로 시작**: 공개/비공개 채널
- **D로 시작**: 1:1 DM
- **G로 시작**: 그룹 DM/MPIM
- **쓰레드**: 같은 channel_id + thread_ts로 구분

## 구현 결과
- Frontend: `"frontend"` ✅
- Slack 채널: `"C..."` ✅  
- Slack DM: `"D..."` ✅

**해결 내용**: 
1. rb8001에 `/api/message` 엔드포인트 추가
2. Frontend 요청은 channel="frontend"로 명시적 설정
3. Slack 요청은 기존대로 event['channel'] 사용 (D/C/G 프리픽스 자동 구분)