ytptube/app
Jesse Bate 687c82cb32 feat: add YTP_MAX_HISTORY to cap history and prevent unbounded DB growth
Long-running instances accumulate history indefinitely. As the history
table grows, SQLite COUNT(*), paginated SELECT, and index scans degrade.

YTP_MAX_HISTORY (default: 0 = unlimited) caps the number of completed
download records kept. Enforcement is a hook in DataStore.put(): on
each insertion, the oldest excess entries are immediately evicted from
the in-memory OrderedDict and their deletes are enqueued to SQLite.
DataStore.load() also trims on startup in case the limit was lowered
between restarts. No background tasks, no DB reads needed for the check.
2026-06-10 20:29:18 +09:30
..
features feat: add YTP_DISABLE_EXEC to strip dangerous yt-dlp options 2026-06-08 09:29:31 +03:00
library feat: add YTP_MAX_HISTORY to cap history and prevent unbounded DB growth 2026-06-10 20:29:18 +09:30
migrations refactor: move presets to db model 2026-01-25 19:17:54 +03:00
routes perf: lazy-load folders on demand; remove queue from config endpoint 2026-06-10 20:07:19 +09:30
schema refactor: migrate task definitions to db model 2026-01-23 23:38:59 +03:00
scripts refactor: use single logger namespace 2026-05-28 19:07:11 +03:00
tests feat: add YTP_MAX_HISTORY to cap history and prevent unbounded DB growth 2026-06-10 20:29:18 +09:30
yt_dlp_plugins fix: use yt-dlp meta extractors methods instead of local rolled ones 2026-05-08 21:39:12 +03:00
__init__.py Fix upgrading and installing pip packages 2025-07-24 17:22:05 +03:00
conftest.py fix: disable file logging during tests 2026-06-08 08:44:25 +03:00
local.py fix: improve the native build 2026-04-10 19:58:36 +03:00
main.py fix: startup crash if access long was turned off 2026-05-28 22:21:56 +03:00
upgrader.py refactor: use single logger namespace 2026-05-28 19:07:11 +03:00