자동 탭: 🔤 단어겹침 배지 표시 + AI 추천 실패 경고 문구 명확화

WHY 배지 맵에 word:"🔤" 를 더해 3순위(단어 겹침)로 배정된 카드가 화면에서
구분되게 했다(다른 곳엔 why 값을 쓰는 곳이 없어 auto.js 한 곳만 고치면 된다).
"AI 추천 실패 — 타임스탬프만으로 배정했습니다" 문구는 로그 영역에 묻혀
사용자가 못 보던 경고였다. 무엇이 실패했고(Gemini 응답 없음) 그래서 어떻게
됐는지(분:초·자막단어·좋아요로 대체)가 한 문장에서 드러나도록 고쳤다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
hehihoho3@gmail.com 2026-08-04 18:43:39 +09:00
parent b1c08908ae
commit 011c042778
2 changed files with 6 additions and 4 deletions

View File

@ -553,10 +553,12 @@ async def auto_stream(aid: str) -> StreamingResponse:
if cuts: if cuts:
h["cuts"], h["need"] = cuts, need h["cuts"], h["need"] = cuts, need
if ai_failed: if ai_failed:
# cuts 는 타임스탬프만으로 채워져 비지 않는다 — 이 신호가 없으면 # cuts 는 분:초·단어겹침·좋아요만으로 채워져 비지 않는다 — 이 신호가 없으면
# 429·타임아웃이 조용히 삼켜져 아무도 모른다. # 429·503(재시도까지 소진)이 조용히 삼켜져 아무도 모른다. "무엇이 안 됐고
# 그래서 어떻게 됐는지"를 한 문장에 담는다(사용자가 로그 영역만 보고 지나침).
warnings.append( warnings.append(
f"ID {h.get('id')} AI 추천 실패 — 타임스탬프만으로 배정했습니다") f"ID {h.get('id')} AI 추천 실패(Gemini 응답 없음) — "
"분:초·자막단어·좋아요로 배정했습니다")
except Exception as exc: # noqa: BLE001 — 추천 실패가 생성을 막으면 안 된다 except Exception as exc: # noqa: BLE001 — 추천 실패가 생성을 막으면 안 된다
warnings.append( warnings.append(
f"ID {h.get('id')} 컷별 추천 실패 — 기존 방식으로 표시 " f"ID {h.get('id')} 컷별 추천 실패 — 기존 방식으로 표시 "

View File

@ -194,7 +194,7 @@ function cutGroup(ci,title,sec,quota,isOpen){
갈라 두면 곳만 고치는 실수가 난다(배지·검색·선택 상한이 전부 여기 모여 있다). */ 갈라 두면 곳만 고치는 실수가 난다(배지·검색·선택 상한이 전부 여기 모여 있다). */
function renderCutPanel(box,panelId,data,opts){ function renderCutPanel(box,panelId,data,opts){
const unit=(opts&&opts.unit)||"컷"; const unit=(opts&&opts.unit)||"컷";
const WHY={ts:"⭐",ai:"🤖",like:""}; const WHY={ts:"⭐",ai:"🤖",word:"🔤",like:""};
box.appendChild(searchBar(panelId)); // 카드 섹션들 위 — cardSection 보다 먼저 만들어야 SECS 초기화됨 box.appendChild(searchBar(panelId)); // 카드 섹션들 위 — cardSection 보다 먼저 만들어야 SECS 초기화됨
const cand=(data.candidates||[]).filter(i=>byIdx[i]!==undefined); const cand=(data.candidates||[]).filter(i=>byIdx[i]!==undefined);
if(data.cuts){ if(data.cuts){