Skip to content

Latest commit

 

History

History
262 lines (193 loc) · 29.8 KB

File metadata and controls

262 lines (193 loc) · 29.8 KB

Changelog

0.10.1 (2026-06-19)

Bug Fixes

  • correct signal scoring field mismatches and normalize component scores (737be05)

0.10.0 (2026-06-18)

Features

  • add flash lite analysis option (f38b16f)
  • default analysis config to flash lite (9701adc)

0.9.0 (2026-06-18)

Bug Fixes

  • align analysis page staleness with execute freshness gate (9e9242d)
  • remove src→lib layer violation and constrain technical default (bca23e5)

Features

  • add technical timeframe setting (81c5949)
  • audit trading decision rationale (1207e02)
  • bound news card concurrency and runtime (1335e43)
  • constrain technical analysis timeframes (b89fc0c)
  • enforce timeframe-aware analysis freshness (4efe293)
  • finalize timed out cron audit rows (83b88eb)
  • migrate analysis timestamps and operational defaults (1413bb5)
  • preserve source analysis timestamps (7862c86)
  • remove overall analysis axis (ea90486)

0.8.0 (2026-06-17)

Features

0.7.0 (2026-06-17)

Features

  • 오류 로그 더 상세히 남기도록 수정 (18081ab)

0.6.0 (2026-06-16)

Bug Fixes

  • analysis-api: symbol 미지정 시 전체 최신 결과 반환 (0c4225c)
  • cron: 펀더멘털 스케줄 0 13 → 0 15 UTC로 이동 (24c7bb0)
  • news: runNewsAnalysis에 카드 enrich 단계 통합 (2788476)
  • yahoo-options: v3 default export 호환을 위한 인스턴스화 (98752c0)

Features

  • news-cards: news_cards 테이블·쿼리·마이그레이션 추가 (9943ae4)
  • news-enrich: NewsItem → EnrichedNewsItem 변환 헬퍼 (8abcca7)

0.5.0 (2026-06-13)

Bug Fixes

  • 매수/매도 신호 임계값 스케일 정정 — 0~100 정량 점수로 통일(기본 70/30) + 범위 검증 (1c64a5e)
  • PR #15 리뷰 반영 — MobileNav 실제 컴포넌트화·시트 a11y/네비 터치·포지션 타깃 long/short 분기 통합 (ebbcaeb)

Features

  • mobile-ux: 모바일 네비 4+더보기 시트 리디자인 + iOS CSS 개선 (Part A) (51015f3)
  • mobile-ux: 모바일 UX 개선 Part B — 폼 키보드·터치타깃·청산확인·포지션표 (3c4647e)

0.4.0 (2026-06-13)

Bug Fixes

  • PR #13 리뷰 반영 — queryFn 내부 날짜범위 도출 + 테스트 주석 정정 (a0b202c)
  • PR #13 리뷰 반영 — URLSearchParams 이중 인코딩 제거 + limit 안전 파싱 (f99afb3)

Features

  • 크론 감사 뷰어 백엔드 구현 (쿼리+API+클라이언트+MSW) (7de37cb)
  • 크론 감사 뷰어 프론트엔드 구현 (/audit 페이지) (cd9452d)

0.3.0 (2026-06-13)

Bug Fixes

  • 락 owner 토큰 콜스택 전달, 승인 킬스위치, 분석 크론 TTL (H5/M8/M9) (270daae)
  • 배포 전 하드닝 3건 (reconcile dry_run 게이트, crypto import, 0007 IF NOT EXISTS) (ac9f0bc)
  • 분석 poll 타임아웃을 150s로 — 직렬 폴링 worst-case를 락 TTL/maxDuration 이내로 (1893362)
  • 이메일 알림 ON/OFF 실동작 + 전 페이지 낙관적 업데이트 (05773a5)
  • auth: Cloudflare Access JWT 검증 강화 + DISABLE_AUTH 프로덕션 가드 (436fab8)
  • clear.ts에 order_tracking 추가 및 schema.ts 주석 보강 (a42d3ce)
  • cron: analysis 크론 감사 로그 코드 품질 개선 (5b577c7)
  • data/analysis 견고성 강화 (M10/L16/L17/L18) (c1bef06)
  • db: cron 쿼리 헬퍼 코드 품질 개선 (NaN 가드, 판별 유니온, CronType) (1fed269)
  • db: H7 스키마 인덱스 드리프트 수정 + M11 recovery NaN 가드 강화 (d493e47)
  • execute: 매매 안전 강화 — C1/C2/H3/H4 감사 수정 (d8baec8)
  • execute: 포지션 재평가 hold 결정을 decisions[]에 기록 (감사 로그 누락 수정) (7e2c17f)
  • execute: semi_auto 결정을 executed:false로 기록 (감사 로그 스펙 버그 수정) (ee86352)
  • getAnalysisConfig 기본값 반환 + updateAnalysisConfig upsert 전환 (9896946)
  • M12/L13/L14/L15 보안·검증·UI 강화 (c1eb41d), closes #39
  • PR #11 리뷰 반영 — 방어 가드 및 에러 로깅 보강 (cfc68a6)
  • PR #12 리뷰 반영 — 0007 편집 되돌림 + dry_run 게이트를 브로커 호출만으로 한정(타임아웃 안전망 유지) (ca5b069)
  • review: execute 오류 알림 게이트 적용 + 청산 이벤트 분기 + 타이머/빈 updates 방어 (3f30f52), closes #8

Features

  • _run-analysis-cron에 cron_runs 감사 로깅 계측 추가 (55aef5e)
  • cron 감사 로그 쿼리 헬퍼 추가 (startCronRun, finishCronRun, insertCronDecisions) (cd14166)
  • cron_runs, cron_decisions 테이블 추가 및 마이그레이션 생성 (0140d0a)
  • execute 크론에 cron_runs/cron_decisions 감사 로깅 계측 추가 (f3b1d2d)
  • reconcile 크론 감사 로그 계측 (Task 5) (3d1edbf)

0.2.2 (2026-06-12)

Bug Fixes

  • API 핸들러 서명 수정 (named export로 Vercel Node 런타임 호환) (0b426bd)

0.2.1 (2026-06-12)

Bug Fixes

  • ESM 모듈 해석 실패로 인한 production 500 오류 (FUNCTION_INVOCATION_FAILED) (d70cffe)

0.2.0 (2026-06-12)

Bug Fixes

  • 하드닝(킬스위치 boolean검증/락 TTL 780/Redis prod fail-closed/timeframe검증) + 마이그레이션 fresh-apply 수정 (585a150)
  • add test:quiet script for pre-push hook (847138a)
  • address all review findings — security, correctness, performance (c09688d)
  • approve idempotency, cooldown, exposure tracking, retry, migration, graceful Redis (a8f328e)
  • badge 9+ cap, mode filter with correct keys (dry_run/semi_auto/auto) (6a4776a)
  • correct test:coverage script to use vitest run --coverage (c430ca3)
  • CRITICAL — sell closePosition, approve no phantom trade, lock ownership, score_weights validation + HIGH tests (659d0a7)
  • cron: 윈도를 13-21 UTC로 확대 (EST 세션 마지막 시간 커버, DST 양쪽 대응) (1f855c7)
  • cron: 크론 스케줄을 UTC로 수정 (Vercel은 UTC 실행 — 기존 KST 시각이라 장중에 안 떴음) (055e52c)
  • db: 매도별 realized_pnl 기록으로 정확한 일일 PnL + client_order_id 기반 정밀 reconcile 매칭 (d3f7dda)
  • db: getTodayRealizedPnl 타입드 select로 드라이버 무관 견고화 + realizedPnlForSell 순수 헬퍼 추출(센트 반올림) (9827416)
  • db: neon-serverless Pool로 전환 — db.transaction() 실제 동작 (neon-http는 트랜잭션 미지원) (99538d6)
  • db: Pool max:1 (서버리스 커넥션 고갈 방지) + neon-serverless 드라이버 회귀 가드 테스트 (리뷰 반영) (73aacb9)
  • db: reducePositionQuantity 옵셔널 체이닝 + 고아 마이그레이션 0004 중복 파일 제거 (리뷰 반영) (7c969cc)
  • execute: partial 체결은 reconcile가 단일 기록 (execute는 즉시 기록 안 함, 이중계상 방지) (d08c25d)
  • execute: pending/partial 주문 이중제출 방지(in-flight 가드+쿼리 확장) + 매수가능액 누적차감 + 분수 sellable 0주 방지 (1086e8a)
  • Korean reason strings, Pretendard font, fix tests (fd03458)
  • post-audit — silent catch notification, type-safe signal inputs, dedup, NaN guard (7adcaef)
  • prevent duplicate watchlist symbols + add missing tests for 90%+ coverage (81b8518)
  • R2 findings — transaction safety, approve tracking, no stale price fallback, mode snapshot, position averaging, GET-only retry, DB indexes (58a2765)
  • R3 findings — averaging logic, atomic SQL, approve safety, auth tests, safe-extract, partial fills (8db7b11)
  • R4-4 — PnL direction, estimated close price, quantity warning, invalid avgPrice alert, exclude skipped from count (ceca992)
  • R5 — rejected revert, submitted tracking, support profit check, estimated price, partial fill alert (eab37b5)
  • R6 — partial close, pending sell guard, per-symbol cap, phantom sell guard, price cache, invalid price/signal fixes (d575a3f)
  • R7 — exposure after partial sell, break-even, reduce guard, phantom sell, avg-in cap, trade-based PnL (2f42c7e)
  • R8 — approve sell partial close, no-position guard, correct PnL calculation, type cleanup (ec5ef0d)
  • reconcile: dry_run에서는 holdings 정합성 비교 스킵 (시뮬레이션 포지션 vs 실계좌 오탐 방지) (8a1d638)
  • remove unused gte import (0ee64ac)
  • risk units, auto mode desc, yellow skipped trades, 24h alert TTL (1d1b90d)
  • round 2 review — auto buy position tracking, approve execution, exposure updates, DST (e187fbd)
  • round 3 review — double-approve guard, HTML escaping, auth hardening, order validation (0fdf74a)
  • round 4 — missing API endpoints, order submitted status handling, config validation (a457d0f)
  • round 6 — atomic approve/close with DB-level race guard, config upper bound, analysis limit (b359799)
  • search uses real FMP via Vite dev middleware, MSW passthrough (aa077e3)
  • sell recovery warns when no position exists + add test (753be31)
  • Settings mock data structure + add favicon.ico (cab6a5f)
  • split vitest.config.ts to resolve vite plugin type conflict (29bf901)
  • trading: 401 재발급이 재시도 예산 미소모 + Retry-After 음수 클램프 + clientOrderId 값검사 (ebbe284)
  • trading: 401/403은 비즈니스 거부 아닌 rethrow + expires_in 누락 시 기본값 (Gemini 리뷰) (45883b6)
  • trading: 주문 에러 분류 정교화(일시적 4xx rethrow) + 폴링 실패 시 pending 보존 + clientOrderId 검증 (f28221b)
  • trading: 체결 기록 원자화 + 실제 체결수량 검증 (소수점/단축체결은 needs_review) (41043d7)
  • trading: 토큰 발급을 항상 락 내부로 (언락 fallback 제거) + dev 메모 캐시 (0eb521b)
  • trading: approve clean-full-fill 가드 + holdings US 필터 + 타입/에러코드 정합 (claude 리뷰) (60787f9)
  • UI feedback — layout, card design, analysis error, pending badge, Korean labels (059d284)
  • use import.meta.url instead of __dirname in vite.config.ts (04f9343)
  • UX — id-based watchlist ops, proper API calls, Korean labels, remove unused var (a26425b)
  • UX improvements — id-based watchlist ops, proper API calls, Korean labels (3d1eccc)

Features

  • 20 pending mocks, cash balance, portfolio UX, watchlist limit, position targets (f3a576f)
  • add analysis cron functions (technical, news, options, fundamental) (1769374)
  • add analysis runners with polling for all 5 types (d22a7f2)
  • add Analysis, Pending, Settings dashboard pages with tests (e716877)
  • add cron auth, DB singleton, and query helpers (5d602bd)
  • add dashboard API routes (status, positions, trades, config, pending, approve) (b79f5cb)
  • add dashboard shell with routing, TanStack Query, and API client (33b304e)
  • add DB seed script with mock data for dashboard preview (3a37c0c)
  • add db:clear script with confirmation prompt (923cc51)
  • add dev:mock script — API mock only when VITE_API_MOCK=true (9d75921)
  • add Drizzle ORM schema for all tables (0f9da12)
  • add email notification module with tests (293cb38)
  • add execute cron — signal scoring, risk management, trade execution (dea710a)
  • add fixed SL/TP toggle (default OFF) — AI-only exit by default (c206e6e)
  • add FMP and Yahoo Finance data adapters (f38633c)
  • add mobile bottom tab bar + responsive nav improvements (fdc63b7)
  • add risk manager with position sizing and stop/take profit (b8d6446)
  • add seed/migrate tests + fix React Query queryKey pattern (d041779)
  • add signal scorer with comprehensive tests (cf554f2)
  • add Status, Positions, Trades dashboard pages with tests (0aeaa3f)
  • add ticker search autocomplete for watchlist (9e40c80)
  • add Toss Securities API client with tests (53dcc01)
  • add trade decision module with tests (089ee7b)
  • adjust score weights, Korean reason strings, configurable timeframe, Pretendard font (57968ef)
  • alert on insufficient balance — skipped trades in Status + email notification (9c04cb4)
  • analysis: FMP MarketDataProvider 포팅 + 분석 runner에 주입 (캐시 미스 throw 해결) (4f0d1f9)
  • approve: 비동기 OrderOutcome 매핑 (안정 clientOrderId, pending/partial 미기록) (96b4c34)
  • auto-recover filled orders + compensating transaction design doc (b847823)
  • color-coded watchlist/position badges, position target table with buy price (5134d0b)
  • cron: 미국 정규장 시간 외 크론 로직 차단 (ac7341a)
  • db: order_tracking에 client_order_id 컬럼 추가 (2f573e2)
  • db: trades에 client_order_id, realized_pnl 컬럼 추가 (d431143)
  • dismissable alerts with confirmation button and timestamp (5272f43)
  • docs: 면책 문구 추가 (75e8352)
  • enforce max_daily_loss_usd circuit breaker + expire old pending orders (3eff663)
  • enhance strategy with actionRecommendation, dynamic stop/take profit, position re-evaluation (66b165a)
  • execute: 비동기 OrderOutcome 매핑 + 휴장 게이팅 + 매수/매도 안전장치 가드 (e5f9e90)
  • full UX audit — improvements + comprehensive interaction tests (668842c)
  • MSW approve/close adds trade records + positions for full flow testing (82f8225)
  • P0-1 distributed lock via Upstash Redis SETNX for cron handlers (d805a87)
  • P0-2 circuit breakers — kill switch, daily trade limit (cea7ff8)
  • P0-3 comprehensive input validation and NaN protection (a635500)
  • P0-4 approve handler — Toss API call, dedup, compensating transactions (82f5524)
  • P0-5 order lifecycle tracking with idempotency keys (8cc466a)
  • P1 fixes — exposure tracking, decisions dedup, config validation, staleness, close price (9ba1282)
  • P2 — pending dedup, auto mode confirmation, health check, input allowlists (c2a940a)
  • position target table title + current price, doc updates (f327d8c)
  • reconcile: getOrder 폴링으로 in-flight 주문 확정 + 부분체결 수동검토 라우팅 + 자동취소 + holdings 정합성 (1f11c4c)
  • reconciliation cron, live price fetch, DB consistency checker (8c71d91)
  • replace static Vite middleware mock with MSW for stateful dev testing (346826d)
  • Settings UX — readable labels, mode descriptions, explicit save for risky settings (636bfa7)
  • split risk section into 3 subsections (SL/TP toggle, investment, AI thresholds) (83821f1)
  • Status page — portfolio overview + last 10 trades (acd0ccc)
  • trading: 계좌·보유·매수가능·매도가능·취소·휴장 조회 API (af934b6)
  • trading: 공통 tossFetch 클라이언트 (에러코드·재시도·계좌헤더) (5282ac7)
  • trading: 비동기 주문 파사드 + 인라인 폴링 + getOrder (2e93e0c)
  • trading: 실제 스펙 기반 도메인 타입 정의 (2ebad2a)
  • trading: OAuth2 토큰 매니저 (Redis 캐싱 + 재발급 락) (fa7b36d)

Reverts

  • Revert "refactor: move ticker search to client-side FMP call, remove /api/search" (d66f1b2)