HOYA InstaCard Studio — 크롬 확장 프로그램
=============================================

[설치]
1. HOYA_InstaCard_Studio_UPDATED.zip 파일을 압축 해제합니다.
2. 크롬 주소창에 chrome://extensions 를 입력합니다.
3. 화면 오른쪽 위 '개발자 모드'를 켭니다.
4. '압축해제된 확장 프로그램을 로드합니다' → 압축 해제한 HOYA_InstaCard_Studio_UPDATED 폴더를 선택합니다.
5. 크롬 도구모음의 'HOYA InstaCard Studio' 확장 프로그램 아이콘을 클릭합니다.
6. 화면 아래 'Gemini API 키'에 본인 키를 입력하고 저장합니다. 키는 해당 브라우저의 확장 프로그램에만 저장됩니다.

[사용]
1. 카드뉴스 주제 입력 → 이미지 5~10장 생성 → 수정/검토
2. '카드 내용으로 본문 만들기'를 눌러 인스타그램 본문 편집
3. 인스타그램에 먼저 로그인되어 있는지 확인하고 '인스타그램 자동 첨부 · 게시 직전까지' 클릭
4. 기존 인스타그램 탭(없으면 새 탭)에서 자동 첨부 진행 상황 확인
5. 실제로 이미지 전체가 들어왔는지, 순서/자르기 비율이 4:5인지, 본문이 맞는지 직접 확인
6. 마지막 '공유/게시' 버튼만 직접 클릭합니다. 확장 프로그램은 최종 게시 버튼을 자동으로 누르지 않습니다.

[테스트 범위와 주의사항]
- 카드뉴스 편집 화면, 1080×1350 캔버스 생성, 파일 5장 첨부, 다음 단계 이동, 본문 입력,
  게시 버튼 미클릭은 인스타그램 모의 작성 화면으로 자동 테스트하였습니다.
- 실제 사용자의 Instagram 계정과 Instagram 라이브 DOM에서 최종 검증한 것은 아닙니다.
  인스타그램 화면 변경, 다중 이미지 입력 방식, 크롭/필터 선택에 따라 동작이 달라질 수 있습니다.
  '완료' 표시만 믿지 말고 이미지 갯수와 미리보기·캡션을 반드시 확인하세요.
- 해당 크롬에서 로그인한 인스타그램 계정으로 열립니다. 다른 계정에 게시하지 않도록 계정을 확인하세요.
- 인스타그램 최종 게시 버튼은 자동으로 누르지 않습니다.
- Pollinations AI / Picsum 및 Gemini는 외부 인터넷 서비스입니다. API 정책, 이용 요금, 제한,
  네트워크 접근에 따라 이미지 생성 및 AI 문구 생성이 실패할 수 있습니다.
- 본 프로그램은 사용자의 컴퓨터에서 동작하며 인스타그램 로그인 아이디/비밀번호를 받거나 저장하지 않습니다.
- 여러 PC에서 사용하려면 각 PC마다 확장 프로그램을 설치하고 Gemini 키를 입력해야 합니다.
- 이 폴더에서 파일을 삭제하거나 위치를 바꾸면 확장 프로그램이 작동하지 않을 수 있습니다.
- API 키를 코드/ZIP/공개 GitHub 저장소에 넣지 마세요.

[구성]
index.html: 카드뉴스 UI
app.js: 카드뉴스 생성/편집
post-prep.js: 게시글 작성 및 이미지 파일 준비
instagram.js: 인스타그램 페이지의 이미지 자동 첨부/본문 입력
background.js: 탭-작업 매칭 및 확장 프로그램 내부 데이터 전달
vendor/: 라이브러리 및 오프라인 이미지 출력기

버전: 1.0.0 / Chrome Manifest V3

[1.1 변경사항]
- /create/select/ 직접 이동 제거, 기존 인스타그램 탭 재사용
- 데스크톱 홈에서 만들기 → 게시물 열기
- 완료 알림 4.5초 뒤 자동 닫힘
- 이미지 실제 서버 업로드를 확인하지 못한 경우 완료 보장 문구 제거

[1.3 변경사항 — 이미지 API 키 불필요]
- 기존 익명 image.pollinations.ai 주소를 사용합니다. 별도 Pollinations API 키 입력 없음.
- 이 주소는 현재 공식 인증형 API가 아닌 레거시 익명 엔드포인트입니다. 언제든 제한/차단될 수 있습니다.
- 카드별로 45초 이상 간격을 두고 요청하므로 5장 생성 시 수 분 걸릴 수 있습니다.
- 402/429 응답이면 무료 한도 초과로 표시하며 임의 사진으로 대체하지 않습니다.
- Gemini 텍스트 생성 API 키는 여전히 필요합니다.

v1.6 변경:
- 카드 화면 하단에 🎲 무작위 배경 버튼 추가 (사용자가 직접 누를 때만 Picsum 이미지 선택)
- 인스타그램 /create/select/ 직접 경로를 사용해 게시물 작성창을 빠르게 시도
- 첨부창 감지는 최대 12초만 대기하고 실패 사유를 표시
주의: Instagram이 직접 경로를 막거나 UI를 변경하면 자동 첨부가 실패할 수 있습니다.
기존 탭을 재사용하며, 최종 게시 버튼은 누르지 않습니다.

[v1.8] 카드뉴스 글 생성 모델을 Gemini 3.5 Flash-Lite (gemini-3.5-flash-lite)로 고정. 3 Flash 자동 대체 없음.

[v2.0] Instagram 화면 안정화
- 게시물 작성 팝업의 만들기/게시물 메뉴 탐색 개선
- multiple 속성이 없는 숨겨진 파일 입력창에서도 여러 파일을 전달하도록 변경 (v1.9의 즉시 실패 버그 수정)
- 파일 입력창에 5개가 들어갔다는 이유만으로 성공으로 표시하지 않고 실제 썸네일/수량 정보 검사
- 실제 Instagram 서버/DOM에 로그인해 직접 검증한 것은 아님. 미확인 시 자동 입력 중단.

[v2.1] 인스타그램 진행 및 카드뉴스 정보량 개선
- 게시물 작성창 열기 탐색 강화 및 최대 60초 동안 수동 팝업 열기도 감지
- 사진 5장 전송 후 썸네일이 없다는 이유만으로 자동 입력을 중단하던 버그 수정
- 인스타그램의 다음(Next) 버튼 탐색/진행 강화 (공유/게시 버튼은 누르지 않음)
- 실제 사진 등록 개수가 확인되지 않으면 불확실하다고 알림. 사용자에게 확인 요청
- Gemini 3.5 Flash Lite 유지. 2번부터 정보 카드 본문을 2~3문장, 약 75~120자로 요청
- 라이브 인스타그램과 Gemini 생성 결과를 직접 검증한 버전은 아님.

[v2.1 추가] 기존 카드 부연 설명 보강 버튼
- 이미 생성한 카드의 제목/태그/아이콘/배경 사진을 유지하며 설명만 Gemini 3.5 Flash Lite로 재작성합니다.
- 이미지 생성 API를 재호출하지 않습니다. 버튼을 누를 때만 Gemini 호출 1회가 발생합니다.
- 자동화 중 '5장 썸네일 확인 실패'를 업로드 실패로 간주하지 않습니다. 최종 공유 전 실제 사진 수를 반드시 확인하세요.
- 실제 인스타그램 계정/브라우저의 모든 DOM 변형에 대한 동작은 보장되지 않습니다.

[v2.2 긴급 안전 수정]
- v2.1에서 게시물 입력창을 못 찾았을 때 인스타그램 페이지 전체의 마지막 file input을 쓰던 위험한 fallback 제거
- 반드시 새 게시물 만들기 모달 내부의 file input만 허용
- 프로필 사진 변경/프로필 편집 모달은 차단
- 확인 불가능한 UI에서는 업로드 시도 대신 안전하게 중단
- 실패 시 미완료 작업 연결 해제, 이후 새로고침으로 자동 재실행하지 않음
- 실제 인스타그램 화면에서 정상 업로드 완주 테스트를 하지 못했으므로 안전을 위해 자동 업로드가 중단될 수 있음
