# REL-012 운영 실행 증적 및 `confirm-release` 기록 - Release: `REL-012` - Batch: `BAT-058` / `REQ-123` - Service: `trex-core` — 기존 `trex-core` daemon 1개 - Evidence received: 2026-07-17 13:42:37 KST, `trex-op`의 M5 common evidence 보정본 - Canonical source payload: [`81a853a314391da7a8bc9df5517013c7fd296d61`](https://github.com/fourblocks2020/trex-core/commit/81a853a314391da7a8bc9df5517013c7fd296d61) - Canonical release manifest: [`869e07fb34bd8a65d330da58a28cbcb1505b9625`](https://github.com/fourblocks2020/trex-core/commit/869e07fb34bd8a65d330da58a28cbcb1505b9625) - Evidence status: **complete for REL-012 release scope** > 이 문서는 운영팀이 반환한 secret-free 실행 증적을 REL-012 전용 canonical release record로 전사한 것이다. M5 공통 handoff는 supporting evidence이며, 이 문서가 REL-012의 release-specific primary record다. credential, token, account number, DSN, raw broker/portfolio response는 기록하지 않는다. ## 1. 승인 및 preflight | Gate | Result | Recorded evidence | | --- | --- | --- | | Production execution approval | PASS | 사용자 명시 지시: `지금 실행` | | Execution window | PASS | 승인 시각부터 완료 시까지의 off-market window | | Initial checkout | PASS | detached `6d90f895...` | | Release refresh | PASS | `deploy-trex-core.sh --update-only`; refreshed main `869e07f` | | Pre-deploy / rollback revision | PASS | `ROLLBACK_REVISION = 869e07fb34bd8a65d330da58a28cbcb1505b9625` | | Checkout cleanliness | PASS | clean | | Payload publication | PASS | `81a853a` verified on origin feature ref before execution | | Dependency / migration delta | PASS | none | | Configuration / credential / break-glass change | PASS | none | | Approved activation method | PASS | approved supervisor; program `trex-core:trex-admin-daily-trading` | ## 2. Daemon activation | Check | Result | Recorded evidence | | --- | --- | --- | | Pinned payload checkout | PASS | `81a853a314391da7a8bc9df5517013c7fd296d61` | | Existing daemon stop | PASS | old daemon stopped through approved supervisor | | New daemon start | PASS | same approved configuration | | Supervisor state | PASS | `RUNNING` | | Startup log interval | PASS | error / critical / traceback count `0` | | RabbitMQ / application connectivity | PASS | startup connection accepted | | Rollback | Not required | no stop condition observed | ## 3. Read-only / dry-run acceptance | Command / check | Result | Sanitized evidence | | --- | --- | --- | | `sync --all --dry-run --config trex-admin-daily-trading --json` | PASS | exit `0`; results `145`; skipped `145`; write indications `0`; classification `broker_qty_zero` | | `verify --config trex-admin-daily-trading --json` | PASS | exit `0`; result count `0`; `no C-warned slots found` | | Prohibited rollout actions | PASS | no `sync --live`, no `--yes` live write, no order action during REL-012 deployment scope | The deployment evidence satisfies the REL-012 runbook's restart and read/dry-run-only acceptance contract. No DB migration, DB edit, dependency/configuration/credential change, AMQP topology change, or strategy daemon deployment was recorded. ## 4. Separate post-release operational action After the REL-012 daemon rollout, a **separately user-approved** single-target remediation was performed for `genichin-longterm` / symbol `005930`. It is not deployment smoke and does not enlarge REL-012's deployment scope. - Prior dry-run: projected `holding`, broker qty `5`, projected avg price `124580.0`, `seeded_avg_price=true`, no write. - Separately authorized action: `sync --live --yes` for that single target; exit `0`. - Readback: `holding`, qty `5.0`, avg price `124580.0`, no warning / reconcile warning; `verify` PASS. - Rollback: not required. ## 5. `confirm-release` decision - **Decision:** `Released` - **Lead rationale:** immutable deployed payload and manifest are identified; approval, preflight, activation, startup observation, rollback disposition, and permitted read-only/dry-run smoke are complete and PASS. No release-scope stop condition was observed. - **Released scope:** existing `trex-core` daemon only. - **Excluded services / changes:** `portfolio-hub`, `kis-data-hub`, `trex-orb-v1`, `trex-tsl-v1`, strategy daemons, DB schema, credentials/configuration, and AMQP topology. - **Remaining boundary:** any future `sync --live` remains independently authorized per target and is not a daemon rollout shortcut. ## 6. Feedback and train boundary - The no-write dry-run and `verify` acceptance checks passed after restart; no new release blocker was observed. - This record confirms **REL-012 only**. It does not reclassify the M5 release train as `Train Released`. - `trex-core REL-011` still lacks its own release-specific execution evidence in the received M5 handoff and remains `draft`; therefore the M5 train remains **not fully released** pending a separate REL-011 evidence decision. ## 7. Evidence sources - [REL-012 release draft](../rel-012_20260717_cost-basis-safe-sync-seed-hotfix.md) - [REL-012 deployment runbook](../../runbooks/rel-012-cost-basis-safe-sync-seed-deployment.md) - [REL-012 operations handoff](../../runbooks/rel-012-cost-basis-safe-sync-seed-ops-handoff.md) - [BAT-058 verification](../../batches/bat-058_20260716_cost-basis-safe-sync-seed/verification.md) - Operations supporting handoff: `M5-common-evidence-handoff-revised-20260717-134237-ozxbxkeaybgzpgzmgt3aqshcba.md` (received by lead, 2026-07-17)