Skip to content

Feature/diff visualization#12

Merged
Hamsik2rang merged 7 commits into
mainfrom
feature/diff-visualization
Feb 11, 2026
Merged

Feature/diff visualization#12
Hamsik2rang merged 7 commits into
mainfrom
feature/diff-visualization

Conversation

@Hamsik2rang
Copy link
Copy Markdown
Collaborator

Summary

  • /diff 슬래시 커맨드로 Git 변경사항을 이미지로 시각화
  • Puppeteer + diff2html을 사용하여 GitHub 스타일의 diff 이미지 생성
  • 첫 실행 시 Chromium 자동 다운로드 (사용자 설치 불필요)

주요 변경사항

파일 변경 내용
src/slashCommands/diff.ts /diff 슬래시 커맨드 구현
src/utils/diffRenderer.ts diff → PNG 이미지 변환 로직
src/utils/puppeteerSetup.ts Chromium 자동 설치 유틸리티
.gitignore .chromium/ 폴더 제외

사용 방법

!diff # staged 변경사항
!diff unstaged # unstaged 변경사항
!diff all # 모든 변경사항
!diff HEAD~3 # 최근 3개 커밋

Test Plan

  • /diff 명령어로 staged 변경사항 이미지 생성 확인
  • Chromium 미설치 환경에서 첫 실행 시 자동 다운로드 확인
  • 다크/라이트 테마 정상 렌더링 확인
  • exe 빌드 후 정상 동작 확인

참고

  • Chromium은 exe와 같은 폴더의 .chromium/에 설치됨 (~200MB)
  • 이미 Puppeteer 캐시가 있으면 중복 다운로드하지 않음

hamsik2rang-com2us and others added 7 commits February 11, 2026 15:46
- !diff 명령어: git diff를 이미지로 렌더링하여 Discord에 표시
- diff2html + puppeteer로 Fork/SourceTree 스타일의 diff 이미지 생성
- 초록/빨강 배경으로 추가/삭제 라인 시각화
- 민감 파일 필터링 (.env, credentials 등)

주요 파일:
- src/utils/gitDiff.ts: Git diff 실행 및 파싱
- src/utils/diffRenderer.ts: diff → HTML → PNG 변환
- src/commands/diff.ts: !diff, !d, !changes 명령어

사용법:
- !diff              전체 변경사항
- !diff --staged     스테이징된 변경사항만
- !diff <file>       특정 파일만
- !diff HEAD~1       이전 커밋과 비교

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 첫 실행 시 Chromium이 없으면 자동으로 다운로드
- @puppeteer/browsers를 사용하여 chrome-headless-shell 설치
- 설치 경로: exe와 같은 폴더의 .chromium/
- Puppeteer 캐시 폴더도 확인하여 중복 다운로드 방지
- .gitignore에 .chromium/ 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
# Conflicts:
#	.gitignore
#	src/bot.ts
@Hamsik2rang Hamsik2rang merged commit 85bd41c into main Feb 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants