TODO (23 Apr research): AI Market Regime per coin (trending/ranging/volatile: ADX+ATR+BBWidth) + Composite Signal Score (OI×funding×CVD×vol → 1-100)
TODO (23 Apr research): Liquidation Heatmap — расчёт уровней ликвидаций по OI+leverage estimation, heatmap overlay на графике. CoinGlass берёт $12/мес только за это
TODO (23 Apr research): Pricing: sweet spot $10-15/мес. Free tier с ограничениями, Pro = unlimited alerts + heatmap + API
27 Apr 2026 (сессия 62):Global Binance Rate Limiter. 3-уровневая защита: (1) трекинг X-MBX-USED-WEIGHT-1M хедера из каждого ответа Binance; (2) soft throttle 500ms при 1800/2400 weight, hard throttle 5s при 2200/2400; (3) глобальная пауза ВСЕХ запросов при 429 (30s) или 418/IP ban (120s). RateLimitError class, bgetWithRetry не считает 429 за обычный retry (макс 3 rate-limit retry сверху). GET /api/rate-limiter диагностический endpoint. Коммит e6551af.
25 Apr 2026 (сессия 59):WS Migration /market/stream + TF Switch Fix. Binance депрекейтнули legacy /stream endpoint — klines на 15m+ перестали получать live данные. Миграция клиентского WS на wss://fstream.binance.com/market/stream (роутированный endpoint). При смене TF теперь полностью убивается и пересоздаётся WS (вместо unsub/resub — race condition). RE-SUB safety net: если 0 тиков через 5с, пересоздаёт стримы из видимых чартов. Серверный ws.js: упрощён _cleanup() terminate. Оптимизация: computeTLDistance skip если тренлайны выключены. SW cache fs-v29, SW_VER 29. Коммит 4381cba.
25 Apr 2026 (сессия 57):Auto S/R Levels + WS Multi-Connection Fix. Server WS флапал (536 стримов в 1 соединение, Binance лимит 200) — разбит на multiple connections по 190 стримов (класс BinanceWSConnection). Auto S/R levels: fractal pivot detection (window ±10) + ATR-based clustering (merge dist = ATR×1.5) + composite scoring (touches×10 + recency×15 + volume×2). Тип level по позиции vs price (не по типу пивота). Max 3S + 3R nearest to price. Toggle ☑ Levels + кнопка Sort S/R в тулбаре. Applied to mini-charts, modal, multi-chart slots. Mini-charts: batch 500→1500 candles, visible 100→200, infinite scroll added. IDB tier убран (вызывал гэпы при delta merge) — теперь Memory→Server SQLite напрямую. Sidebar 260→300px. Коммит ab5b9ec.
24 Apr 2026 (сессия 56):3-Tier Klines Cache + Infinite Scroll. IndexedDB persistent cache: Memory (0ms) → IndexedDB (5-20ms) → Server batch fetch. Charts load instantly on scroll-back/page refresh. Delta fetch for stale IDB data (>5min → fill gap, WS takes over). Infinite scroll: load 1500+ candle history when user scrolls to left edge (subscribeVisibleLogicalRangeChange, 20K target). SW force update mechanism (version tracking + cache clear on bump). Debounced WS unsubscribe (200ms batch) for smooth fast scrolling. Server klines-cache.js module. Убран 2-phase load (100→500) в пользу single 1500-candle fetch + cache. Rick проверял мобильный UI (скриншот), заметил тесноватость split-view на телефоне. Коммит ccd2c26.
22 Apr 2026 (сессия 52):WS Flap Fix + JWT + Push/In-tab Split. WS Binance флапал (connect→disconnect каждые 5с, idle без подписок). Фикс: lazy connect при первом subscribe(), ping keepalive 3мин, race condition fix. JWT_SECRET зафиксирован в PM2 env. Push toggle разделён: signalNotifications (in-tab toast/sound) и signalPush (серверный push, телефон/закрытый браузер) — выключение одного не убивает другой. VAPID keys в PM2 env. Коммит c391b6f.
3 May 2026 (сессия 85):NATR Cache Race Fix + Push Retry. Channel scan 300-500с→2-13с. Root cause: NATR cache TTL race condition → фильтр не работал → все 64 символа сканировались → rate limiter throttle → 6 "зомби" символов timeout. Fix: read/cleanup TTL 300→600с, первый scan 10→45с. Push retry 2x+backoff+timeout. getFundingMap stale fallback. Worktree удалён+отключён. Коммит bb0deb1.
21 Apr 2026 (сессия 50):LWC v5 Modal Chart Fix. Root cause: createTextWatermark() бросал attachPrimitive is not a function TypeError, крашил openCoinModal() до loadModalChart(). Чарт показывал 2-3 свечи (WS тики) вместо 1000. Фиксы: try/catch на createTextWatermark/createSeriesMarkers, убрана CDN lightweight-charts-drawing@0.1.1 (v4-only, 404), CSS .mc-modal.hidden → visibility:hidden (не display:none), innerHTML cleanup, ResizeObserver fallback. Коммит 66654f1.
20 Apr 2026 (сессия 48):Signal Trader Bot + Push Filter UI. Новый бот signal_trader.py торгует volume_spike сигналы на Binance Futures (LONG+SHORT, $15, 3x lev, partial TP 2.5%→trail 1%, SL 1.5% exchange STOP_MARKET, 12h time stop, max 5 pos). Blacklist heavy+bad WR coins. TMM tags. Push UI: checkboxes для типов сигналов, minRatio fix 3→2. PM2 signal-trader. Коммиты 91e61fb, 31f9fb8.
20 Apr 2026 (сессия 46):Server Web Push + Time Fixes. Заменили client-side polling на серверный Web Push (VAPID/web-push). Мгновенная доставка из emitSignal(). push_subscriptions в SQLite, server-side filtering, auto-cleanup. Test signals исключены. Time display: "Xm ago"→реальное время 24h. DST fix: timeZone:'America/Vancouver'. Signal stats: 2634 сигнала, SHORT WR 84%, vol ratio 5-10x лучший. Коммит 33085a1.
18 Apr 2026 (сессия 40):Settings Panel Overhaul. 8 секций, 30+ настроек, все wired. ⚙️ справа в header. Старый левый сайдбар убран. Charts (candle/scale/grid/TF/cards-per-row/card-size/sidebar-cols), Densities, Signals (ratio/cooldown/watchlist-only), ⭐Watchlist (★ btn, first-sort, manage), 🎨Theme (3 темы+6 color presets+custom picker), 📡Data (refresh/sort/minVol), Layout, Reset+Export/Import. localStorage persist, toast feedback. Коммит d79f666.
18 Apr 2026 (сессия 38):Signals Overhaul + Countdown + Candle Sync. Signals из DB (24h, переживают рестарты). Signal timestamps = candle openTime. DB dedup (cooldown переживает рестарты). UTC tz fix (T+Z). WS candle TZ_OFFSET_SEC fix (lag). Phase 2 setVisibleRange (no jump). Countdown timer в toolbar. Default TF 5m. Confidence rounded. Price line убрана. Anti-scroll при pan. Коммит 4ad217c.
17 Apr 2026 (сессия 34):Density v2 fixes + Server Cache + Performance. Density tab fix (auto-load on first click, was silently empty). Ticker click→modal (was Binance link). Rate limit protection: concurrency 10→3, delay 500ms, graceful skip on 429. Disk cache for density (survives PM2 restart). Background warmup: density WS 537 symbols gradual (10/batch, 20s pause, no bans). Klines pre-warm: top-200 by volume × 3 TFs (15m/1h/4h) on startup. Historical klines cache 10s→5min. Modal phase 1: 150→1000 candles (instant from cache). Mini-charts: debounced Observer (50ms collect all visible), batch 8→20, batch density (1 request for all). Density walls on ALL chart types (mini-charts, modal, multi-chart). 10 коммитов8b11965→cbe471a.
17 Apr 2026 (сессия 33):Phase 2 Multi-Chart + Memory Leak Fix. Layout picker (grid/1/2/4) с SVG иконками в тулбаре. Chart slots: независимый TF, live WS updates, OHLCV legend, auto-advance active slot. Sidebar routing: grid→modal, multi-chart→slot. Persist layout+symbols в localStorage. Memory leaks fixed (5шт): cache/proxyCache Maps не удаляли expired entries, books bids/asks без TTL, binHistory 5% рандомный cleanup→30s детерминированный, WS listeners дублировались при reconnect. Heap 89%→40% после рестарта. Коммит 198472a. Drawings per slot (ccd6506): рисунки per-symbol (не per-TF) — нарисовал на 4h, видно на 1m. Density v2 backend (655236d): scoring на x-multiplier (wall/avg5mVol), убран blacklist (BTC/ETH теперь сканируются), все 500+ перпов, top 3 per coin, severity L/M/S. Density UI v2 (edbda7b): xMult колонка, severity бейджи (L/M/S цветные), теги (Concrete/Robot/Tech Level), всё на английском, убран debug, обновлены mobile cards. Density on charts (5d83932): bid walls (зелёные) и ask walls (красные) пунктирные pricelines на multi-chart слотах с label "$1.2M x8".