2026-07-01 - 2026-07-08

Overview

18 Active Pull Requests
25 Active Issues
Excluding merges, 1 author has pushed 7 commits to main and 37 commits to all branches. On main, 17 files have changed and there have been 1687 additions and 57 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