Files
trex-core/docs/batches/bat-041_20260612_long-term-instance-profile/planning.md
T
genichinandClaude Sonnet 4.6 6786ffd05d docs(discovery): dcy-027 모든 OQ Answered — 중장기 슬롯 운영 결정 완료
OQ-1: (a′) 기존 슬롯 도메인 유지 + 운영 프로파일/규칙 추가 (PositionBook 불필요)
OQ-2: safety_sell_enabled=false → 코어 손절매 루틴 없음, 전략 모듈 전적 책임
OQ-3: per-instance watchdog_timeout_sec 연장 (1800s 이상 권장), 알림은 후속 Discovery
OQ-4: 중장기 전략 폴링 주기 최소 1분·최대 10분

feat(bat-041): REQ-076/077/078 — watchdog timeout TOML + 중장기 운영 프로파일 + baseline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 22:19:33 +09:00

2.8 KiB

BAT-041 Planning

  • Status: confirmed
  • Batch: BAT-041
  • Profile: standard

Included REQ

  • REQ-076: watchdog timeout per-instance TOML(watchdog_timeout_sec, TOML 우선·env 폴백). AC 4.
  • REQ-077: 중장기 운영 프로파일 — config/longterm.example.toml 레시피 + 기동 구성·병행 무간섭 검증. AC 4.
  • REQ-078: baseline 정합 — 중장기 흐름 + 보호 규칙 경계 + forced_close_at 미사용. AC 3.

Delivery Plan

  1. config.py — DaemonInstanceConfig.watchdog_timeout_sec: Optional[int] = None + from_toml 파싱(>0 검증) + from_config 에서 값 존재 시 SafetySellConfig override(dataclasses.replace).
  2. config/longterm.example.toml — instance_key/safety_sell_enabled=false/watchdog_timeout_sec=1800/max_active_slots + 키별 중장기 의미 주석(forced_close_at 미사용 포함).
  3. 테스트 — TOML 로딩(1800 적용)/미설정 env 폴백(120)/인스턴스별 독립/프로파일 조합 기동 구성(워커 미기동 + timeout 적용), instance 격리 회귀.
  4. docs/runtime-flows.md — 중장기 병행 운영 흐름 섹션(토폴로지/프로파일/보호 경계/forced_close_at 미사용) + Change Log.

Dependencies

  • Internal:
    • SafetySellConfig.watchdog_timeout_sec 소비자 2곳 확인 완료 — slots RPC 핸들러(daemon.py:284), SafetySellService(_cfg.watchdog_timeout_sec). override 가 config.safety_sell 에 반영되면 두 경로 모두 자동 적용.
    • 기존 TOML 패턴(max_active_slots/default_order_timeout_sec/safety_sell_enabled) 준용.
    • BAT-036(safety_sell_enabled=false 워커 미기동) 기존 evidence — 프로파일 검증에서 재사용.
  • External: 없음 (paper broker 로 검증, 라이브 불요).

Design Gate

  • Design Required Before Implementation: yes
  • Reason: TOML→SafetySellConfig override 주입 지점(frozen dataclass replace), env 폴백 우선순위 의미, 프로파일 검증 범위(설정 단위 vs 실 데몬)를 design 에서 확정.

Milestones

  1. Design confirmed — override 경로·검증 범위 확정
  2. Implementation — config + example TOML + 테스트 + baseline 문서
  3. Verification — REQ-076/077/078 AC 매핑 + 전체 회귀(NFR-1) + ruff

Risks

  • R-1 (Low): override 가 SafetySellService 에는 적용되고 slots RPC 핸들러에 미적용(또는 역) — 완화: 단일 지점(config.safety_sell) override 로 두 소비자 자동 일치, 테스트로 확인.
  • R-2 (Low): frozen dataclass 수정 시도 오류 — 완화: dataclasses.replace 사용.
  • R-3 (Low): 일자 경계·재시작 시나리오를 실시간 재현 불가 — 완화: 영구 슬롯 DB 영속(dcy-020 기존 보장) + 자율 청산 미발화는 설정 단위 검증 + BAT-036 evidence 재참조로 충족(S-1 의 run-the-app 전수 재현은 release 운영 검증으로 위임, verification 에 명시).