BAT-037: available_slots capacity hint (REQ-073 CHG) BAT-038: 매도 증권거래세 누락 수정 (REQ-018 CHG, issue #24) BAT-039: paper order seq Redis 영속화 (REQ-011 CHG, issue #4) BAT-040: slots RPC DB-level status 필터 (REQ-002/006/073 CHG, issue #25) BAT-041: watchdog TOML + 중장기 인스턴스 운영 프로파일 (REQ-076/077/078, dcy-027) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5.2 KiB
5.2 KiB
REL-007: slots RPC 개선 + 매도세 정정 + paper seq 영속화 + 중장기 인스턴스 프로파일 통합 릴리즈
- Status: draft
- Profile: app-service
- Included Batch: BAT-037, BAT-038, BAT-039, BAT-040, BAT-041
Scope
- Included:
- BAT-037 (dcy-025 REQ-073 CHG-20260612-01):
trex.slots.req응답에available_slots: int|nullcapacity hint 추가.max_active_slots미설정 시null, 설정 시max(0, M − active). orb-v1 의 불필요한 intent 왕복 제거. AC-3 반전(포함), AC-6 신규. - BAT-038 (dcy-026 REQ-018 CHG-20260612-01): 매도 체결
tax=0.0하드코딩 버그(issue #24) 수정.calculate_tax(side, amount)신규, 수수료율(TREX_KIS_FEE_BPS=1.5)·세율(TREX_KRX_TAX_SELL_BPS=20.0) env 상수화. KIS 어댑터는 브로커 응답 fee/tax 정본 우선, 없으면 정책 폴백. - BAT-039 (issue #4 REQ-011 CHG-20260612-01): paper 브로커 order seq Redis 영속화. 재시작 시
PAPER-000001재발번 →correlation_id충돌 → 매도 원장 조용히 누락되는 결정성 버그 해소. optionalSeqStore포트(Redis INCR / in-memory 폴백),TREX_PAPER_REDIS_URL설정. - BAT-040 (issue #25 REQ-002/006/073 CHG-20260612-01/02):
trex.slots.reqper-request full scan 제거.list_slots(status_filter)DB 레벨status = ANY(%s)필터 추가(포트 + PG 구현). watchdog 갱신 holding 조회는 응답 결과 재사용해 두 번째 커넥션 생략. RPC 계약(AC-1~6) 불변. - BAT-041 (dcy-027 REQ-076/077/078): 중장기 인스턴스 운영 토대 완성.
DaemonInstanceConfig.watchdog_timeout_sec(TOML) per-instance timeout 노출(env 폴백),config/longterm.example.toml표준 프로파일 레시피(safety_sell off·market-close 미설정·watchdog 1800s), baseline 문서(runtime-flows.md) 중장기 운영 흐름 + 보호 규칙 경계(전략 모듈 전적 책임 + CLI exit 백스톱) +forced_close_at중장기 미사용 명시.
- BAT-037 (dcy-025 REQ-073 CHG-20260612-01):
- Excluded:
- 과거 누락 원장 행 소급 보정 (BAT-038/039 공통 — 보정 안 함)
- overlay(paused/warned) 서버측 필터 — 후속
- watchdog 소유권 진입 외부 알림(슬랙·이메일) — 후속 Discovery
- 중장기 보호 규칙 코어 구현 — 전략 모듈 전적 책임으로 확정(dcy-027 OQ-2)
Rollout Plan
- 실행 중인 데몬 정지:
kill -TERM <PID>(정상 종료 대기, 마지막 로그Normal shutdown확인) - 코드 배포:
git pull(또는 패키지 업데이트) - DB 스키마 변경 없음 — 마이그레이션 불필요
- 중장기 인스턴스를 운영 중이라면 per-instance TOML 에
watchdog_timeout_sec = 1800추가 (선택 — 미설정 시 기존 env 폴백 유지) - paper 브로커 Redis 영속화를 사용할 경우
TREX_PAPER_REDIS_URL환경 변수 설정 (미설정 시 in-memory 폴백, 재시작 시 seq 리셋) - 데몬 재기동:
.venv/bin/trex-core-daemon --config <instance> - 기동 후 slots RPC 응답 및 로그 확인
Rollback Plan
- 트리거 조건: 기동 실패, slots RPC 응답 이상, 브로커 체결 이상
- 롤백 절차:
- 데몬 정지
git revert또는 이전 커밋으로 체크아웃 후 재기동- DB 스키마 변경 없으므로 데이터 무손실 롤백 가능
- 주의: 과거 paper seq 가 Redis 에 저장된 경우 롤백 후 seq 연속성은 깨질 수 있으나 기능 무영향 (seq 는 execution_id 고유성 보장용)
Verification Checklist
배포 전
pytest tests/— 전체 통과 확인 (회귀 없음)- BAT-037~041 각
verification.mdStatus: confirmed 확인
배포 후
- 데몬 기동 로그 정상 (
Normal startup, 워커 스레드 4개, RabbitMQ 토폴로지 선언) trex.slots.req응답에available_slots필드 존재 확인 (BAT-037)filter=inactive요청 시 inactive 슬롯만 반환 확인 (BAT-040 회귀)- paper 브로커 매도 체결 후 ledger
tax > 0확인 (BAT-038) - paper 브로커
TREX_PAPER_REDIS_URL설정 시 재시작 후 seq 연속성 확인 (BAT-039) - 중장기 TOML(
longterm.example.toml참고) 로 기동 시safety_sell_enabled=false+watchdog_timeout_sec반영 확인 (BAT-041) - 기존 당일 인스턴스 동작 무회귀 확인
Release Execution Evidence
- Release Status Transition Target: released
Deployment Facts
- Executed At:
- TBD
- Completed At:
- TBD
- Environment:
- TBD
- Operator:
- Justin Ko
- Revision or Artifact:
- TBD
- Commands or Procedure:
- TBD
Profile-Specific Checks
- app-service:
- Health Endpoint:
- TBD
- Startup Log Fields:
- TBD
- Request Log Fields:
- TBD
- Smoke or Manual Verification:
- TBD
- Health Endpoint:
Rollback Outcome
- Rollback Required:
- TBD
- Rollback Trigger:
- TBD
- Rollback Action:
- TBD
Release Decision Evidence
- Released Decision:
- TBD
- Rationale:
- TBD
- Recorded By:
- Justin Ko
- Recorded At:
- TBD
Feedback Handoff
- Observation Summary:
- none
- Discovery Input:
- watchdog 소유권 진입 시 외부 알림(슬랙·이메일·웹훅) — dcy-027 OQ-3 후속 Discovery 명시
- 전략↔자산 할당 모델(다중 전략 per-instance, strategy 필드 복원) — dcy-025 Out of Scope 이월
- REQ Input:
- none
- Change Request Input:
- none