v2.2.324: /naver-trend "<분야> <기간>" 질문이 원문을 통째로 키워드로 조회하던 버그 수정
실사례: `/naver-trend 경제 8/11~8/12` → 키워드 칸에 "경제 8/11~8/12" 가 그대로 박힌 ratio 0.0 짜리 1행 표. 기대는 그 기간에 경제 분야에서 많이 검색된 키워드 목록. 원인 1 — 질문 원문 폴백: parseSearchTrendIntent 가 LLM 후보(keywords)가 비면 질문 원문을 키워드로 채웠다. 기간 표현까지 붙은 문자열이라 검색량이 잡힐 리 없다. 후보가 비면 빈 채로 두고, handlers 가 topic 기반 후보 생성으로 복구하게 변경. isPlausibleKeyword 에 기간 표현 차단(8/11~8/12, 8월 11일, 최근 일주일, 지난 30일) 추가 + 질문 원문·기간 제거 잔여 텍스트와 일치하는 후보 제거. 원인 2 — 분류 누락: 프롬프트가 "<분야> <기간>" 형태를 어느 모드로도 안내하지 않아 LLM 이 contains(포함단어 없음)로 찍고 discover 로 강등되며 topic 까지 버려졌다. "분야명 + 기간만 있는 질문 = discover" 를 프롬프트에 명시하고, 강등 시에도 topic 을 살려 후보 생성에 쓴다. - runContainsMode → runTopicMode 일반화: 포함단어를 선택 인자로 바꿔 "<분야> <기간>" 도 같은 2단 구조(LLM 후보 생성 → 실제 API 검증·앵커 보정 랭킹)를 타게 했다. 분야명 자체는 후보에서 제외(상위 개념이라 늘 1위를 먹고 정보 가치 0). - generateContainingKeywords → generateKeywordCandidates(ai, topic, word?, count) 통합, 포함단어 없을 때 전용 프롬프트 사용. - 비교는 대상 2개 이상일 때만: 키워드 1개짜리 compare 는 표가 늘 100.0 1행이라 무의미 — 그 검색어를 분야로 보고 인기 검색어를 뽑는다. - graceful degradation: AI 가 죽어도 분야명 자체 추이는 보여주고 실패를 명시. 결과가 전부 0 이고 조회 구간에 오늘이 포함되면 "데이터랩 당일 집계 미완" 안내. 검증: tsc 무오류 + jest 1055 통과(신규 12 — 슬래시 라우팅부터 끝까지 태우는 e2e 회귀 3건 포함) + esbuild/vsce 패키징 정상. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
|
||||
"createdAt": 1786452152471,
|
||||
"createdAt": 1786539824316,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
|
||||
"createdAt": 1786452152471,
|
||||
"createdAt": 1786539824316,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
|
||||
"createdAt": 1786452152459,
|
||||
"createdAt": 1786539824310,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
|
||||
"createdAt": 1786452152465,
|
||||
"createdAt": 1786539824311,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+9
-9
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"missionId": "stress_conflict_1786452152446",
|
||||
"missionId": "stress_conflict_1786539824291",
|
||||
"status": "completed",
|
||||
"startTime": "2026-08-11T12:42:32.446Z",
|
||||
"startTime": "2026-08-12T13:03:44.291Z",
|
||||
"totalElapsedMs": 25,
|
||||
"results": {
|
||||
"outline": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
|
||||
@@ -16,28 +16,28 @@
|
||||
"to": "outline",
|
||||
"durationMs": 12,
|
||||
"message": "답변 구조 잡는 중...",
|
||||
"ts": "2026-08-11T12:42:32.458Z"
|
||||
"ts": "2026-08-12T13:03:44.303Z"
|
||||
},
|
||||
{
|
||||
"from": "outline",
|
||||
"to": "section",
|
||||
"durationMs": 1,
|
||||
"durationMs": 7,
|
||||
"message": "본문 작성 중...",
|
||||
"ts": "2026-08-11T12:42:32.459Z"
|
||||
"ts": "2026-08-12T13:03:44.310Z"
|
||||
},
|
||||
{
|
||||
"from": "section",
|
||||
"to": "polish",
|
||||
"durationMs": 6,
|
||||
"durationMs": 1,
|
||||
"message": "최종 다듬기 중...",
|
||||
"ts": "2026-08-11T12:42:32.465Z"
|
||||
"ts": "2026-08-12T13:03:44.311Z"
|
||||
},
|
||||
{
|
||||
"from": "polish",
|
||||
"to": "completed",
|
||||
"durationMs": 6,
|
||||
"durationMs": 5,
|
||||
"message": "미션 완료",
|
||||
"ts": "2026-08-11T12:42:32.471Z"
|
||||
"ts": "2026-08-12T13:03:44.316Z"
|
||||
}
|
||||
],
|
||||
"resilienceMetrics": {
|
||||
Reference in New Issue
Block a user