# 2025년 8월 15일 개발 작업 기록

## 오전 11시 31분

### 1. robeing-gateway 헬스체크 경로 불일치 해결

#### 문제 상황
- robeing-gateway가 3일 이상 unhealthy 상태
- FailingStreak: 10,028회 실패
- 서비스는 정상 작동하지만 헬스체크만 실패

#### 원인 분석
- Dockerfile: `/health` 경로로 헬스체크
- 실제 코드: `/healthz` 엔드포인트만 구현
- 이전 커밋에서 main.py와 Actions는 수정했지만 Dockerfile 누락

#### 해결 방법
```bash
# Dockerfile 수정
HEALTHCHECK ... CMD curl -f http://localhost:8000/healthz || exit 1
```

#### 교훈
- **헬스체크 엔드포인트 변경 시 체크리스트 필수**
  - main.py (실제 엔드포인트)
  - Dockerfile (컨테이너 헬스체크)
  - docker-compose.yml (compose 헬스체크)
  - .gitea/workflows/*.yml (CI/CD 헬스체크)
- CLAUDE.md에 규칙 추가 완료

---

### 2. rb10508_micro 하드코딩 제거 및 중앙 설정 관리

#### 문제 상황
- ChromaDB 검색 개수 100개가 하드코딩
- Gemini 모델명이 부분적으로 하드코딩
- Mistral 모델명이 완전히 하드코딩

#### 현황 파악
1. **ChromaDB 검색 100개**
   - storage.py:112에 하드코딩
   - config.py에 설정 없음

2. **Gemini 모델**
   - brain.py:72에 'gemini-2.5-flash-lite' 하드코딩
   - config.py:48에 GEMINI_FALLBACK_MODEL 있지만 미사용

3. **Mistral 모델**
   - mistral.py:112에 'mistral-small-latest' 하드코딩
   - config.py에 설정 없음

#### 해결 방법
```python
# config.py 추가
MEMORY_SEARCH_LIMIT: int = 100
MISTRAL_MODEL: str = "mistral-small-latest"

# 각 파일에서 settings 활용
settings.MEMORY_SEARCH_LIMIT
settings.GEMINI_FALLBACK_MODEL
settings.MISTRAL_MODEL
```

#### 추가 수정
- README.md 업데이트

#### 교훈
- **하드코딩 금지 원칙 재확인**
- 설정값은 반드시 config.py에서 중앙 관리
- 코드 리뷰 시 하드코딩 여부 우선 체크

---

### 3. 사랑 기반 윤리 시스템 설계 논의

#### 현재 상태
- rb10508_micro/app/core/ethics.py는 거의 비어있음
- 기본 구조만 있고 실제 구현 없음

#### 아키텍처 결정 사항
1. **윤리 평가 위치**: rb10508_micro 내부 (로빙의 핵심 정체성)
2. **Love Index 저장**: ChromaDB 메타데이터 (기억과 연결)
3. **LLM 사용**: 하이브리드 (명확한 경우 규칙, 애매한 경우 LLM)
4. **구현 전략**: 점진적 추가 (기존 시스템 유지)
5. **표현 방식**: 내부는 사랑, 외부는 세속적 용어

#### 기억 시스템 분석
- ChromaDB 벡터 저장소 사용
- 적응형 메모리 선택 (LLM + MMR 알고리즘)
- 100개 초기 검색 → 10-20개 최종 선택
- 황금비(1.618) 활용한 효율적 축소

#### 다음 단계
- ethics.py에 Love Index 계산 함수 추가
- brain.py에서 윤리 평가 통합
- ChromaDB에 love_metrics 메타데이터 추가

---

## 배포 결과
- robeing-gateway: Dockerfile 헬스체크 수정 후 푸시
- rb10508_micro: 하드코딩 제거 후 푸시
- 두 서비스 모두 Gitea Actions 통해 자동 배포 진행 중