[EXEC-POLICY][SCN-FAIL-001] TKT-P0-001 블랙아웃 차단/큐/복구 재검증 #282

Merged
Collaborator

목적/범위

  • 블랙아웃 시간대 신규 주문 API 호출을 차단하고 주문 의도를 큐에 적재
  • 블랙아웃 해제 시 큐 주문을 재검증 후 실행
  • out of scope: REQ-V3-005, REQ-V2-008

시나리오/분류

  • [EXEC-POLICY][SCN-FAIL-001]

추적 ID 매핑

Type IDs
REQ REQ-V3-003, REQ-V3-004
TASK TASK-V3-004, TASK-V3-005, TASK-V3-006, TASK-CODE-008
TEST TEST-ACC-003, TEST-ACC-017, TEST-CODE-005

구현 내용

  • src/core/blackout_manager.py
    • KST 블랙아웃 윈도우 파서 및 판정
    • 주문 의도 큐/복구 배치/재큐 관리
  • src/main.py
    • 주문 전 블랙아웃 차단 + 큐 적재 훅 추가 (trading_cycle, run_daily_session)
    • 복구 루프에서 큐 주문 재검증/실행 처리
    • 정책 거부(OrderPolicyRejected) 주문은 재큐 금지
  • src/config.py
    • ORDER_BLACKOUT_ENABLED, ORDER_BLACKOUT_WINDOWS_KST, ORDER_BLACKOUT_QUEUE_MAX
  • 테스트
    • tests/test_blackout_manager.py
    • tests/test_main.py (블랙아웃 큐 적재, 복구 실행, 정책 거부 drop)

검증 증적

  • python3 scripts/validate_ouroboros_docs.py 통과
  • pytest -q 통과 (909 passed)
  • 런타임: timeout 30s python3 -m src.main --mode paper
    • Blackout manager initialized: enabled=True windows=23:30-00:10 queue_max=500
    • 정상 종료 로그 확인 (Shutdown signal received, The Ouroboros rests.)

Closes #281

## 목적/범위 - 블랙아웃 시간대 신규 주문 API 호출을 차단하고 주문 의도를 큐에 적재 - 블랙아웃 해제 시 큐 주문을 재검증 후 실행 - out of scope: `REQ-V3-005`, `REQ-V2-008` ## 시나리오/분류 - `[EXEC-POLICY][SCN-FAIL-001]` ## 추적 ID 매핑 | Type | IDs | | --- | --- | | REQ | `REQ-V3-003`, `REQ-V3-004` | | TASK | `TASK-V3-004`, `TASK-V3-005`, `TASK-V3-006`, `TASK-CODE-008` | | TEST | `TEST-ACC-003`, `TEST-ACC-017`, `TEST-CODE-005` | ## 구현 내용 - `src/core/blackout_manager.py` - KST 블랙아웃 윈도우 파서 및 판정 - 주문 의도 큐/복구 배치/재큐 관리 - `src/main.py` - 주문 전 블랙아웃 차단 + 큐 적재 훅 추가 (`trading_cycle`, `run_daily_session`) - 복구 루프에서 큐 주문 재검증/실행 처리 - 정책 거부(`OrderPolicyRejected`) 주문은 재큐 금지 - `src/config.py` - `ORDER_BLACKOUT_ENABLED`, `ORDER_BLACKOUT_WINDOWS_KST`, `ORDER_BLACKOUT_QUEUE_MAX` - 테스트 - `tests/test_blackout_manager.py` - `tests/test_main.py` (블랙아웃 큐 적재, 복구 실행, 정책 거부 drop) ## 검증 증적 - `python3 scripts/validate_ouroboros_docs.py` 통과 - `pytest -q` 통과 (`909 passed`) - 런타임: `timeout 30s python3 -m src.main --mode paper` - `Blackout manager initialized: enabled=True windows=23:30-00:10 queue_max=500` - 정상 종료 로그 확인 (`Shutdown signal received`, `The Ouroboros rests.`) Closes #281
agentson added 1 commit 2026-02-27 00:31:50 +09:00
Author
Collaborator

[Reviewer Agent] 초기 지적사항(재큐 영구대기, 정책거부 재시도, 회귀테스트 공백) 기준으로 재검토 완료. 현재는 모두 해결되었고 검증 단계 진행 가능합니다. Ready for verifier: YES.

[Reviewer Agent] 초기 지적사항(재큐 영구대기, 정책거부 재시도, 회귀테스트 공백) 기준으로 재검토 완료. 현재는 모두 해결되었고 검증 단계 진행 가능합니다. Ready for verifier: YES.
Author
Collaborator

[Dev Agent] 리뷰 피드백 반영 내역: (1) non-blackout 상태에서 recovery batch가 항상 큐를 소진하도록 수정 (2) OrderPolicyRejected는 drop 처리해 재큐 금지 (3) 회귀 테스트 추가: requeue 재처리, policy-rejected drop. 재검증 결과: targeted 8 passed / full 909 passed.

[Dev Agent] 리뷰 피드백 반영 내역: (1) non-blackout 상태에서 recovery batch가 항상 큐를 소진하도록 수정 (2) OrderPolicyRejected는 drop 처리해 재큐 금지 (3) 회귀 테스트 추가: requeue 재처리, policy-rejected drop. 재검증 결과: targeted 8 passed / full 909 passed.
Author
Collaborator

[Runtime Verifier] 실행 증적: timeout 30s python3 -m src.main --mode paper. 관측 로그: Blackout manager initialized(enabled=True windows=23:30-00:10 queue_max=500), Shutdown signal received, The Ouroboros rests. 런타임 비정상 종료 없음.

[Runtime Verifier] 실행 증적: timeout 30s python3 -m src.main --mode paper. 관측 로그: Blackout manager initialized(enabled=True windows=23:30-00:10 queue_max=500), Shutdown signal received, The Ouroboros rests. 런타임 비정상 종료 없음.
Author
Collaborator

[Verifier Agent] 티켓 전용 검증 계획 기준 PASS. 문서검증: python3 scripts/validate_ouroboros_docs.py OK. 테스트: pytest -q OK(909 passed). 필수 시나리오(TEST-ACC-003/017, TEST-CODE-005) 관련 회귀 포함 확인. Verification 승인.

[Verifier Agent] 티켓 전용 검증 계획 기준 PASS. 문서검증: python3 scripts/validate_ouroboros_docs.py OK. 테스트: pytest -q OK(909 passed). 필수 시나리오(TEST-ACC-003/017, TEST-CODE-005) 관련 회귀 포함 확인. Verification 승인.
agentson merged commit 1381b140ab into feature/v3-session-policy-stream 2026-02-27 00:32:59 +09:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#282