2026-01-08 - 2026-07-08

Overview

18 Active Pull Requests
25 Active Issues
Excluding merges, 1 author has pushed 37 commits to main and 67 commits to all branches. On main, 26 files have changed and there have been 3138 additions and 1272 deletions.

18 Pull requests merged by 2 users

Merged #42 refactor(render): этап 6 — косметика (#33, финал эпика #34) 2026-07-07 17:44:59 +03:00

Merged #41 refactor(render): этап 5 — таблица медиа-типов (5a байт-в-байт + 5b фиксы) (#32) 2026-07-07 16:46:48 +03:00

Merged #40 refactor(render): этап 4 — группировка без deepcopy + фикс naive/aware (#31) 2026-07-07 16:46:31 +03:00

Merged #39 refactor(render): этап 3 — слияние близнецов вокруг _prepare_feed_posts (#30) 2026-07-07 16:46:17 +03:00

Merged #38 refactor(render): этап 2 — футер merged-групп из настоящего Message (#29) 2026-07-07 16:45:55 +03:00

Merged #37 refactor(render): этап 1 — sanitizer.py (#28, переоткрыт на main после стек-орфана) 2026-07-06 17:25:48 +03:00

Merged #36 refactor(render): этап 1 — sanitizer.py + санитайз per-post (#28) 2026-07-06 17:05:21 +03:00

Merged #35 test(render): этап 0 — golden-эталоны фидов (оракул) (#27) 2026-07-06 17:05:11 +03:00

Merged #21 feat: Kurigram 2.2.23 + рендеринг новых типов медиа Telegram 2026-07-05 21:59:06 +03:00

Merged #20 fix: XSS в debug-title (#13) + order-independent тест-сьют (#17) 2026-07-05 17:22:02 +03:00

Merged #19 Стабилизация: статика без флаки + устранение зависаний (стадии 1–7) 2026-07-05 17:00:50 +03:00

Merged #8 fix(stability): стадия 1 — таймауты на все TG RPC + устойчивый воркер загрузок + супервизия 2026-07-05 16:58:52 +03:00

Merged #10 fix(stability): стадия 2 — атомарные скачивания медиа, in-flight дедуп, FloodWait->429, ограниченный семафор 2026-07-05 16:58:45 +03:00

Merged #11 fix(stability): стадия 3 — раздача через FileResponse, чистый ASGI-логгер, больший executor 2026-07-05 16:58:38 +03:00

Merged #12 fix(stability): стадия 4 — гигиена event loop (рендер фида в поток, ленивый raw_message, один sanitize на выход) 2026-07-05 16:58:32 +03:00

Merged #15 fix(stability): стадия 5 — батчинг записи access-time в SQLite 2026-07-05 16:58:25 +03:00

Merged #16 feat(stability): стадия 6 — лёгкий /ping healthcheck без TG RPC 2026-07-05 16:58:18 +03:00

Merged #18 test(stability): стадия 7 — сквозная верификация (интеграционные тесты + отчёт) 2026-07-05 16:58:10 +03:00

19 Issues closed from 3 users

Closed #33 Рефакторинг рендера [этап 6/6]: косметика (обёртка поста, константы стилей, чистка) 2026-07-07 17:44:59 +03:00

Closed #32 Рефакторинг рендера [этап 5/6]: таблица медиа-типов в post_parser (два коммита: 5a байт-в-байт + 5b фиксы) 2026-07-07 16:46:48 +03:00

Closed #31 Рефакторинг рендера [этап 4/6]: группировка без deepcopy и мутаций, фикс naive/aware краша 2026-07-07 16:46:31 +03:00

Closed #30 Рефакторинг рендера [этап 3/6]: слияние generate_channel_rss/html вокруг _prepare_feed_posts 2026-07-07 16:46:17 +03:00

Closed #29 Рефакторинг рендера [этап 2/6]: футер merged-групп из настоящего Message, выпил конвертера 2026-07-07 16:45:55 +03:00

Closed #28 Рефакторинг рендера [этап 1/6]: sanitizer.py + санитайз per-post внутри _render_pipeline 2026-07-06 17:05:21 +03:00

Closed #27 Рефакторинг рендера [этап 0/6]: golden-эталоны фидов (оракул эквивалентности) 2026-07-06 17:05:11 +03:00

Closed #9 security: /health и /raw_json логируют TOKEN-секрет в plaintext при неудачной авторизации 2026-07-05 20:28:55 +03:00

Closed #22 Рефакторинг рендера [этап 1/6]: единый модуль sanitizer.py, санитайз per-post внутри _render_pipeline 2026-07-05 20:25:09 +03:00

Closed #17 Тест-сьют order-fragile: голый pytest -> 17 падений (sys.modules['config'] pollution, пре-существует) 2026-07-05 17:22:03 +03:00

Closed #13 Reflected XSS: несанитайзенный title в debug /post/html (пре-существующий, найден при ревью #12) 2026-07-05 17:22:03 +03:00

Closed #14 security: debug-HTML выводит несанитайзенный title (reflected-XSS, token-gated) 2026-07-05 17:03:24 +03:00

Closed #1 Стадия 1 — устранение зависаний: таймауты на все TG RPC + починка фонового воркера 2026-07-05 16:58:52 +03:00

Closed #2 Стадия 2 — статика: атомарные скачивания больших видео, FloodWait→429, семафор с таймаутом 2026-07-05 16:58:45 +03:00

Closed #3 Стадия 3 — отдача файлов через FileResponse, удаление BaseHTTPMiddleware, расширение executor 2026-07-05 16:58:38 +03:00

Closed #4 Стадия 4 — гигиена event loop: рендер фидов в поток, lazy raw_message, один sanitize на выход 2026-07-05 16:58:32 +03:00

Closed #5 Стадия 5 — SQLite: батчинг записей вместо connect+write на каждый запрос 2026-07-05 16:58:25 +03:00

Closed #6 Стадия 6 — лёгкий /ping и починка healthcheck (docker-compose) 2026-07-05 16:58:18 +03:00

Closed #7 Стадия 7 — сквозная верификация и наблюдение после деплоя 2026-07-05 16:58:10 +03:00

25 Issues created by 1 user

Opened #1 Стадия 1 — устранение зависаний: таймауты на все TG RPC + починка фонового воркера 2026-07-05 04:01:07 +03:00

Opened #2 Стадия 2 — статика: атомарные скачивания больших видео, FloodWait→429, семафор с таймаутом 2026-07-05 04:01:35 +03:00

Opened #3 Стадия 3 — отдача файлов через FileResponse, удаление BaseHTTPMiddleware, расширение executor 2026-07-05 04:01:56 +03:00

Opened #4 Стадия 4 — гигиена event loop: рендер фидов в поток, lazy raw_message, один sanitize на выход 2026-07-05 04:02:22 +03:00

Opened #5 Стадия 5 — SQLite: батчинг записей вместо connect+write на каждый запрос 2026-07-05 04:02:43 +03:00

Opened #6 Стадия 6 — лёгкий /ping и починка healthcheck (docker-compose) 2026-07-05 04:03:03 +03:00

Opened #7 Стадия 7 — сквозная верификация и наблюдение после деплоя 2026-07-05 04:03:20 +03:00

Opened #9 security: /health и /raw_json логируют TOKEN-секрет в plaintext при неудачной авторизации 2026-07-05 07:13:19 +03:00

Opened #13 Reflected XSS: несанитайзенный title в debug /post/html (пре-существующий, найден при ревью #12) 2026-07-05 09:33:04 +03:00

Opened #14 security: debug-HTML выводит несанитайзенный title (reflected-XSS, token-gated) 2026-07-05 09:42:47 +03:00

Opened #17 Тест-сьют order-fragile: голый pytest -> 17 падений (sys.modules['config'] pollution, пре-существует) 2026-07-05 10:45:48 +03:00

Opened #22 Рефакторинг рендера [этап 1/6]: единый модуль sanitizer.py, санитайз per-post внутри _render_pipeline 2026-07-05 18:13:42 +03:00

Opened #23 Кеши, PR-юнит 1 (пакеты A+B+F): снапшот-кеш истории вместо pickle, префиксный limit, джиттер при записи + age-sweep 2026-07-05 19:15:09 +03:00

Opened #24 Кеши, PR-юнит 2 (пакет C): единая канонизация ключа канала + one-shot миграция данных 2026-07-05 19:15:49 +03:00

Opened #25 Кеши, PR-юнит 3 (пакет D): фиксы свипера медиа-кеша + дедуп очереди фоновых загрузок 2026-07-05 19:15:58 +03:00

Opened #26 Кеши, PR-юнит 4 (пакет E): хелпер путей медиа-кеша + in-memory MIME-кеш на горячем пути /media 2026-07-05 19:16:09 +03:00

Opened #27 Рефакторинг рендера [этап 0/6]: golden-эталоны фидов (оракул эквивалентности) 2026-07-05 20:25:40 +03:00

Opened #28 Рефакторинг рендера [этап 1/6]: sanitizer.py + санитайз per-post внутри _render_pipeline 2026-07-05 20:26:17 +03:00

Opened #29 Рефакторинг рендера [этап 2/6]: футер merged-групп из настоящего Message, выпил конвертера 2026-07-05 20:26:45 +03:00

Opened #30 Рефакторинг рендера [этап 3/6]: слияние generate_channel_rss/html вокруг _prepare_feed_posts 2026-07-05 20:27:13 +03:00

Opened #31 Рефакторинг рендера [этап 4/6]: группировка без deepcopy и мутаций, фикс naive/aware краша 2026-07-05 20:27:46 +03:00

Opened #32 Рефакторинг рендера [этап 5/6]: таблица медиа-типов в post_parser (два коммита: 5a байт-в-байт + 5b фиксы) 2026-07-05 20:28:21 +03:00

Opened #33 Рефакторинг рендера [этап 6/6]: косметика (обёртка поста, константы стилей, чистка) 2026-07-05 20:28:39 +03:00

Opened #34 ЭПИК: рефакторинг пайплайна рендера (спека v5, этапы 0–6) 2026-07-05 20:29:11 +03:00

Opened #43 Долг: постфактум-ревью медиа-самолечения (3c9ce72, влито в main без ревью) 2026-07-08 04:26:10 +03:00