feat(retry): #2 AI retry 수동 trigger (v0.2.3 5/7) #17
Reference in New Issue
Block a user
Delete Branch "feat/v023-ai-retry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
v0.2.3 cut 7항목 중 5번째 — AiWorker 의 unreachable/timeout 실패는 attempts 증가 없이 무한 retry (15분 cap exponential), schema/other 만 max 3 후 markAiFailed (기존 정책). 사용자 '지금 AI 처리 (실패 N건)' 트레이/배너 trigger 로 모든 ai_status='failed' 노트 일괄 재투입.
선행: PR #13 (#7), #14 (#4), #15 (#5), #16 (#1).
Decisions (mini-brainstorm)
Architecture
roadmap deviation
§3 #2 In 의 'timeout 도 attempts 증가' 와 Q2=A (timeout=unreachable) 이 충돌. 의식적 — v0.2.4 dogfood 데이터로 영구 hang 케이스 식별 후 가다듬기.
Telemetry
Tests
18 신규 단위 (spec §6 의 17개 충족 + 1 over):
Gates
Test plan
Refs
🤖 Generated with Claude Code
round 1: APPROVE 0 blocker. spec §10.1 7항목 매핑 100%. Q1/Q2/Q3 결정 코드 정확 반영. Q2 timeout=unreachable deviation 의식적 (spec §10.3 명기). 5건 코멘트 모두 minor/nit (비차단):
typecheck 0 / 단위 362/362 / e2e 1/1.
round 2: 4건 round 1 fix 정확. m1 OR IGNORE race test 추가 (363 +1). m2 store.ts r.count discard 주석. n1 step cap if-가드. n2 max-comment. n3 v0.2.4 backlog (#24 banner theme cleanup 흡수). Gates: typecheck 0 / 단위 363/363 / e2e 1/1. 신규 regression 0.