도는 이벤트루프 안에서도 보드가 비동기 호출을 안전히 끝내 조용한 폴백을 차단함

문제 (Context)

_enumerate_live_topics가 비동기 실행을 직접 호출했다. 이미 이벤트루프가 도는 상황에서 부르면 RuntimeError가 났고, bare except가 이를 삼켜 보드 전체가 wiki-count 폴백으로 조용히 강등됐다. 강등 사실이 어디에도 드러나지 않아 더 위험했다.

시도한 해결 (Decision)

_run_coro가 두 경로를 가른다. 루프가 이미 돌고 있으면 코루틴을 자체 루프를 가진 전용 워커 스레드에서 완료한다. 루프가 없으면 비동기 실행 빠른 경로를 탄다. 어느 쪽이든 결과를 반환하므로 보드가 폴백으로 새지 않는다.

근거·결과 (Consequences)

두 경로를 각각 덮는 TDD 테스트 2개를 붙였다. 여기에는 예전에 폴백으로 새던 러닝루프 케이스도 포함한다.

노드 계약 (contract)

필드
type결정(decision)
Statusaccepted
source_count1
confidence미설정 — 구 엔진 격차
confidence_reason_codes미설정 — 구 엔진 격차
stalefresh
이슈(feature)검증·증거·회귀

시행착오 타임라인 (supersede)


이슈 회귀 스위트·검증 원장 · Status accepted · 2026-06-25