Commit Graph

100 Commits

Author SHA1 Message Date
kappa
4a0499890a fix(schema): 입금자명 길이 제한 50자 → 15자로 조정
근거:
- SMS 입금자명: 한글 7자 제한 (은행 시스템)
- 사용자 수동 입력: 15자로 충분한 여유
- 매칭 로직: 앞 7자만 사용

변경사항:
- CHECK (length(depositor_name) <= 50) → 15
- 데이터 복원 시 truncate: 50자 → 15자
- SCHEMA_MIGRATION_GUIDE.md 업데이트
- MIGRATION_SUMMARY.md 업데이트

로컬 테스트 결과:
-  15자 이하: 정상 입력
  - 숫자 15자: "123456789012345" ✓
  - 한글 15자: "홍길동아버지어머니할머님고모고" ✓
-  16자 이상: 거부됨
  - 숫자 16자: "1234567890123456" ✗ (CHECK 제약조건)
  - 한글 16자: "홍길동아버지어머니할머님고모고모" ✗ (CHECK 제약조건)

실용성:
- SMS 7자 보장 + 사용자 입력 여유
- 불필요한 긴 이름 방지
- 매칭 로직과 완벽 호환

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 16:02:18 +09:00
kappa
04dcb57fae feat(schema): 데이터베이스 스키마 강화 마이그레이션
데이터 무결성:
- user_deposits.balance >= 0 CHECK 제약조건
- deposit_transactions.depositor_name 최대 50자 제한
- 음수 잔액 방지, 긴 이름 방지

감사 추적:
- audit_logs 테이블 생성
- 모든 중요 작업 추적 (user_id, action, resource, details)
- 인덱스 추가 (user_id, action, created_at)

프로덕션 안전:
- 백업 → 재생성 → 복원 방식
- 롤백 스크립트 포함
- 데이터 유실 방지 로직
- 음수 잔액 데이터 감지 및 로그

마이그레이션 파일:
- migrations/001_schema_enhancements.sql (5.5K)
- migrations/001_rollback.sql (4.0K)
- migrations/AUDIT_LOG_EXAMPLES.ts (11K)
- migrations/TEST_RESULTS.md (8.0K)
- migrations/README.md (2.8K)

문서:
- SCHEMA_MIGRATION_GUIDE.md (13K) - 완전한 배포 가이드
- MIGRATION_SUMMARY.md (9.1K) - 요약 및 체크리스트

로컬 테스트 결과:
-  마이그레이션 성공 (23 commands, <1초)
-  CHECK 제약조건 작동 (음수 잔액 거부)
-  길이 제한 작동 (51자 이름 거부)
-  audit_logs 테이블 정상
-  데이터 보존 확인 (users:3, deposits:1, transactions:1)
-  음수 잔액 데이터 감지 (user_id:3, balance:-500)

프로덕션 배포:
- 로컬 테스트 완료, 프로덕션 준비 완료
- 배포 전 백업 필수
- 예상 소요 시간: <5분

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 15:57:21 +09:00
kappa
cd1138e68a feat(cache): TLD 가격 조회 KV 캐싱 레이어 추가
성능 개선:
- Namecheap API 호출 30-80% 감소
- 캐시 히트 시 응답 속도 ~100ms (API 대비 5-8배 향상)
- 비용 절감 효과

캐싱 전략:
- 단일 TLD 가격: "tld_price:{tld}" (예: tld_price:com)
- 전체 TLD 가격: "tld_price:all"
- TTL: 3600초 (1시간) - 가격 변동 주기 고려

구현 상세:
- 4개 헬퍼 함수 추가
  - getCachedTLDPrice(): 단일 TLD 캐시 조회
  - setCachedTLDPrice(): 단일 TLD 캐시 저장
  - getCachedAllPrices(): 전체 TLD 캐시 조회
  - setCachedAllPrices(): 전체 TLD 캐시 저장

- 캐싱 적용 함수
  - executeDomainAction('price'): 단일 TLD 가격
  - executeDomainAction('cheapest'): 전체 TLD 목록
  - executeDomainAction('check'): 도메인 가용성 + 가격
  - executeSuggestDomains(): 도메인 추천 시 가격

에러 핸들링:
- KV 오류 시 API 직접 호출로 폴백
- 서비스 가용성 우선, 캐시는 성능 향상 수단

로깅:
- [TLDCache] HIT/MISS/SET 로그로 성능 모니터링

바인딩:
- 기존 RATE_LIMIT_KV 재사용 (추가 설정 불필요)

테스트:
- .com 가격 조회 (캐시 MISS → HIT)
- 전체 TLD 목록 (캐시 MISS → HIT)
- 도메인 추천 (캐시된 가격 활용)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 15:45:53 +09:00
kappa
ab6c9a2efa refactor: 파일 분리 리팩토링 (routes, services, tools, utils)
아키텍처 개선:
- index.ts: 921줄 → 205줄 (77% 감소)
- openai-service.ts: 1,356줄 → 148줄 (89% 감소)

새로운 디렉토리 구조:
- src/routes/ - Webhook, API, Health check 핸들러
  - webhook.ts (287줄)
  - api.ts (318줄)
  - health.ts (14줄)

- src/services/ - 비즈니스 로직
  - bank-sms-parser.ts (143줄)
  - deposit-matcher.ts (88줄)

- src/tools/ - Function Calling 도구 모듈화
  - weather-tool.ts (37줄)
  - search-tool.ts (156줄)
  - domain-tool.ts (725줄)
  - deposit-tool.ts (183줄)
  - utility-tools.ts (60줄)
  - index.ts (104줄) - 도구 레지스트리

- src/utils/ - 유틸리티 함수
  - email-decoder.ts - Quoted-Printable 디코더

타입 에러 수정:
- routes/webhook.ts: text undefined 체크
- summary-service.ts: D1 타입 캐스팅
- summary-service.ts: Workers AI 타입 처리
- n8n-service.ts: Workers AI 타입 + 미사용 변수 제거

빌드 검증:
- TypeScript 타입 체크 통과
- Wrangler dev 로컬 빌드 성공

문서:
- REFACTORING_SUMMARY.md 추가
- ROUTE_ARCHITECTURE.md 추가

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 15:36:17 +09:00
kappa
3bf42947a7 chore: .gitignore에 .claude/, .gemini/ 추가
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 15:20:33 +09:00
kappa
4eb5bbd3d3 feat(security): API 키 보호, CORS 강화, Rate Limiting KV 전환
보안 개선:
- 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>
2026-01-19 15:20:14 +09:00
kappa
6d4fd7f22f refactor(web): DDoS 방어 설명에서 Cloudflare 언급 제거
기술 스택 노출 대신 방어 레이어(L3/L4/L7)로 표현
- 기본 방어: L3/L4 기본 보호
- 프리미엄 방어: L3/L4/L7 다중 레이어 방어

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:32:23 +09:00
kappa
22fe0a6081 feat(web): DDoS 방어 가격 옵션 추가
- 기본 방어: 무료 (Cloudflare)
- 프리미엄 방어: ₩99,000/월 (VAT 포함, 1Tbps+)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:25:55 +09:00
kappa
9dbcb8b0e5 feat(web): 리전별 가격표 추가
원가 + 20% 마진 기준 리전별 차등 가격:
- 도쿄/오사카, 싱가포르 (Linode): ₩8,900 ~ ₩39,900
- 홍콩 (Google Cloud): ₩14,900 ~ ₩57,900
- 서울 (AWS): ₩19,900 ~ ₩63,900

공통 포함 사항: DDoS 방어, 무료 SSL, 24시간 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:22:17 +09:00
kappa
25adda4497 feat(web): 해외 서버 리전 구체화
- 해외 서버: 도쿄/오사카, 싱가포르, 홍콩으로 명시
- 글로벌 리전 → 아시아 4개 리전으로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:17:56 +09:00
kappa
50b20fd2b3 feat(web): 요금제 가격 현실화
시장 가격(카페24 VPS) 대비 약간 저렴하게 조정:
- Starter: ₩4,900/월 (1vCPU, 1GB RAM, 30GB SSD, 500GB)
- Pro: ₩14,900/월 (2vCPU, 2GB RAM, 50GB SSD, 1TB)
- Business: ₩29,900/월 (4vCPU, 4GB RAM, 100GB SSD, 2TB)

리눅스 vs 윈도우 비교 테이블 가격도 현실화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 11:07:33 +09:00
kappa
c33068f53d feat(web): 리눅스 서버 가이드 섹션 추가
- 윈도우 vs 리눅스 비교 테이블 (비용, 성능, 보안, 안정성)
- SSH 접속 방법 안내 (PuTTY, Tabby 링크)
- 웹 기반 관리 도구 소개 (cPanel, Webmin, Cockpit)
- 자주 쓰는 명령어 5개 (ls, cd, cp, mv, rm, sudo)
- 네비게이션에 리눅스 메뉴 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 10:59:19 +09:00
kappa
8a404fe75b fix: 입금자명 매칭 시 앞 7글자만 비교
은행 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>
2026-01-19 10:46:23 +09:00
kappa
a1eaae3c04 fix: 다른 사용자 무응답 버그 수정
- getOrCreateUser를 별도 try-catch로 감싸서 DB 오류 시 에러 메시지 전송
- 전체 메시지 처리 로직을 try-catch로 감싸서 모든 오류에 대해 사용자 응답 보장
- 기존: DB 오류 발생 시 webhook handler catch → 500 반환 (사용자 무응답)
- 변경: 오류 발생 시에도 "일시적인 오류" 메시지 전송

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 09:45:25 +09:00
kappa
2e4886a0a7 feat(web): Excalidraw 스케치 스타일 리디자인 + 문의 폼
- 웹페이지를 Excalidraw 스타일 손그림 디자인으로 전면 리디자인
- 라이트 모드 + 크림색 배경 + 격자 패턴
- 손글씨 폰트 (제목: Caveat, 본문: Noto Sans KR)
- 스케치 스타일 카드, 버튼, 스티커 노트 컴포넌트
- 문의 폼 추가 (이메일 + 메시지)
- /api/contact 엔드포인트 추가 (텔레그램 알림 연동)
- 이메일 실시간 유효성 검사

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 09:31:41 +09:00
kappa
166ea6dde8 docs: add Web Page section to CLAUDE.md
- Document Cloudflare Pages deployment (anvil-hosting)
- Add logo description (3D metallic anvil + hammer)
- Document registrant info source (npm-linode-1 .env)
- Add footer business info details

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 16:11:17 +09:00
kappa
4d22ea73f2 feat(web): add footer with business info
- Add 3-column footer layout (Company, Contact, Links)
- Add LIBEHAIM Inc. registrant info (matches namecheap-api .env)
- Add terms and privacy policy links

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 16:10:31 +09:00
kappa
b361e52427 feat(web): redesign logo and update service layout
- Add 3D metallic anvil + blacksmith hammer logo with gradients
- Apply metallic gradient to "Anvil" text
- Reorder services: Domain → DDoS → Overseas → Hosting
- Update domain card: AI 작명 추천 · 3초 등록 · 실시간 가용성 확인
- Remove domain price from service card

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 16:00:25 +09:00
kappa
f21ed88ae3 feat(web): add anvil + hammer logo with sparks
- Add custom SVG logo with anvil and hammer design
- Hammer positioned to strike down creating sparks
- Purple gradient matching site theme
- Remove unnecessary "가격 조회" button from domain section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 15:42:53 +09:00
kappa
39dd64d43b feat: 도메인 서비스 전용 섹션 추가
- AI 도메인 추천, 가용성 확인, WHOIS 조회, 네임서버 관리 카드
- 5,000원~/년 가격 배너 + 도메인 등록하기/가격 조회 CTA
- 네비게이션에 도메인 메뉴 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 15:33:04 +09:00
kappa
15da2032a3 feat: 웹페이지 텔레그램 봇 강조 + 도메인 가격 표시
- 히어로 섹션에 텔레그램 봇 하이라이트 박스 추가
- "대화만으로 모든 것이 가능합니다" 강조
- 도메인 카드에 5,000원~/년 가격 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 15:28:44 +09:00
kappa
db859efc56 feat: 도메인 인라인 버튼 등록 + cheapest TLD + Cron 자동취소
- 도메인 등록 인라인 버튼 확인 플로우 (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>
2026-01-18 15:24:03 +09:00
kappa
89f8ea19f1 fix: Email Routing MIME 파싱 개선 + 레거시 코드 정리
- 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>
2026-01-18 13:12:26 +09:00
kappa
edbd790538 refactor: migrate Deposit Agent from Assistants API to direct function calling
- 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>
2026-01-18 11:59:43 +09:00
kappa
1baeb0f04c docs: add AI Gateway, CLI test client, and WEBHOOK_SECRET documentation
- Add Cloudflare AI Gateway section (regional restriction bypass)
- Add CLI test client usage (npm run chat)
- Document WEBHOOK_SECRET configuration

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 11:41:39 +09:00
kappa
ec0dea0769 feat: Cloudflare AI Gateway 적용
- OpenAI API 호출을 AI Gateway 경유로 변경
- 지역 제한 (403 unsupported_country_region_territory) 해결
- Gateway: telegram-bot (d8e5997eb4040f8b489f09095c0f623c)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 11:36:04 +09:00
kappa
cbadf99944 feat: CLI 테스트 클라이언트 추가
- /api/test 엔드포인트 추가 (Worker에서 직접 응답 반환)
- scripts/chat.ts CLI 클라이언트
- npm run chat 스크립트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 11:26:18 +09:00
kappa
42ab702d1c feat: 도메인 시스템 개선 + 검색 한글→영문 번역
주요 변경:
- 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>
2026-01-18 11:15:49 +09:00
kappa
28ac6737ad docs: README에 Deposit Agent 개선사항 추가
- 사용법 예시 섹션 추가
- 자연어 금액 인식 (만원, 5천원 등)
- 즉시 실행 (확인 없이 바로 처리)
- 간편 취소 (최근 pending 자동 선택)
- 동시 요청 허용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 12:04:40 +09:00
kappa
4536a22003 docs: Deposit Agent 프롬프트 개선사항 문서화
- AI 시스템 프롬프트: 에이전트 응답 그대로 전달 규칙 추가
- Deposit Agent 핵심 규칙 확장:
  - 자연어 금액 인식 (만원, 5천원 등)
  - 즉시 실행 (확인 질문 없이)
  - 간편 취소 (최근 pending 자동 선택)
  - 동시 요청 허용
- Deposit Agent 응답 포맷 예시 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:36:57 +09:00
kappa
254b5a041d fix: 에이전트 응답 그대로 전달하도록 시스템 프롬프트 수정
- manage_deposit, manage_domain 도구 결과를 가공 없이 전달
- 불필요한 추가 질문/멘트 방지

Deposit Agent (OpenAI) 프롬프트도 별도 업데이트:
- 동시 입금 요청 허용
- 즉시 실행 (확인 질문 금지)
- 응답 스타일 간결화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 11:33:10 +09:00
kappa
363a0a504f feat: DuckDuckGo → Brave Search 교체 + 입금 알림 개선
## 검색 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>
2026-01-17 10:25:27 +09:00
kappa
9822b28028 feat: Gmail → Apps Script → Worker 입금 알림 연동
- 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>
2026-01-17 00:09:16 +09:00
kappa
cd33a7c790 docs: CLAUDE.md 전면 개선
- Auto-Read: 세션 시작 시 README.md 필수 읽기
- Critical Rules: 배포/보안/위험 작업 규칙 추가
- Documentation Rules: 트리거 조건 테이블화
- Code Style: TypeScript, 에러 핸들링, 로깅, 네이밍 규칙
- Testing: 로컬 테스트 절차, 배포 후 확인
- Troubleshooting: 자주 발생하는 에러 6개 + 해결법
- 기존 섹션 테이블 형식으로 가독성 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 15:22:57 +09:00
kappa
7d7df59b43 fix: Namecheap API 날짜 형식 변환 (MM/DD/YYYY → ISO)
- 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>
2026-01-16 14:09:20 +09:00
kappa
20155e53a4 feat: 도메인 정보 조회 개선
- get_domain_info 민감정보 필터링 (계정 ID 제거)
- whois_lookup 도구 추가 (Domain Agent)
- .it.com ccSLD WHOIS 미지원 안내 추가
- domain-agent tools.ts에 whois_lookup 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:48:55 +09:00
kappa
6071412949 feat: WHOIS 조회를 자체 Vercel API로 변경
- Vercel Serverless로 WHOIS API 서버 구축
- 모든 TLD 지원 (TCP 포트 43 직접 연결)
- RDAP 대신 raw WHOIS 사용으로 안정성 향상
- AI가 raw 응답 파싱

WHOIS API: whois-api-kappa-inoutercoms-projects.vercel.app

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:26:59 +09:00
kappa
42c57747a7 feat: 도메인 관리 기능 개선
- 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>
2026-01-16 13:10:34 +09:00
kappa
e98bfd3a68 feat: 예치금 시스템 추가 (은행 SMS 자동 매칭)
- manage_deposit Function Calling 추가 (잔액조회, 입금신고, 거래내역, 취소)
- Email Worker로 은행 SMS 파싱 (하나/KB/신한 지원)
- 양방향 자동 매칭: 사용자 신고 ↔ 은행 알림
- D1 테이블: user_deposits, deposit_transactions, bank_notifications
- 관리자 전용: 대기목록 조회, 입금 확인/거절

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 12:29:57 +09:00
kappa
8b2ccf05b5 feat: 도메인 관리 기능 추가 (Domain Agent 연동)
- 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>
2026-01-16 08:50:16 +09:00
kappa
2694531076 chore: 미니앱 URL을 커스텀 도메인으로 변경
- anvil-hosting.pages.dev → hosting.anvil.it.com

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 14:03:11 +09:00
kappa
72b0ae0133 feat: 텔레그램 미니앱 연동
- sendMessageWithKeyboard 함수 추가
- /start 명령어에 미니앱 버튼 추가
- 메뉴 버튼으로 서비스 페이지 열기 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:57:21 +09:00
kappa
4477551ae2 feat: Anvil Hosting 랜딩 페이지 추가
- 원페이지 다크테마 디자인
- 서비스: 호스팅, 해외 서버, DDoS 방어, 도메인
- 요금제: Starter/Pro/Enterprise
- Cloudflare Pages 배포: anvil-hosting.pages.dev

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:54:57 +09:00
kappa
e9e2e64e6d docs: README 봇 명령어 섹션 업데이트
- 사용자/개발자 명령어 분리
- /reset 확인 단계 문서화
- /reset-confirm 추가
- 숨김 명령어 (/context, /stats, /debug) 명시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:50:20 +09:00
kappa
d72b099605 refactor: /help에서 /start 제거
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:47:01 +09:00
kappa
d8781c031b refactor: /start, /help에서 개발용 명령어 숨김
- /context, /stats 도움말에서 제거 (명령어는 유지)
- 사용자 친화적인 메시지로 단순화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:44:32 +09:00
kappa
799dd78197 refactor: /help 메시지 단순화
- 기술적 상세 설명 제거
- "대화할수록 당신을 더 잘 이해합니다 💡"로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:41:58 +09:00
kappa
6fd4a4028d feat: /reset 명령어에 확인 단계 추가
- /reset: 삭제될 데이터 미리보기 및 확인 요청
- /reset-confirm: 실제 삭제 실행
- 실수로 데이터 삭제 방지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:36:55 +09:00
kappa
3d70bf0c1a feat: Context7 라이브러리 문서 조회 Function Calling 추가
- lookup_docs 도구로 React, OpenAI 등 공식 문서 실시간 조회
- README에 Context7 연동 기능 문서화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:21:46 +09:00
kappa
1e71e035e7 Initial commit: Telegram bot with Cloudflare Workers
- OpenAI GPT-4o-mini with Function Calling
- Cloudflare D1 for user profiles and message buffer
- Sliding window (3 summaries max) for infinite context
- Tools: weather, search, time, calculator
- Workers AI fallback support
- Webhook security with rate limiting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 13:00:44 +09:00