ChatGPT Auto Cleaner — v2.6 (navigation synced with KEEP_LAST)
English Instructions — Русская инструкция внизу под Английской ↓
🇬🇧 English Instructions
ChatGPT Auto Cleaner automatically removes outdated or empty message blocks, UI overlays, and “white squares” from the ChatGPT interface — keeping only the most recent messages with working navigation.
Version 2.6 adds full synchronization between message cleanup and navigation panels: action buttons and controls remain only for the last active messages, matching your KEEP_LAST value.
 Features
-  DOM cleanup — removes old messages, empty containers, “white squares”, and stale UI panels.
 -  Navigation sync — keeps only recent messages with working controls.
 -  Light and fast — runs only when the page is idle (no typing or streaming).
 -  Fully configurable — you can set how many messages to keep and cleanup frequency.
 -  Offline & safe — no data collection, no external requests.
 
Configuration
const KEEP_LAST    = 30;     // how many messages to keep
const BUFFER_TURNS = 2;      // small buffer to avoid deleting an active stream
const INTERVAL     = 90000;  // every 90 seconds (previously 120000 = 2 minutes)
const FIRST_DELAY  = 3000;   // first soft cleanup
const IDLE_MS      = 5000;   // idle timeout
- KEEP_LAST — how many messages remain visible.
 - BUFFER_TURNS — small safety margin to avoid deleting an ongoing reply.
 - INTERVAL — cleanup interval in milliseconds (now 90000 = 1.5 minutes).
 - FIRST_DELAY — first cleanup delay after page load.
 - IDLE_MS — how long the page must be idle before cleanup.
 
How It Works
- Monitors user activity and ChatGPT response rendering.
 - Waits for idle time before performing cleanup.
 - Removes old messages beyond 
KEEP_LAST + BUFFER_TURNS. - Deletes empty wrappers and old navigation bars.
 - Keeps the latest messages fully functional.
 
Recommended Settings
| Mode | KEEP_LAST | INTERVAL | 
|---|
| Default | 30 | 120000 (2 min) | 
| Optimized (Current) | 30 | 90000 (1.5 min) | 
| Fast Cleanup | 25 | 60000 (1 min) | 
| Heavy Chat Users | 40–60 | 180000 (3 min) | 
Safety
- Does not touch input fields or active conversations.
 - Skips cleanup while typing or streaming.
 - Uses 
requestIdleCallback for minimal performance impact. 
Privacy
Fully local script — no tracking, no telemetry, no external requests.
🇷🇺 Русская инструкция
ChatGPT Auto Cleaner — это автоматический очиститель интерфейса ChatGPT. Он удаляет старые, пустые или зависшие сообщения, белые блоки и панели действий, чтобы страница не "распухала" и не начинала тормозить.
В версии 2.6 реализована полная синхронизация между очисткой сообщений и панелями навигации — кнопки и элементы управления остаются только у последних сообщений (в соответствии с KEEP_LAST).
Возможности
-  Очистка DOM — удаляет старые сообщения, пустые контейнеры, «белые квадраты» и неактивные панели.
 -  Синхронизация навигации — кнопки и панели остаются только у последних сообщений.
 -  Без лагов — чистка выполняется только в спокойные моменты (не во время ввода или генерации).
 -  Гибкие настройки — можно задать, сколько сообщений сохранять и как часто очищать.
 -  Лёгкий скрипт — не делает сетевых запросов, полностью автономен.
 
Настройки
const KEEP_LAST    = 30;     // сколько сообщений хранить
const BUFFER_TURNS = 2;      // небольшой запас, чтобы не удалить поток
const INTERVAL     = 90000;  // каждые 90 секунд (раньше 120000 = 2 минуты)
const FIRST_DELAY  = 3000;   // первая мягкая очистка
const IDLE_MS      = 5000;   // тайм-аут покоя
- KEEP_LAST — сколько сообщений сохранять на странице.
 - BUFFER_TURNS — буфер, чтобы не удалить поток генерации.
 - INTERVAL — как часто запускать очистку (в миллисекундах, сейчас 90000 = 1.5 минуты).
 - FIRST_DELAY — задержка перед первой очисткой после загрузки страницы.
 - IDLE_MS — через сколько миллисекунд простоя запускать очистку.
 
Как работает
- Следит за активностью пользователя и процессом генерации ответа.
 - Ждёт, пока страница "успокоится" (ничего не печатается и не рендерится).
 - Удаляет старые блоки сообщений сверх 
KEEP_LAST + BUFFER_TURNS. - Очищает пустые контейнеры и лишние панели действий.
 - Оставляет последние N сообщений с рабочей навигацией.
 
Рекомендуемые настройки
| Режим | KEEP_LAST | INTERVAL | 
|---|
| Стандарт | 30 | 120000 (2 мин) | 
| Оптимальный (Текущий) | 30 | 90000 (1.5 мин) | 
| Быстрая очистка | 25 | 60000 (1 мин) | 
| Длинные чаты | 40–60 | 180000 (3 мин) | 
Безопасность
- Не трогает поле ввода и активные ответы.
 - Пропускает очистку во время набора текста или генерации.
 - Использует 
requestIdleCallback для минимальной нагрузки. 
Конфиденциальность
Скрипт полностью локальный, не собирает и не передаёт данные.
Убирает старые сообщения, освобождает чат для долгого общения в одном чате.