[
  {
    "v": "2.3.0-riskgeo",
    "date": "2026-10-12",
    "title": "География заносов (гаверсинус) + eBird-фенология + риск-страница",
    "items": [
      "И1 — дистанционный фон заносов: координаты стран (опорные точки, крупные страны набором) → гаверсинус-дистанция до каждого из 16 узлов → экспоненциальное затухание exp(-d/1000 км); у каждого узла свой B/MB (geo.per_node); BP (сухопутные границы) остаётся страновым по дизайну",
      "И2 — транзитный канал M смешан с недельными кривыми относительной абундантности eBird S&T (вес 0.3, data/ebird_phenology.json): летнее плато чайковых, резидентный фон речных уток, ранние кулики, острые пики гусей, зимовочные плато нырковых и лебедей; бэктест 5/5 сохранён",
      "И7 — компактная риск-страница /risk/ для встраивания и быстрых ссылок + freshness-чек vetflu в watchdog ядра rss-core",
      "И6 — changelog модели в model.json (этот список) и data/changelog.json",
      "FAO EMPRES-i API недоступен (HTTP 404, проверено 12.10.2026) — остаёмся на WOAH WAHIS, тот же официальный уровень"
    ]
  },
  {
    "v": "2.2.0-wind",
    "date": "2026-10-11",
    "title": "Ветровой перенос WD + интерактив",
    "items": [
      "WD = 1.00 + 0.15·(1−exp(−wd_raw/2)) — ветровой перенос в сторону РФ: Open-Meteo 72 ч на 45 опорных точках границы, outbreak-gated (ветер считается только при активной вспышке ≤21 дн у границы)",
      "Приграничные веса вынесены в общий модуль borders.mjs (BP и WD делят таблицу)",
      "Симулятор «что если» (слайдеры каналов и множителей), большой график истории R, changelog-блок, ревизия фенологии",
      "Telegram-алерты по уровням (ok<45≤watch<75≤alert) — send_alert.mjs, пуш только при смене уровня"
    ]
  },
  {
    "v": "2.1.0-pressure",
    "date": "2026-10-11",
    "title": "Входящее давление BP",
    "items": [
      "BP = 1.00 + 0.20·(1−exp(−bp_raw/4)) — страны-граничники РФ в коридоре флайвея, окно 21 день, exp-сатурация; только усиление (тихая граница не ослабляет)",
      "BP вплетён в series/nodes/history/витрину/FAQ; бэктест не затронут (5/5, честная пометка)"
    ]
  },
  {
    "v": "2.0.0-channels",
    "date": "2026-10-11",
    "title": "Три канала риска вместо одного транзита",
    "items": [
      "R = max(M, C, Z) × MW × MB: транзит + колониальный канал (гнездовые скопления, пик н28) + зимовочный (трапеция ноябрь–март с заворотом через год)",
      "Узловая детализация: 16 узлов со своим погодным множителем MW по метеоточке",
      "История R (кап 180 дней) со спарклайнами, RSS-лента смен фазы, OG-картинка, API-секция",
      "Бэктест v2 по волнам 2020–2023; колониальный канал добавлен пост-хоком после разбора промаха v1 (лето 2021, Каспий) — помечено честно"
    ]
  },
  {
    "v": "1.x — фазы 1–3",
    "date": "2026-10-10",
    "title": "База: календарь, погода, фон вспышек",
    "items": [
      "Фаза 1 — миграционный календарь 8 групп видов × 4 флайвея, индекс M, карта со скраббером недель",
      "Фаза 2 — погодный слой: W (аномалия холода, ледостав) и P (персистентность вируса) из Open-Meteo против норм 2015–2024",
      "Фаза 3 — фон заносов B из WOAH WAHIS (окно 60 дней, вес по свежести рапортов)"
    ]
  }
]
