[{"data":1,"prerenderedAt":462},["ShallowReactive",2],{"doc:\u002Fhistory\u002Fhistory.20260605":3},{"id":4,"title":5,"body":6,"description":421,"extension":455,"meta":456,"navigation":457,"path":458,"seo":459,"stem":460,"__hash__":461},"docs\u002Fhistory\u002Fhistory.20260605.md","작업 이력 — 2026-06-05",{"type":7,"value":8,"toc":420},"minimark",[9,13,17,26,159,164,188,192,216,219,222,230,242,250,260,266,276,282,292,298,308,314,324,330,340,346,356,362,372,378,388,394,404,410],[10,11,5],"h1",{"id":12},"작업-이력-2026-06-05",[14,15,16],"h2",{"id":16},"종합",[18,19,20,21,25],"p",{},"오늘 5개 흐름 진행 — 답변 없는 문의 추천 답변 모드, PMS UI 폴리시 다회, ",[22,23,24],"strong",{},"hp_image_asset 신설(Vision 자동 캡션)",":",[27,28,29,41,81,137],"ol",{},[30,31,32,35,36,40],"li",{},[22,33,34],{},"답변 없는 문의 → inquiry-only 모드"," — ",[37,38,39],"code",{},"QA_INQUIRY_ONLY_SYSTEM_PROMPT"," 신설. resp 없으면 5축 평가 생략하고 D축 1개에 추천 답변 6개(짧은\u002F긴\u002F친절\u002F비즈니스\u002FFAQ\u002F단계별)만 wrap. 모호한 문의면 commentary에 \"추가 확인 필요 정보\" 명시.",[30,42,43,46,47],{},[22,44,45],{},"PMS UI 폴리시 라운드"," (10회 배포)",[48,49,50,57,64,71,74],"ul",{},[30,51,52,53,56],{},"임베드 시그널 ",[37,54,55],{},"modal=open"," 다시 포함 → 모달 진입 시 게시글 목록 버튼\u002Fbreadcrumb 숨김",[30,58,59,60,63],{},"빈 상태 카드: ",[37,61,62],{},"tb_post"," 코드 라벨 제거, \"1.5초 시뮬레이션\" 안내 제거. \"약 30초~1분 소요\" 안내만 남김",[30,65,66,67,70],{},"메타 일시 표시: ISO → ",[37,68,69],{},"yyyy.MM.dd HH:mm:ss"," 한 줄, MetaTile 폰트 18→14px",[30,72,73],{},"PersonBlock: UTooltip 안 텍스트가 안 보이던 이슈 fix (title 속성으로 대체), 이름·뱃지·이메일을 한 줄로 (좁으면 wrap)",[30,75,76,77,80],{},"추천 답변 가독성: 문단 간격 ",[37,78,79],{},"my-3",", line-height 1.8, 폰트 13px, 패딩 py-4",[30,82,83,86,87],{},[22,84,85],{},"hp_image_asset 신설 + 자동 Vision 캡션"," (오늘의 핵심)",[48,88,89,96,110,125,128,134],{},[30,90,91,92,95],{},"5번째 hp_* 테이블. ",[37,93,94],{},"src_path"," UNIQUE(prefix 191 — MySQL 5.6 utf8mb4 767 byte 한도 대응)로 한 이미지는 한 번만 분석",[30,97,98,101,102,105,106,109],{},[37,99,100],{},"analyzeAndStoreImage()",": 캐시 hit이면 usage_count++, 없으면 GPT-4o Vision으로 ",[37,103,104],{},"title"," + ",[37,107,108],{},"description"," 생성 → INSERT",[30,111,112,113,116,117,120,121,124],{},"eval\u002Fgenerate에서 본문(",[37,114,115],{},"inquiry",") + 응답(",[37,118,119],{},"reply",") HTML의 ",[37,122,123],{},"\u002Fdata\u002F*"," 이미지 추출 → 병렬 분석·저장 (최대 16장)",[30,126,127],{},"HP-SCHEMA.md 3-5 섹션 + DDL 추가",[30,129,130,133],{},[37,131,132],{},"\u002Fadmin\u002Fmigrate\u002Fhp_image_asset?confirm=yes"," 일회용 엔드포인트로 마이그레이션 완료",[30,135,136],{},"검증: post 149694의 이미지 9장이 정확한 한국어 캡션으로 저장 (예: \"메시지관리 메뉴 화면\", \"발신프로필 정보 화면\", \"알림톡 템플릿 수정 화면\")",[30,138,139,142,143,146,147,150,151,154,155,158],{},[22,140,141],{},"표준답변 저장 흐름 정리"," — 사용자 질의에 따라 전 경로 (QaEvalCard ",[37,144,145],{},"save-template"," emit → ",[37,148,149],{},"POST \u002Fstandard-answers"," → ",[37,152,153],{},"hp_standard_answer"," INSERT) 문서화. axisLetter는 모두 ",[37,156,157],{},"'D'","로 고정.",[160,161,163],"h3",{"id":162},"결정사건","결정\u002F사건",[48,165,166,173,179,182],{},[30,167,168,169,172],{},"AI Gateway는 ",[37,170,171],{},"malgn-helper2"," + Provider OpenAI 키 + Authorization+cf-aig-authorization 헤더 조합으로 안정 운영",[30,174,175,176,178],{},"hp_image_asset의 ",[37,177,94],{},"는 VARCHAR(500)이지만 UNIQUE 인덱스는 prefix 191자만 — utf8mb4 4byte × 191 = 764 byte ≤ 767 한도",[30,180,181],{},"inquiry-only 응답의 axes는 D축 1개만 들어가지만 UI는 그대로 정상 동작 (5축 평가 섹션은 D축 카드 1개 + 추천 답변 섹션은 별도 분리되어 표시)",[30,183,184,187],{},[37,185,186],{},"\u002Fadmin\u002Fmigrate\u002Fhp_image_asset"," 엔드포인트는 일회용 — 후속 정리 시 코드에서 제거 권장",[160,189,191],{"id":190},"다음-작업-후보","다음 작업 후보",[48,193,194,201,207,210,213],{},[30,195,196,197,200],{},"안내글 평가(",[37,198,199],{},"\u002Fpms\u002Fposts\u002F:id\u002Fannounce-eval\u002Fgenerate",") PMS UI 통합 — 코드만 들어가 있음",[30,202,203,206],{},[37,204,205],{},"hp_image_asset","을 표준답변·챗봇 컨텍스트로 활용 (이미지 설명을 텍스트로 인용)",[30,208,209],{},"관리자 화면에 이미지 카탈로그 (검색·태그 큐레이션)",[30,211,212],{},"OpenSearch 셋업 + 자료 업로드 MVP (M2 진입)",[30,214,215],{},"inquiry-only 응답에 axes가 D축만 들어갈 때 UI에서 5축 평가 섹션 숨기는 분기",[217,218],"hr",{},[14,220,221],{"id":221},"배포",[160,223,225,226,229],{"id":224},"_1109-malgn-helper-api-cloudflare-workers","11:09 — ",[37,227,228],{},"malgn-helper-api"," → Cloudflare Workers",[48,231,232,239],{},[30,233,234,235,238],{},"커밋: ",[37,236,237],{},"2b0689d"," (신규 커밋: yes)",[30,240,241],{},"메시지: feat(eval): 답변이 없는 문의는 inquiry-only 모드로 추천 답변 6개만 생성",[160,243,245,246,249],{"id":244},"_1116-malgn-helper-pms-cloudflare-pages","11:16 — ",[37,247,248],{},"malgn-helper-pms"," → Cloudflare Pages",[48,251,252,257],{},[30,253,234,254,238],{},[37,255,256],{},"a3d0f43",[30,258,259],{},"메시지: fix(projects): modal=open도 임베드 시그널에 다시 포함 — 모달 진입 시 게시글 목록 버튼 숨김",[160,261,263,264,249],{"id":262},"_1117-malgn-helper-pms-cloudflare-pages","11:17 — ",[37,265,248],{},[48,267,268,273],{},[30,269,234,270,238],{},[37,271,272],{},"9205573",[30,274,275],{},"메시지: chore(ui): 빈 상태 카드 문구 정리 — tb_post 코드 라벨·1.5초 시뮬레이션 안내 제거",[160,277,279,280,249],{"id":278},"_1119-malgn-helper-pms-cloudflare-pages","11:19 — ",[37,281,248],{},[48,283,284,289],{},[30,285,234,286,238],{},[37,287,288],{},"20c17f3",[30,290,291],{},"메시지: chore(ui): 빈 상태 카드에 생성 소요 시간 안내 복원 (약 30초~1분)",[160,293,295,296,249],{"id":294},"_1134-malgn-helper-pms-cloudflare-pages","11:34 — ",[37,297,248],{},[48,299,300,305],{},[30,301,234,302,238],{},[37,303,304],{},"795bdc3",[30,306,307],{},"메시지: feat(QaEvalCard): 문의·응답 일시를 yyyy.MM.dd HH:mm:ss 형식으로 표시",[160,309,311,312,249],{"id":310},"_1137-malgn-helper-pms-cloudflare-pages","11:37 — ",[37,313,248],{},[48,315,316,321],{},[30,317,234,318,238],{},[37,319,320],{},"11f92a0",[30,322,323],{},"메시지: chore(QaEvalCard): 문의·응답 메타타일에 날짜+시간 한 줄로 합쳐 표시",[160,325,327,328,249],{"id":326},"_1139-malgn-helper-pms-cloudflare-pages","11:39 — ",[37,329,248],{},[48,331,332,337],{},[30,333,234,334,238],{},[37,335,336],{},"a47445a",[30,338,339],{},"메시지: fix(QaEvalCard): PersonBlock에서 UTooltip 제거 → 이름이 안 보이던 이슈 fix (title 속성으로 툴팁 대체)",[160,341,343,344,249],{"id":342},"_1140-malgn-helper-pms-cloudflare-pages","11:40 — ",[37,345,248],{},[48,347,348,353],{},[30,349,234,350,238],{},[37,351,352],{},"0446352",[30,354,355],{},"메시지: chore(ui): MetaTile value 폰트 18px→14px — 한 줄 일시 표시 시 줄바꿈 방지",[160,357,359,360,249],{"id":358},"_1144-malgn-helper-pms-cloudflare-pages","11:44 — ",[37,361,248],{},[48,363,364,369],{},[30,365,234,366,238],{},[37,367,368],{},"b17be67",[30,370,371],{},"메시지: chore(QaEvalCard): PersonBlock의 이름·뱃지·이메일을 한 줄로 표시 (좁으면 wrap)",[160,373,375,376,249],{"id":374},"_1147-malgn-helper-pms-cloudflare-pages","11:47 — ",[37,377,248],{},[48,379,380,385],{},[30,381,234,382,238],{},[37,383,384],{},"ecd7955",[30,386,387],{},"메시지: chore(QaEvalCard): 추천 답변 가독성 — 문단 간격(my-3) + 줄간격(1.8) + 폰트 13px 적용",[160,389,391,392,229],{"id":390},"_1201-malgn-helper-api-cloudflare-workers","12:01 — ",[37,393,228],{},[48,395,396,401],{},[30,397,234,398,238],{},[37,399,400],{},"b3ce7e1",[30,402,403],{},"메시지: feat(image-asset): hp_image_asset 신설 + Vision으로 PMS 자산 이미지 자동 캡션·설명 추출·저장",[160,405,407,408,229],{"id":406},"_1852-malgn-helper-api-cloudflare-workers","18:52 — ",[37,409,228],{},[48,411,412,417],{},[30,413,234,414,238],{},[37,415,416],{},"137dc9c",[30,418,419],{},"메시지: fix(hp_image_asset): UNIQUE 인덱스 prefix 255→191 (MySQL 5.6 utf8mb4 키 길이 767 byte 제한)",{"title":421,"searchDepth":422,"depth":422,"links":423},"",3,[424,429],{"id":16,"depth":425,"text":16,"children":426},2,[427,428],{"id":162,"depth":422,"text":163},{"id":190,"depth":422,"text":191},{"id":221,"depth":425,"text":221,"children":430},[431,433,435,437,439,441,443,445,447,449,451,453],{"id":224,"depth":422,"text":432},"11:09 — malgn-helper-api → Cloudflare Workers",{"id":244,"depth":422,"text":434},"11:16 — malgn-helper-pms → Cloudflare Pages",{"id":262,"depth":422,"text":436},"11:17 — malgn-helper-pms → Cloudflare Pages",{"id":278,"depth":422,"text":438},"11:19 — malgn-helper-pms → Cloudflare Pages",{"id":294,"depth":422,"text":440},"11:34 — malgn-helper-pms → Cloudflare Pages",{"id":310,"depth":422,"text":442},"11:37 — malgn-helper-pms → Cloudflare Pages",{"id":326,"depth":422,"text":444},"11:39 — malgn-helper-pms → Cloudflare Pages",{"id":342,"depth":422,"text":446},"11:40 — malgn-helper-pms → Cloudflare Pages",{"id":358,"depth":422,"text":448},"11:44 — malgn-helper-pms → Cloudflare Pages",{"id":374,"depth":422,"text":450},"11:47 — malgn-helper-pms → Cloudflare Pages",{"id":390,"depth":422,"text":452},"12:01 — malgn-helper-api → Cloudflare Workers",{"id":406,"depth":422,"text":454},"18:52 — malgn-helper-api → Cloudflare Workers","md",{},true,"\u002Fhistory\u002Fhistory.20260605",{"title":5,"description":421},"history\u002Fhistory.20260605","qzQvsK_bDPLX-kD-ynA5xvrEIxSWLpMh_OqSuJzpJOU",1780986551106]