You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> 룩백 14일로 확대(명절 연휴 클러스터 커버), live 동기화 실패 시 CYCLE_ERROR 기록,
169
+
> run_rebalance 배선 통합 테스트 보강(스킵/critical 분기).
163
170
> - ⬜ P0-2 SMTP 재발급 — 오너 액션
164
171
> - ⬜ P1~P3 — 대기
165
172
@@ -171,6 +178,19 @@ P0-1(하트비트·재시도)을 먼저 머지하고 재시작하는 순서를
171
178
| 2 |**SMTP_PASSWORD 재발급** (오너 액션 ~5분) | 안정성 | 이메일 경보가 6/11부터 죽어 있어 Discord가 단일 장애점이다. Gmail 앱 비밀번호 재발급 → `.env` 갱신 → `tools/`의 알림 테스트로 확인. **수용: 경보 채널 2개 활성.**|
172
179
| 3 |**일일 리포트 v2**| 편의성 | 현재 리포트(총평가금·현금·일일/누적·MDD·보유·매매)는 "얼마"만 있고 "왜"가 없다. 추가: ① 같은 구간 KS11과 격차 ② 배치율(실제 주식비중 vs 설계 80%) ③ 진행률(n/60, 커버리지 %, 잔여 결측 예산 n일) ④ 미체결 슬롯 경고(예: "하이닉스 0주 — n일째, 자본 결정 대기") ⑤ 누적 비용. 데이터는 전부 evaluator에 이미 있음 — 구현 위치는 #425의 스냅샷 리포트부(core/basket_rebalancer.py). **수용: 리포트만 보고 시장 대비/설계 대비/일정 대비 판단 가능.**|
173
180
181
+
#### 재시도(스케줄링) — 코드가 아니라 크론 설정
182
+
183
+
사이클(`--mode rebalance`)은 멱등하다: NAV 스냅샷은 `(account_key, date)` upsert이고,
184
+
드리프트는 매번 현재 상태에서 재평가하므로 같은 날 재실행이 안전하다(중복 매매·이중 기록 없음).
185
+
따라서 "재시도"는 코드 변경이 아니라 스케줄 작업에 항목을 더하는 일이다:
186
+
187
+
- 기존: `daily-basket-paper-rebalance` (10:00 KST)
188
+
- 추가 권장: 같은 명령을 11:00·14:00 KST에 한 번 더. 10:00 실행이 일시적 사유(가격 조회 실패 등)로
189
+
스냅샷을 못 남겼으면 11:00/14:00 재실행이 그 날 스냅샷을 채운다(당일 복구).
190
+
- 이미 저장된 날 재실행은 upsert라 무해하고, P0-1의 SNAPSHOT_GAP 경보가 여전히 못 채운 결측을 알린다.
191
+
- 한계: PC가 하루 종일 꺼져 있던 경우는 같은 날 복구가 구조적으로 불가능하다 — 이때는 다음 실행의
0 commit comments