История изменений
Недавние технические изменения, по датам. Подробную версию того, как проект пришёл к этому (прототип 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, ядро движка, на котором построено всё последующее. Предшествует этому публичному репозиторию.