**task-1051.1 완료 보고** (dev4-team) **완료 보고서** (5분 21초) **핵심 결과** `_cache_item_to_topic()` return dict에 `"published": item.get("published", "")` 1줄 추가로 해결. 기존 63개 테스트 전부 PASS, 신규 5개 테스트 추가하여 총 63건 PASS. pyright 에러 0건. ## 수정 파일 - `content/topic_selector.py` (라인 192): `published` 필드 추가 - `tests/test_topic_selector.py`: `TestCacheItemPublished` 클래스 5건 추가 ## 관련 함수 확인 결과 - `_cache_item_to_topic()`: published 필드 추가 완료 - `select_trend_topics()`: `_cache_item_to_topic()` 호출하므로 자동으로 published 전달됨 - `select_single_topic()`: 에버그린 토픽만 사용 (뉴스/유튜브 캐시 미사용) → 변경 불필요 - YouTube 캐시: `published` 필드 존재 확인, 동일하게 보존됨 ## 테스트 결과 - topic_selector 테스트: **63 passed** (기존 58 + 신규 5) - 전체 프로젝트: **1774 passed, 37 failed** (37건 모두 본 작업 범위 밖) - pyright: **0 errors, 0 warnings** - black/isort: 준수 ⚠️ 기존 테스트 실패 37건 (본 작업 범위 외): test_crawler(4), test_cta_linebreak(1), test_evergreen_ 테스트: pyright 0 errors **발견/해결 이슈 3건** 1. **_cache_item_to_topic()에 published 필드 누락** — `"published": item.get("published", "")` 추가로 해결 2. **YouTube 캐시의 published 필드도 누락 가능성** — 동일 함수에서 처리하므로 자동 해결 확인 3. **published=None인 캐시 아이템 존재 가능성** — `item.get("published", "")` 패턴이 key가 존재하면 값 그대로 반환(None 포함), `_get_date_guidance()`에서 `if not published:` 로 None도 안전 처리됨