- Implement optimistic locking for deposit balance updates
- Prevent race conditions in concurrent deposit requests
- Add automatic retry with exponential backoff (max 3 attempts)
- Add version column to user_deposits table
- Improve type safety across codebase
- Add explicit types for Namecheap API responses
- Add typed function arguments (ManageDepositArgs, etc.)
- Remove `any` types from deposit-agent and tool files
- Add reconciliation job for balance integrity verification
- Compare user_deposits.balance vs SUM(confirmed transactions)
- Alert admin on discrepancy detection
- Set up test environment with Vitest + Miniflare
- Add 50+ test cases for deposit system
- Add helper functions for test data creation
- Update documentation
- Add migration guide for version columns
- Document optimistic locking patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 5-3 모니터링 강화 작업의 통합을 완료했습니다.
변경사항:
- Logger 통합: console.log를 구조화된 로깅으로 전환 (9개 파일)
- JSON 기반 로그, 환경별 자동 전환 (개발/프로덕션)
- 타입 안전성 보장, 성능 측정 타이머 내장
- Metrics 통합: 실시간 성능 모니터링 시스템 연결 (3개 파일)
- Circuit Breaker 상태 추적 (api_call_count, error_count, state)
- Retry 재시도 횟수 추적 (retry_count)
- OpenAI API 응답 시간 측정 (api_call_duration)
- 알림 통합: 장애 자동 알림 시스템 구현 (2개 파일)
- Circuit Breaker OPEN 상태 → 관리자 Telegram 알림
- 재시도 실패 → 관리자 Telegram 알림
- Rate Limiting 적용 (1시간에 1회)
- 문서 업데이트:
- CLAUDE.md: coder 에이전트 설명 강화 (20년+ 시니어 전문가)
- README.md, docs/: 아키텍처 문서 추가
영향받은 파일: 16개 (수정 14개, 신규 2개)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
변경사항:
- coder → general-purpose (Claude Code 표준 에이전트)
- reviewer → Explore + general-purpose
- explorer → Explore (대문자)
- 프로젝트 특성 명시 (TypeScript, Cloudflare Workers)
- 사용 가능한 에이전트 타입 명시
이유:
- Claude Code의 실제 에이전트 타입 사용
- 프로젝트별 구체적인 에이전트 매핑
- SuperClaude PERSONAS.md의 coder는 이 프로젝트 전용
목표: 메인 세션 컨텍스트 절약
변경사항:
- CRITICAL: 모든 코드 작성/수정 작업은 에이전트 사용 필수
- 빌드/배포/테스트도 에이전트로 분리
- 각 에이전트가 독립 컨텍스트 사용 → 요약만 반환
- 메인 세션은 조율/지시만 담당
이유:
- 복잡한 프로젝트에서 컨텍스트 압박 방지
- 토큰 사용량 대폭 절감
- 병렬 처리로 시간 단축
보안 개선:
- API 키 하드코딩 제거 (NAMECHEAP_API_KEY_INTERNAL)
- CORS 정책: * → hosting.anvil.it.com 제한
- /health 엔드포인트 DB 정보 노출 방지
- Rate Limiting 인메모리 Map → Cloudflare KV 전환
- 분산 환경 일관성 보장
- 재시작 후에도 유지
- 자동 만료 (TTL)
문서:
- CLAUDE.md Security 섹션 추가
- KV Namespace 설정 가이드 추가
- 배포/마이그레이션 가이드 추가
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
은행 SMS는 입금자명을 7글자까지만 표시하므로,
매칭 시 SUBSTR(depositor_name, 1, 7)로 비교하도록 수정
- deposit-agent.ts: 사용자 입력 → bank_notifications 검색
- index.ts: SMS 수신 → deposit_transactions 검색
- CLAUDE.md: 매칭 로직 문서화
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- getOrCreateUser를 별도 try-catch로 감싸서 DB 오류 시 에러 메시지 전송
- 전체 메시지 처리 로직을 try-catch로 감싸서 모든 오류에 대해 사용자 응답 보장
- 기존: DB 오류 발생 시 webhook handler catch → 500 반환 (사용자 무응답)
- 변경: 오류 발생 시에도 "일시적인 오류" 메시지 전송
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 도메인 등록 인라인 버튼 확인 플로우 (domain-register.ts)
- manage_domain에 cheapest action 추가 (가장 저렴한 TLD TOP 15)
- 24시간 경과 입금 대기 자동 취소 Cron (UTC 15:00)
- 거래 내역 한글 라벨 + description 표시
- CLAUDE.md 문서 업데이트
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Email Routing에서 수신한 이메일 파싱 수정
- Quoted-Printable UTF-8 디코딩 함수 추가
- HTML <br/> 태그를 줄바꿈으로 변환
- SMS 키워드 위치 기반 본문 추출
- 레거시 코드 삭제
- /api/bank-notification 엔드포인트 제거 (Email Routing으로 대체)
- BANK_API_SECRET 관련 코드 및 문서 제거
- DEPOSIT_AGENT_ID 제거 (Assistants API → 코드 직접 처리)
- CLI 테스트 클라이언트 개선
- .env 파일 자동 로드 지원
- WEBHOOK_SECRET 환경변수 불필요
- 문서 업데이트
- NAMECHEAP_API_KEY 설명 명확화 (래퍼 인증 키)
- CLI 테스트 섹션 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace OpenAI Assistants API with direct function calling (AI Gateway)
- Add action-based parameters to manage_deposit tool (like manage_domain)
- Export executeDepositFunction for direct use in openai-service.ts
- Add formatDepositResult function for consistent response formatting
- Remove DEPOSIT_AGENT_ID dependency (no longer needed)
- Update CLAUDE.md documentation
Benefits:
- Bypasses regional restrictions via AI Gateway
- 100% consistent response formatting
- No Assistants API costs
- Faster execution (no thread creation)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
주요 변경:
- Domain Agent 제거, 코드 직접 처리로 전환
- suggest_domains: 등록 가능 도메인만 표시, 10개 미만 시 재시도
- search_web: 한글 검색어 자동 영문 번역 (GPT-4o-mini)
- WHOIS: raw 데이터 파싱으로 상세 정보 추출
- 가격 조회: API 필드명 수정 (register_krw → krw)
- 동적 도구 로딩 시스템 추가
- 문서 정리 및 업데이트
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- AI 시스템 프롬프트: 에이전트 응답 그대로 전달 규칙 추가
- Deposit Agent 핵심 규칙 확장:
- 자연어 금액 인식 (만원, 5천원 등)
- 즉시 실행 (확인 질문 없이)
- 간편 취소 (최근 pending 자동 선택)
- 동시 요청 허용
- Deposit Agent 응답 포맷 예시 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## 검색 API 교체
- DuckDuckGo Instant Answer API → Brave Search API
- 실제 웹 검색 결과 반환 (제목, 설명, URL)
- Vault에 API 키 저장 (secret/brave-search)
- Free AI 플랜: 2,000 queries/월
## 시스템 프롬프트 개선
- 검색 도구 사용 조건 명시 (최신 정보, 실시간 가격 등)
- 도구 description에 트리거 키워드 추가
## 입금 알림 개선
- 자동 매칭 성공 시 사용자에게 Telegram 알림 전송
- tryAutoMatch() 반환값에 userId, amount 추가
## 문서 업데이트
- Function Calling Tools 테이블에 트리거 키워드 컬럼 추가
- AI 시스템 프롬프트 섹션 추가
- Deposit Agent 프롬프트 수정 방법 문서화
- 자동 알림 시스템 섹션 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- POST /api/bank-notification 엔드포인트 추가
- 하나은행 Web발신 SMS 패턴 파싱 지원
- Gmail message_id 기반 중복 방지
- BANK_API_SECRET 인증 추가
- deposit_transactions 자동 매칭 구현
- 문서 업데이트 (CLAUDE.md, README.md)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Auto-Read: 세션 시작 시 README.md 필수 읽기
- Critical Rules: 배포/보안/위험 작업 규칙 추가
- Documentation Rules: 트리거 조건 테이블화
- Code Style: TypeScript, 에러 핸들링, 로깅, 네이밍 규칙
- Testing: 로컬 테스트 절차, 배포 후 확인
- Troubleshooting: 자주 발생하는 에러 6개 + 해결법
- 기존 섹션 테이블 형식으로 가독성 개선
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Namecheap API가 미국 형식(08/01/2026)을 반환하여 AI가 1월 8일로 오해석
- ISO 형식(2026-08-01)으로 변환하여 명확한 날짜 표시
- list_domains, get_domain_info에 날짜 변환 적용
- 문서에 WHOIS API 서버 정보 및 ccSLD 미지원 안내 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- get_price: ccSLD(it.com, uk.com 등) 가격 조회 지원
- check_domains: 도메인 가용성 확인 기능 추가
- whois_lookup: 공개 RDAP API로 WHOIS 조회 (com/net/org/io/me/info/biz)
- 읽기 작업(get_domain_info, get_nameservers)은 누구나 조회 가능
- 한국어 질문 시 원화(KRW)만 표시하도록 개선
- README.md, CLAUDE.md 도메인 관리 문서 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- manage_domain Function Calling 도구 추가
- OpenAI Assistants API 기반 Domain Agent 연동
- Namecheap API 호출 (도메인 목록, 네임서버 관리 등)
- user_domains 테이블로 사용자별 도메인 권한 관리
- 타임스탬프 검증 비활성화 (WEBHOOK_SECRET으로 충분)
- CLAUDE.md 프로젝트 문서 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>