История изменений

Недавние технические изменения, по датам. Подробную версию того, как проект пришёл к этому (прототип V1, рывок в ширину V2, переписывание физики V3 и перестройка интерфейса V4), смотри на странице вех.

4.3.0 - отчёты об ошибках прямо в приложении + доска обратной связи (июнь 2026)

  • Сообщи о проблеме прямо из приложения - новая страница Report в Pro и в Free отправляет отчёт об ошибке или запрос на функцию прямо из OLED Guard. Она автоматически прикладывает снимок диагностики (версия, издание, GPU, раскладка мониторов) и очищенный от PII хвост engine.log, причём с предпросмотром перед отправкой: ты видишь и можешь отредактировать ровно то, что передаётся, удалить любую строку журнала или отправить только текст. Ничего не покидает твою машину, пока ты не нажмёшь «Отправить».
  • Публичная доска обратной связи - отчёты и запросы на функции теперь публикуются на публичной доске по адресу board.oledguard.com, где ты можешь следить за ними, комментировать и голосовать; самые востребованные идеи поднимаются наверх. Новые заявки проходят проверку, прежде чем стать публичными.
  • Очистка журнала с приоритетом приватности - прикладываемый журнал автоматически вырезает имена приложений и exe на переднем плане, пути к пользовательским папкам, адреса электронной почты и IP-адреса. Строки с моделью монитора оставлены намеренно, потому что данные, специфичные для панели, - это как раз то, что помогает диагностировать проблему с OLED.
  • Виньетка отвязана от режима Away - затемнение краёв теперь самостоятельная глобальная постоянная настройка, которая больше не сбрасывается между сессиями, с новым переключателем «Всегда затемнять края».
  • Активная виньетка теперь очевидна - переключатель в строке состояния плюс граничная линия на Heatmap дают ясно понять, когда затемнение краёв включено (исправляет отчёты в духе «виньетка выглядит невидимой»).
  • Режим Away уступает место полноэкранному режиму - Away больше не активируется поверх полноэкранных игр, а частота обратного чтения снижена, чтобы уменьшить подтормаживания в игре.
  • Исправления стабильности виньетки - маркеры перетаскивания краёв больше не дрожат (гонка при гидратации плюс запись на диск на каждое движение), а переключатель «Всегда затемнять» больше не мечется туда-сюда при первом клике.
  • Фильтр шумовых разрывов теперь по умолчанию Off (раньше был Морфологический), что снижает нагрузку на GPU в конфигурации из коробки.
  • Более просторное окно по умолчанию - при первом запуске панель управления открывается чуть шире.

4.2.1 - Free-издание + авто-пауза в полноэкранном режиме (май 2026)

  • OLED Guard Free в Microsoft Store - бесплатное издание, которое даёт автоматическую защиту от выгорания для одного дисплея на рабочем столе силой Balanced, вместе с оверлеем Heatmap, режимом Away и Snooze. Оно намеренно не защищает полноэкранные приложения; это остаётся возможностью Pro.
  • Авто-пауза в полноэкранном режиме (Free) - когда полноэкранная игра или видео закрывают основной дисплей, Free останавливает движок, чтобы тот никогда не накладывался поверх твоего контента и не стоил тебе производительности, а затем автоматически возобновляет работу, как только ты возвращаешься на рабочий стол.
  • Рабочий стол больше не путается с полноэкранным приложением - детектор полноэкранного режима в движке теперь исключает оболочку рабочего стола Windows (Progman / WorkerW). Это также исправляет случай в Pro Auto Mode, когда нахождение на пустом рабочем столе могло привести к пресету для полноэкранной игры/видео вместо пресета Work для статичного контента.
  • Единая нумерация версий - Pro и Free теперь используют одну линию версий 4.2.1.

4.2.0 - финальная шлифовка релиза (май 2026)

Проход по готовности к выпуску 4.2.0 в Steam и Microsoft Store.

  • Релиз в Steam - OLED Guard Pro теперь доступен в Steam (Steam App ID 4558060) наряду с существующими изданиями в Microsoft Store.
  • Принудительный запуск одного экземпляра - запуск второй копии теперь поднимает существующее окно вместо того, чтобы порождать дублирующий движок, который борется за ресурсы захвата D3D.
  • Сохранение расположения окна - панель управления запоминает свой размер, положение и состояние развёрнутости между запусками, сверяясь с текущей раскладкой мониторов, чтобы отключённый дисплей не оставил окно за пределами видимой области.
  • Морфологический фильтр шумовых разрывов теперь используется по умолчанию в Auto Mode (раньше был Off). Каждый заводской пресет поставляется с включённым фильтром.
  • Переопределение интенсивности для отдельного профиля - App Profiles теперь могут масштабировать только ползунок Intensity для одного приложения, не редактируя сам пресет.
  • Интерфейс при конфликте захвата exe - страница App Profiles показывает конфликт прямо на месте, если два профиля пытаются завладеть одним и тем же исполняемым файлом, и отклоняет сохранение до его разрешения.
  • Browse... - нативный диалог выбора файла для указания исполняемого файла, когда в списке запущенных приложений и в браузере библиотеки Steam нет того, что тебе нужно.
  • Исключение из захвата с учётом перекрытия - зарегистрированные окна приложений теперь вносят в маску исключения только свою видимую область, закрывая разрыв приложения за перекрывающим окном.
  • Исключение WDA с учётом видимости - флаг защиты от захвата экрана теперь переключается в зависимости от того, какая часть окна OLED Guard видна, устраняя остаточный разрыв приложения на полностью видимых окнах.
  • Нижний порог видимости оверлея (гамма 0.6), чтобы обнаруженные HUD оказывались на видимом уровне защиты, а не на почти невидимом нижнем пороге зелёной зоны Heatmap.
  • Восстановление Settings.json из .bak - нечитаемый файл настроек теперь помещается в карантин в settings.json.bak и записывается в журнал, вместо того чтобы молча сбрасываться к значениям по умолчанию без следов.
  • Всплывающая подсказка в трее при закрытии - первое за сессию уведомление "всё ещё работает в трее", чтобы пользователи не думали, что приложение закрылось, когда они нажимают на X.
  • Повышение версии app.manifest - добавлен longPathAware, добавлен GUID supportedOS для Windows 11, включена кодовая страница UTF-8.
  • engine.log из Log.Warn/Error - блоки catch в мосте и движке теперь пишут структурированные записи в %LOCALAPPDATA%\OLEDGuard\engine.log, вместо того чтобы полагаться на Debug.WriteLine (который вырезается в Release).
  • Исправление CA2014 stackalloc-in-loop в горячем пути рендеринга.
  • Внутриигровой HUD для тонкой настройки (Ctrl+Shift+G) - необязательный компактный оверлей, всегда поверх остальных окон, который раскрывает живую логику Auto Mode, назначаемый на горячую клавишу со страницы Hotkeys.

V4 - перестройка интерфейса (с 27 апреля)

  • Поддержка горячего подключения по всему списку мониторов. Подключишь USB-C OLED - движок его подхватит; отключишь - защита чисто останавливается, не мешая другим дисплеям.
  • Повторное зондирование DDC/CI для каждого монитора, когда возможности меняются во время работы.
  • Кольцевой буфер истории угроз на 24ч, сохраняемый для временной шкалы статистики.
  • Сохранение экранного времени по приложениям между перезапусками.
  • Оценка уверенности классификатора в потоке метрик, чтобы контроллер Auto раскрывал неопределённость.
  • Стартовое зондирование DDC продлено со 150 мс до 1,2 с - убирает класс ложных сообщений "No DDC" на мониторах, которым нужен момент, чтобы проснуться.
  • Маршрутизация внешних ссылок - клики внутри оболочки WebView2 теперь открываются в твоём браузере по умолчанию, вместо того чтобы исчезать во встроенном представлении.
  • Визуальная система v4 на каждой странице: панель управления, мониторы, оверлей, виньетка, настройки, расширенные, профили, hotkeys и о программе, каждая перестроена в соответствии с дизайн-источником v4.
  • Новый логотип-щит заменяет монограмму OG в десктоп-приложении и на сайте.

V3 - физический движок (18 апреля - 26 апреля)

  • Попиксельный шейдер экспозиции (ExposureAccumulatePS_v3) заменяет эвристический аккумулятор v2.
  • Огибающая движения + гейт стабильности как отдельные проходы GPU.
  • Контроллер Auto Mode V3 с явной синхронизацией интерфейса и баннером паузы, который следует за ручными правками.
  • Живое отображение классификатора на странице расширенных настроек, передающее историю ручек контроллера на частоте 60 Гц.
  • Попиксельная огибающая движения заменяет основанный на ячейках слой интеллекта (который создавал лестничные артефакты на границах контента и теперь окончательно выведен из эксплуатации).
  • Наборы тонкой настройки L4 для каждого пресета - 24/24 зелёных перед каждым релизом.
  • Window Border Protection выведена из эксплуатации (это была эвристика эпохи v2, которую движок V3 поглощает).
  • Фаза 8 редизайна V3 завершена удалением полей пресетов v2, свойств движка и устаревших ползунков интерфейса.

V2 - полноценное приложение (13 фев - 17 апр)

  • Многомониторная архитектура с независимыми конвейерами захвата и рендеринга для каждого дисплея.
  • Яркость и контраст через DDC/CI посредством команд VESA MCCS.
  • Профили для каждого приложения с наблюдателем за окном на переднем плане и переключением с защитой от дребезга.
  • Контроллер Auto Mode v1/v2 предшествует редизайну V3.
  • Набор режимов защиты Noise / Vignette / Mosaic с отдельными шейдерами.
  • Игровые пресеты с защитой, взвешенной по краям и пропорциональным гейтом яркости.
  • Иерархический тестовый каркас (L1 модульные / L2 физика / L3 сценарии / L4 для каждого пресета) с 81 помеченным утверждением.
  • Пресеты качества (Low / Medium / High / Ultra при 432p) меняют точность обнаружения на стоимость захвата.
  • Пробный поток Microsoft Store плюс разделение прав на Free / Pro.

V1 - доказательство концепции (2024)

Первая версия. Аппаратно-ускоренный захват экрана, композиция оверлея для одного монитора через DWM, ядро движка, на котором построено всё последующее. Предшествует этому публичному репозиторию.