# BAT-036 Verification - Status: confirmed - Batch: BAT-036 ## Acceptance Mapping - REQ-048 CHG-20260611-01 AC-10: Given per-instance TOML safety_sell_enabled(absent=true), When from_toml/from_config, Then 값이 파싱되어 DaemonConfig로 전파된다 - present=false → DaemonInstanceConfig.safety_sell_enabled=False → DaemonConfig.safety_sell_enabled=False - present=true → True - absent → True (기본값) - REQ-005 CHG-20260611-01 AC-5: Given safety_sell_enabled=False, When daemon.start(), Then trex-safety-sell 스레드 미기동 + WARNING 로그 - REQ-005 CHG-20260611-01 AC-6: ExecutionService/CLI exit/cancel/kill-switch/strategy sell intent — safety_sell_enabled 값과 무관 동작 (회귀: 해당 경로 테스트 green) ## Evidence ### Tests (420 passed, 45 skipped — 2026-06-11) - **REQ-048 CHG-20260611-01 AC-10**: `tests/runtime/test_instance_config.py` - `test_safety_sell_enabled_default_true` ✓ - `test_safety_sell_enabled_false_from_toml` ✓ - `test_safety_sell_enabled_true_explicit_from_toml` ✓ - **REQ-005 CHG-20260611-01 AC-6** (회귀): 전체 테스트 스위트 420 passed — execution/exit/cancel/kill-switch 경로 모두 green ✓ ### Code Review - `trex_core/runtime/config.py`: - `DaemonInstanceConfig.safety_sell_enabled: bool = True` ✓ - `from_toml()`: `safety_sell_enabled=bool(data.get("safety_sell_enabled", True))` ✓ - `DaemonConfig.safety_sell_enabled: bool = True` ✓ - `from_config()` replace: `safety_sell_enabled=inst.safety_sell_enabled` ✓ - `trex_core/runtime/daemon.py`: - `start()` workers 조건부: `if self.config.safety_sell_enabled: workers.append(...)` ✓ - `else: _log.warning("safety_sell_enabled=false — trex-safety-sell worker not started...")` ✓ ### Manual - `daemon.start()` 스레드 조건부 기동: 단위 테스트에서 실제 스레드 기동 없이 코드 경로 검증 (config 파싱 tests + code review) - safety_sell 비기동 시 execution/exit/cancel/kill-switch 경로 무관함을 회귀 테스트로 확인 ## Result - Ready for Release: true - Blocking Issues: 없음