운영자 배포 증거 기반 운영 환류 기록: Feedback Handoff(관찰 사실 + Discovery/REQ/Change Request Input 분리), REL-004 confirmed→feedback-captured, 포함 BAT-014~023 release-candidate→released(register + 개별 index). 후속 입력: issue #16(preallocation 누락, Discovery), dcy-019(REQ 대기), BAT-024(차기 release 편입), daily_symbol_entries 제거(REQ-002 change-req). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
BAT-014: safety-sell 영속 거부 재시도 쿨다운 (per-slot cooldown + 경고 + env)
- Status: released
- Profile: batch-lite
- Source Discovery: dcy-010
- Included REQ: REQ-052, REQ-053, REQ-054
Summary
- dcy-010(safety-sell 영속 거부 재시도 백오프)를 batch-lite 로 delivery 한다.
SafetySellService에 per-slot 인메모리 쿨다운(마지막 시도 시각·시도 횟수)을 추가해 영속 거부(휴장/잔고/규제) 시min_retry_interval_sec(기본 600s) 이내 재시도를 건너뛰고,max_retry_warn_count(기본 3) 도달 시 운영자 WARNING 을 발행한다.SafetySellConfigenv 2종 + runtime-flows 정합. DB/스레드/인터페이스 변경 없음(인메모리만).
Scope
- In Scope:
SafetySellServiceper-slot 쿨다운 추적(_last_attempt/_attempt_count) + skip/만료 재시도 + 경고 로그 + holding 이탈 정리, market_close 제외 (REQ-052)SafetySellConfigmin_retry_interval_sec/max_retry_warn_countenv 2종 (REQ-053)docs/runtime-flows.mdsafety-sell tick 쿨다운 단계 반영 (REQ-054)
- Out of Scope:
- ExecutionService→SafetySellService 거부 사유 피드백 채널, 거부 원인별 차등 쿨다운, 쿨다운 DB 영속, 수동 해제 API, market_close 별도 쿨다운.
Documents
- Planning: planning.md
- Implementation: implementation.md
- Verification: verification.md
Notes
- Profile batch-lite: 소규모(단일 service + config 2종 + 문서), 인메모리만, 구조/인터페이스/DB 변경 없음, 설계가 dcy-010 §4 에 완비 → Design Gate: no(design.md 불요). implementation/verification 은 해당 stage 진입 시 생성.
- OQ-1(600s)/OQ-2(3, 경고만)/OQ-3(단일 per-slot) Answered. NFR-1(인메모리)/NFR-2(무락)/NFR-4(paper reject 시뮬 테스트) 는 REQ-052 AC 로 흡수.
- 발견 근거: REL-003 Feedback / 2026-06-07 실 KIS LIVE SL/TP e2e.