{
  "schema_version": "qazfish-public-changelog-v1",
  "product_id": "qaz-fish",
  "updated_at": "2026-07-27T18:32:00+05:00",
  "entries": [
    {
      "date": "2026-07-27",
      "release": "public-data-catalog",
      "type": "machine-contract",
      "summary": "Добавлен единый каталог /data/catalog.json: первичные снимки QazGeo, редакционные профили, вторичные индексы, выводы перед поездкой и инфраструктурные контракты собраны в одном машиночитаемом входе для посетителей, ИИ-систем и внешних потребителей.",
      "source_commit": "4d20097c7754",
      "verification": [
        "npm run catalog:check",
        "npm run check",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-27",
      "release": "ecosystem-integration-contract",
      "type": "product-contract",
      "summary": "Интеграция с QazGeo, QazStack, AV DS, QazLake, QazPipe, QazCompute и QazKnowledge вынесена в отдельный публичный контракт. На странице данных появился статус каждого слоя: что работает сейчас, что является источником происхождения данных, а что подготовлено и ждёт отдельного gate.",
      "source_commit": "2af5e403977e",
      "verification": [
        "npm run ecosystem:check",
        "npm run check",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-27",
      "release": "trip-history-and-shared-decisions",
      "type": "product-ux",
      "summary": "Карта, план поездки и паспорт водоёма используют единый реестр выводов, полноты данных и связанных проверок. План передаёт водоём, дату и целевой вид в локальный дневник версии 2; дневник учитывает поездки без улова, способ ловли, длину, судьбу улова и личные заметки, сохраняя чтение данных версии 1. В обновлениях появились карточки для цитирования с источниками и ограничениями.",
      "source_commit": "ed613fda9385",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "Playwright: /map, /trip, /journal, /updates; 390 px без горизонтального переполнения"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-27",
      "release": "field-decision-loop",
      "type": "product-contract",
      "summary": "Разрозненные контуры решения собраны в рабочий цикл. В плане и профилях появился режим сомнения с четырьмя безопасными сценариями, по каждому водоёму доступен автономный полевой пакет, а реестр проекции обновлений показывает связь источника с выводами, карточками, страницами и журналом изменений.",
      "source_commit": "5f49038215ca",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "browser smoke: /trip, /waters/balkhash, /data"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "avds-pattern-exchange",
      "type": "design-system",
      "summary": "QazFish подключён к неизменяемой ревизии AV DS 4. Общие навигация разделов, пустое состояние дневника, каталог машиночитаемых файлов и базовый бейдж теперь используют пакетные контракты AV DS. Навигация длинных страниц и содержательное пустое состояние перенесены обратно в AV DS как универсальные паттерны.",
      "source_commit": "5f49038215ca",
      "verification": [
        "pnpm verify в AV DS",
        "npm run avds:check",
        "npm run check",
        "npm audit --audit-level=high"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "decision-layer-foundation",
      "type": "product-contract",
      "summary": "Добавлен слой решения перед поездкой: реестр зон ручной сверки, выводы по каждому профилю, индекс качества, оперативные обновления и ContentAtom-записи. Новые контракты показаны в /data, /rules, /updates, llms, готовности для ИИ, service worker и smoke-проверке.",
      "source_commit": "352c5c8",
      "verification": [
        "npm run typecheck",
        "npm run check",
        "npm audit --audit-level=high"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "russian-editorial-pass",
      "type": "content-ux",
      "summary": "Публичные тексты прошли русский редакторский проход: убраны учебниковые связки, смешанные англо-русские формулы, лишний технический жаргон и em dash. Добавлены редакторский стандарт, HTML-предохранитель против старых формулировок и repo hygiene-проверка типографики.",
      "source_commit": "a165978",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "grep: no em dash in tracked files",
        "rendered HTML public-copy guard"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "avif-editorial-media",
      "type": "performance",
      "summary": "Все редакционные фотографии в рабочем интерфейсе переведены в AVIF качества 70. Исходные JPEG сохранены, а общий вес шести изображений снизился с 2715.8 KiB до 1315.4 KiB без изменения композиции страниц и меток источников.",
      "source_commit": "9767742",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "проверка 11 маршрутов на desktop и 390px",
        "браузерная проверка декодирования AVIF на всех страницах"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "visual-system-qazgeo-water-polygons",
      "type": "product-ux",
      "summary": "Публичная часть собрана вокруг подписанных редакционных изображений, сводок и источников в стиле AV DS 4, карты MapLibre по Казахстану, открытых водных полигонов QazGeo через разрешённый серверный прокси, компактных мобильных каталогов и навигации от задачи поездки.",
      "source_commit": "a64b4e7",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "Playwright-аудит маршрутов на desktop и 390px",
        "проверка переключения слоя QazGeo"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "data-filled-public-panels",
      "type": "content-ux",
      "summary": "Оставшиеся объяснительные панели заменены фактическими значениями: хранение и выгрузка дневника, счётчики и координаты водоёмов, связи видов и состояние научной базы. Добавлена HTML-проверка против временных редакционных заглушек.",
      "source_commit": "a1faf6a",
      "verification": [
        "npm run check",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "local-tools-contract",
      "type": "data-contract",
      "summary": "Добавлен публичный контракт локальных инструментов: сохранённые водоёмы, план поездки, дневник уловов в браузере и схемы выгрузки JSON. Контракт показан в /data, llms, готовности для ИИ, правилах цитирования, кэше service worker и smoke-проверке релиза.",
      "source_commit": "57dc55b",
      "verification": [
        "npm run check"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "data-backed-empty-and-status-states",
      "type": "content-ux",
      "summary": "Пустые и статусные состояния уточнены: дневник показывает размеры каталогов до появления личных записей, пустой поиск по водоёмам показывает активные фильтры и покрытие каталога, а ограничения описаны точным языком состояния данных.",
      "source_commit": "bdc44b4",
      "verification": [
        "npm run check"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "data-backed-interface-copy",
      "type": "content-ux",
      "summary": "Временные описания на главной, в данных, правилах, академии, видах, плане поездки и футере заменены счётчиками, состояниями модулей, количеством источников, названиями уроков и метаданными текущего выпуска.",
      "source_commit": "0c098c2",
      "verification": [
        "npm run check",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "complete-public-contract-catalog",
      "type": "discovery",
      "summary": "Каталог /data, контракт готовности для ИИ и smoke-проверка теперь охватывают публичные контракты QazGeo, QazStack, тематического выпуска и машинной обработки qaz.fish. Кэш оболочки обновлён, чтобы установленные клиенты получили свежий каталог.",
      "source_commit": "f43aedc",
      "verification": [
        "npm run check",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "weather-warning-sources",
      "type": "data-contract",
      "summary": "Добавлен публичный реестр источников по штормовым предупреждениям Казгидромета, пожарной опасности и каналам экстренных сообщений. Он показан в правилах, плане поездки, данных, llms, готовности для ИИ и smoke-проверке без автоматического вердикта по безопасности конкретного водоёма.",
      "source_commit": "d73bf2f",
      "verification": [
        "npm run typecheck",
        "npm run lint",
        "npm test"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "hydro-station-index",
      "type": "data-contract",
      "summary": "Добавлен публичный гидрологический индекс: каждый профиль водоёма связан с ближайшим каталогизированным постом QazGeo. Индекс не публикует текущий уровень воды, расход, доказательство прямой гидрологической связи или вывод о безопасности.",
      "source_commit": "e33861f",
      "verification": [
        "npm run typecheck",
        "npm run lint",
        "npm test",
        "npm run check",
        "npm audit --audit-level=high",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-26",
      "release": "rule-check-registry",
      "type": "data-contract",
      "summary": "Добавлен публичный реестр проверки правил: официальные источники, бассейновые ограничения, маршруты разрешений и неподтверждённые юридические утверждения. Реестр показан в правилах, данных, llms, готовности для ИИ и smoke-проверке.",
      "source_commit": "26e7d3d",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "browser smoke: /rules, /data, /data/rule-checks.json"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-25",
      "release": "stable-profile-routes",
      "type": "frontend-contract",
      "summary": "Добавлены стабильные публичные страницы водоёмов и видов. Sitemap и машинные индексы переведены с якорей на канонические адреса детальных страниц.",
      "source_commit": "015bfeb",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-25",
      "release": "machine-consumer-indexes",
      "type": "data-contract",
      "summary": "Добавлены машинные индексы водоёмов и видов, а также правила цитирования по каждому типу источника для ИИ и поиска.",
      "source_commit": "4f258bb",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-25",
      "release": "seo-ai-geo-contract",
      "type": "discovery",
      "summary": "Добавлены канонические метаданные, JSON-LD, llms.txt, llms-full.txt, контракт готовности для ИИ, публичные smoke-проверки и явные границы неподтверждённых утверждений.",
      "source_commit": "c8354f6e709d",
      "verification": [
        "npm run check",
        "npm audit --audit-level=high",
        "npm run smoke:vps"
      ],
      "public_gate": "pending_dns_cutover"
    },
    {
      "date": "2026-07-24",
      "release": "2026-07-24.1",
      "type": "thematic-data",
      "summary": "Опубликован первый тематический выпуск: водные объекты QazGeo, профили водоёмов, профили видов, уроки академии и границы статуса источников.",
      "source_commit": "4c6e636d95b0",
      "verification": [
        "npm run check"
      ],
      "public_gate": "origin_ready"
    }
  ]
}
