- 7페이지 상세 PPTX 생성 (표지/API단가/비용비교/팀비용/상세비교/전환가이드/결론)
- PricingController download 메서드 추가
- 페이지 헤더에 PPTX 다운로드 버튼 추가
- .gitignore에 public/downloads/*.pptx 예외 추가
- 9.svg: 보안 필터 = 입장 불가 명단 (경비원/차단목록 비유)
- 10.svg: 정적 자산 캐싱 = 냉장고 보관 (캐시 히트 vs 미스 비교)
- 11.svg: 502/504/403/413 에러 카드 4종 (원인/해결 가이드)
- 12.svg: 핵심 정리 총괄 인포그래픽 (6대 기능 원형 배치)
- 기존 AI 생성 PNG 12장을 기술적으로 정확한 SVG 다이어그램으로 교체
- 제조 공정 섹션(Section 3)에 신규 SVG 3장 추가 (롤포밍, 조립, 검사)
- Blade 파일에서 .png → .svg 참조 변경 12곳
- 제조 공정 블록에 이미지 삽입 3곳
- 1.svg: Hero 이미지 (Docker 고래 로고 + 컨테이너 비유)
- 2.svg: 컨테이너 vs VM 비교 다이어그램
- 3.svg: SAM 전체 아키텍처 다이어그램 (9개 서비스)
- 4.svg: 요청 흐름 5단계 시각화
- 5.svg: 서비스별 내부 프로세스 구조 (Supervisor)
- 1.svg: 서버룸 히어로 이미지
- 2.svg: SAM 5-서비스 건물 지도
- 3.svg: 요청 처리 흐름도
- 4.svg: Linux 사용자/그룹 조직도
- 5.svg: drwxrwxr-x 권한 해독 인포그래픽
- 6.svg: umask 계산법 (666 - 022 = 644)
- 7.svg: 사고 타임라인 5단계
- 8.svg: Git 배포 택배 비유
- 9.svg: Hook 동작 흐름 + 권한 체크포인트
- 10.svg: 금지 작업 경고 카드
- 11.svg: 올바른 대응 절차 4단계
- 12.svg: 안전/위험 명령 비교 테이블
- Gemini 생성 기술 일러스트레이션 12장 적용
- 히어로 배너 (샤프트 어셈블리 이미지)
- ASCII 다이어그램 → 실제 구성도 이미지 교체
- 이미지-텍스트 카드 레이아웃 (좌우 교차 배치)
- 설치/유지보수 섹션 히어로 이미지 추가
- 이미지 클릭 라이트박스 (순수 JS/CSS)
- max-w-5xl → max-w-6xl 폭 확대
- DocumentTemplateApiController: 이미지 업로드 API 파일저장소 연동
- 양식 편집: 미리보기 모달 개선
- 문서 편집: UI 개선
- 빌드 에셋 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- DocumentTemplateController: common_codes(doc_template_basic_field) 조회하여 뷰에 전달
- prepareTemplateData: basic_fields에 field_key 포함
- DocumentTemplateApiController: basic_fields 저장 시 field_key 포함
- edit.blade.php: 기본필드 행에 '연동키 선택' 드롭다운 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
체크된 메뉴 항목들을 함께 드래그하여 이동할 수 있도록 개선:
- 상위 메뉴 체크 시 하위 메뉴도 함께 그룹으로 묶여서 이동
- 드래그 중 그룹 항목 수 뱃지 표시
- 드래그 인디케이터에 그룹 개수 표시
- 그룹 이동 시 순차적으로 API 호출
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
서버에서 @vite() 사용 시 manifest.json이 없어 500 에러 발생.
.gitignore에서 public/build/ 제외하고 빌드 결과물을 커밋하여 서버 배포.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. /menus 페이지 hx-boost 네비게이션 시 SortableJS 미실행 수정
- htmx:afterSettle 이벤트로 페이지별 스크립트 초기화
- menu-sortable.js로 SortableJS 로직 분리
- 중복 코드 제거
2. 세션 만료 시 자동 갱신 로직 추가
- /auth/refresh-session 엔드포인트 추가
- Remember Token으로 자동 재인증 (자동 로그인 사용자)
- 재인증 실패 시 로그인 페이지 리다이렉트
- 견적 시뮬레이터 UI 레이아웃 개선 (가로 배치, 반응형)
- FlowTester ConditionEvaluator 클래스 추가 (조건부 실행 지원)
- FormulaEvaluatorService 기능 확장
- DependencyResolver 의존성 해결 로직 개선
- PushDeviceToken 모델 확장 (FCM 토큰 관리)
- QuoteFormula API 엔드포인트 추가
- FlowTester 가이드 모달 업데이트
- AdminFcmController, AdminFcmService 추가
- FormRequest 검증 (AdminFcmSendRequest 등)
- Swagger 문서 추가 (AdminFcmApi.php)
- ApiKeyMiddleware: admin/fcm/* 화이트리스트 추가
- FCM 에러 메시지 i18n 추가
- 메뉴 등록/수정: 부모 메뉴 선택에서 아이콘 제거 (메뉴명만 표시)
- 글로벌 메뉴: 아이콘 그리드 선택기, 확장 옵션(section, meta) 추가
- 페이지네이션: per_page 쿠키 값이 서버 기본값으로 덮어쓰이는 버그 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 히스토리 로드 기능 구현 (loadFromHistory, fillFormFromHistory)
- 클라이언트 사이드 필수값 밸리데이션 추가
- 응답 본문 \xXX UTF-8 바이트 시퀀스 디코딩 (PHP 스택트레이스 한글 깨짐 해결)
- sidebar에 data-operation-id 속성 추가
- history-drawer 함수 연결 수정
- Flow Tester 변수 바인딩 개선
- 마이그레이션 파일 통합 정리
- pagination.blade.php: data-server-value 속성 추가, 즉시 실행 스크립트로 서버값 강제 설정
- pagination.js: htmx:afterSwap에서 쿠키값 대신 서버값(data-server-value) 우선 사용
- item-fields: 페이지네이션 추가, handlePageChange/handlePerPageChange 핸들러 구현
- 디버그 코드 제거
레거시 5130.sam.kr/ai_sam의 Google Gemini Live API 음성 어시스턴트를
MNG 프로젝트로 이전 (React → Pure JS + Blade)
변경 내용:
- GeminiController: API 키 제공 엔드포인트 추가
- sam-ai-live.js: LiveManager, AudioVisualizer ES 모듈
- sam-ai-menu.blade.php: 전면 재작성 (Tailwind UI)
- 환경변수: GEMINI_API_KEY, GEMINI_PROJECT_ID 추가
기능:
- 실시간 음성 입출력 (WebAudio API)
- UI 도구: navigateToPage, searchDocuments
- 오디오 시각화 (Canvas API)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>