Commit graph

  • fdf222cc5c Merge pull request 'fix(tradein/geocoder): fail-closed выбор ЕКБ-реестров вместо списка городов (#2582)' (#2589) from fix/tradein-geocoder-fail-closed into main lekss361 2026-07-31 16:30:38 +00:00
  • af609c18f3 fix(tradein/geocoder): починить маркер села + fail-closed для явного city_hint (#2582) fix/tradein-geocoder-fail-closed bot-backend 2026-07-31 19:17:47 +03:00
  • 62aca75994 fix(tradein/ui): не обрезать длинные названия городов в селекторе (#2576) fix/tradein-ui-city-label-clip bot-backend 2026-07-31 19:08:42 +03:00
  • 174680a82e Merge forgejo/main into fix/tradein-geocoder-fail-closed bot-backend 2026-07-31 18:46:14 +03:00
  • a7fbd348e0 Merge pull request 'feat(tradein/ui): передавать город в геокодирование + честный признак неопределённости (#2576)' (#2584) from feat/tradein-ui-city-hint into main lekss361 2026-07-31 15:46:01 +00:00
  • 939c07917b Merge pull request 'fix(tradein/tasks): городской гейт в ночном бэкфилле координат (#2583)' (#2588) from fix/tradein-coords-backfill-city-gate into main lekss361 2026-07-31 15:43:53 +00:00
  • 49ee85aae2 fix(tradein/ui): не называть неподтверждённый город в плашке неопределённости (#2576) feat/tradein-ui-city-hint bot-backend 2026-07-31 18:42:40 +03:00
  • 790f69ee01 Merge pull request 'fix(tradein/rbac): скрыть «Доля в продаже» и «Кэш» от клиентских аккаунтов' (#2587) from fix/tradein-hide-saleshare-cache-from-clients into main lekss361 2026-07-31 15:39:56 +00:00
  • cf35e632db fix(tradein/tasks): городской гейт в ночном бэкфилле координат (#2583) fix/tradein-coords-backfill-city-gate bot-backend 2026-07-31 18:38:39 +03:00
  • 61b329e724 fix(tradein/geocoder): fail-closed выбор ЕКБ-реестров вместо списка городов (#2582) bot-backend 2026-07-31 18:36:12 +03:00
  • 8d3b571925 Merge pull request 'fix(tradein/geocoder): не подставлять Екатеринбург молча — явный city_hint (#2576)' (#2580) from fix/tradein-geocoder-city-default into main lekss361 2026-07-31 15:23:32 +00:00
  • abb9398f3f fix(tradein/rbac): скрыть «Доля в продаже» и «Кэш» от клиентских аккаунтов bot-backend 2026-07-31 18:20:03 +03:00
  • eb44718677 Merge pull request 'fix(tradein/avito): обогащать деталями листинги всей области, не только ЕКБ (#2576)' (#2578) from fix/tradein-avito-detail-oblast into main lekss361 2026-07-31 15:16:49 +00:00
  • a8d29fa031 fix(tradein/ui): не слать city_hint по умолчанию — только явный выбор или город из адреса (#2576) bot-backend 2026-07-31 18:15:40 +03:00
  • 996c4509ff Merge pull request 'fix(tradein/estimator): гео-ограничение якорного тира — не брать чужие города (#2581)' (#2586) from fix/tradein-anchor-geo-scope into main lekss361 2026-07-31 15:08:23 +00:00
  • b3c76c8c62 fix(tradein/geocoder): city_hint должен доходить до локальных тиров + не терять ЕКБ-привязку в Tier 4 (#2576) fix/tradein-geocoder-city-default bot-backend 2026-07-31 17:55:18 +03:00
  • 23b8816863 fix(tradein/estimator): гео-ограничение якорного тира — не брать чужие города (#2581) fix/tradein-anchor-geo-scope bot-backend 2026-07-31 17:39:00 +03:00
  • 2779ef5e79 feat(tradein/ui): передавать город в геокодирование + честный признак неопределённости (#2576) bot-backend 2026-07-31 17:08:46 +03:00
  • 5a66c2df51 fix(tradein/avito): экранировать _ в LIKE-паттернах + честная эмуляция LIKE в тесте (#2576) fix/tradein-avito-detail-oblast bot-backend 2026-07-31 17:02:14 +03:00
  • e1935b609f Merge pull request 'feat(tradein/db): авто-refresh ценовых бэндов по городам + порог для малых городов (#2576)' (#2579) from feat/tradein-price-bands-refresh into main lekss361 2026-07-31 14:01:34 +00:00
  • 3595cb603f test(tradein): добавить deal_city_price_bands_refresh в паритет-тест планировщика (#2576) feat/tradein-price-bands-refresh bot-backend 2026-07-31 16:56:16 +03:00
  • 4b1a282234 fix(tradein/geocoder): не подставлять Екатеринбург молча — явный city_hint (#2576) bot-backend 2026-07-31 16:42:29 +03:00
  • f44ed4043c feat(tradein/db): авто-refresh ценовых бэндов по городам + порог для малых городов (#2576) bot-backend 2026-07-31 16:33:20 +03:00
  • 10442d0187 fix(tradein/avito): обогащать деталями листинги всей области, не только ЕКБ (#2576) bot-backend 2026-07-31 16:33:04 +03:00
  • 103dc22b8c Merge pull request 'feat(tradein/support): чат поддержки без входа — экран логина и «доступа нет»' (#2577) from feat/tradein-anon-support into main lekss361 2026-07-31 13:22:20 +00:00
  • 910ef2503c Merge pull request 'fix(tradein/team): admin управляет менеджерами — сброс пароля и блокировка (#2556)' (#2575) from fix/tradein-team-admin-manages-managers into main lekss361 2026-07-31 13:08:13 +00:00
  • 40fc94ee91 feat(tradein/support): чат поддержки без входа — экран логина и «доступа нет» bot-backend 2026-07-31 16:04:51 +03:00
  • 5817e0b31a fix(tradein/team): admin управляет менеджерами — сброс пароля и блокировка (#2556) bot-backend 2026-07-31 15:51:50 +03:00
  • f6b68b6eca Merge pull request 'feat(tradein/caddy): снять basic_auth с /trade-in — своя авторизация (#2558)' (#2569) from feat/tradein-caddy-cutover into main lekss361 2026-07-30 21:52:00 +00:00
  • 2b24408c3f docs(tradein/caddy): исправить обоснование scrub + scrub в ui-preview (#2558) feat/tradein-caddy-cutover bot-backend 2026-07-31 00:19:26 +03:00
  • 69fd0ba260 Merge pull request 'fix(tradein/ui): вход в «Команду» из v2-навигации + понятный 401 (#2556)' (#2570) from fix/tradein-team-nav-and-401 into main lekss361 2026-07-30 21:16:23 +00:00
  • a3628843c3 fix(tradein/ui): вход в «Команду» из v2-навигации + понятный 401 (#2556) fix/tradein-team-nav-and-401 bot-backend 2026-07-31 00:13:46 +03:00
  • 01bf4a91e4 feat(tradein/caddy): снять basic_auth с /trade-in — своя авторизация (#2558) bot-backend 2026-07-31 00:05:33 +03:00
  • 80d54cb5cd Merge pull request 'feat(tradein/ui): team-дашборд менеджера — сотрудники, квоты, история (#2556)' (#2565) from feat/tradein-team-dashboard into main lekss361 2026-07-30 19:27:30 +00:00
  • a916ceea52 Merge pull request 'feat(tradein/db): seed существующих юзеров + ASCII-CHECK на username (#2557)' (#2564) from feat/tradein-users-seed into main lekss361 2026-07-30 19:17:34 +00:00
  • 1364cd8e7a Merge pull request 'fix(tradein/team): устойчивая сортировка списка + семантика unlimited в батч-квотах (#2554)' (#2566) from fix/tradein-team-list-order into main lekss361 2026-07-30 19:17:10 +00:00
  • 1ed0338b95 fix(tradein/ui): пагинация на границе страницы + запрос списка только для admin/manager (#2556) feat/tradein-team-dashboard bot-backend 2026-07-30 22:12:18 +03:00
  • df943ea1c7 fix(tradein/team): \Z вместо $ в username-regex — 422 вместо 500 на trailing newline (#2554) fix/tradein-team-list-order bot-backend 2026-07-30 22:10:52 +03:00
  • f915e1ee4d fix(tradein/db): не затирать manager_id при повторном прогоне сида (#2557) bot-backend 2026-07-30 22:08:14 +03:00
  • f112a4affb feat(tradein/ui): team-дашборд менеджера — сотрудники, квоты, история (#2556) bot-backend 2026-07-30 22:02:41 +03:00
  • 2e05a16a14 fix(tradein/team): устойчивая сортировка списка + семантика unlimited в батч-квотах (#2554) bot-backend 2026-07-30 22:02:19 +03:00
  • e7a658c7fa feat(tradein/db): seed существующих юзеров + ASCII-CHECK на username (#2557) bot-backend 2026-07-30 21:56:16 +03:00
  • 4128564341 Merge pull request 'feat(tradein/team): team-management API — employees CRUD, quotas, stats (#2554)' (#2563) from feat/tradein-team-api into main lekss361 2026-07-30 18:38:26 +00:00
  • 4ac3971061 fix(tradein/team): revoke сессий при смене пароля + Origin-check + батч-квоты (#2554) feat/tradein-team-api bot-backend 2026-07-30 21:23:32 +03:00
  • acba900f21 Merge pull request 'feat(tradein/ui): login-форма + session-aware RouteGuard (#2555)' (#2562) from feat/tradein-login-ui into main lekss361 2026-07-30 18:10:46 +00:00
  • e6d68c349e fix(tradein/ui): харденинг sanitizeNext + сохранение query в next (#2555) feat/tradein-login-ui bot-backend 2026-07-30 20:57:54 +03:00
  • 712c56f456 feat(tradein/team): team-management API — employees CRUD, quotas, stats (#2554) bot-backend 2026-07-30 20:51:31 +03:00
  • 15d506b7dd feat(tradein/ui): login-форма + session-aware RouteGuard (#2555) bot-backend 2026-07-30 20:46:33 +03:00
  • d3e0aa296c Merge pull request 'feat(tradein/auth): auth-core — login/logout, sessions, dual-mode rbac (#2552)' (#2561) from feat/tradein-auth-core into main lekss361 2026-07-30 17:19:44 +00:00
  • 4ecc3d689c fix(tradein/auth): предотвратить подмену X-Authenticated-User при session-auth (#2552) feat/tradein-auth-core bot-backend 2026-07-30 20:14:26 +03:00
  • 0835266516 feat(tradein/auth): auth-core — login/logout, sessions, dual-mode rbac (#2552) bot-backend 2026-07-30 10:48:28 +03:00
  • 876538c57f Merge pull request 'feat(tradein/auth): password hashing + session config foundation (#2550)' (#2560) from feat/tradein-auth-password-foundation into main lekss361 2026-07-30 07:04:56 +00:00
  • e703d64a7f Merge pull request 'feat(tradein/db): tradein_users + tradein_sessions schema (#2551)' (#2559) from feat/tradein-auth-users-schema into main lekss361 2026-07-30 06:59:23 +00:00
  • 3f1b86f16a feat(tradein/auth): password hashing + session config foundation (#2550) feat/tradein-auth-password-foundation bot-backend 2026-07-30 09:40:51 +03:00
  • 0c5246913a feat(tradein/db): tradein_users + tradein_sessions schema (#2551) feat/tradein-auth-users-schema bot-backend 2026-07-30 09:40:05 +03:00
  • 600717f44c Merge pull request 'test(tradein/rbac): user2 → expired в test_get_role_known_users (после #2548)' (#2553) from fix/tradein-rbac-test-user2-expired into main lekss361 2026-07-30 06:23:34 +00:00
  • db2cde287a test(tradein/rbac): user2 → expired в test_get_role_known_users (после #2548) fix/tradein-rbac-test-user2-expired bot-backend 2026-07-30 09:20:47 +03:00
  • 0ac2793f29 Merge pull request 'fix(tradein/auth): закрыть доступ user2 (Брусника) — role pilot → expired' (#2548) from fix/tradein-auth-revoke-user2 into main lekss361 2026-07-30 06:09:56 +00:00
  • 59fa6d52da fix(tradein/auth): закрыть доступ user2 (Брусника) — role pilot → expired fix/tradein-auth-revoke-user2 bot-backend 2026-07-30 09:05:43 +03:00
  • 5626d9e720 feat(mera/b2c): правовая рамка — согласие до сохранения, удаление по сроку и по запросу (этап 4 из 8) bot-backend 2026-07-28 15:24:21 +03:00
  • eef10f406f feat(mera/b2c): анти-абуз для анонимного трафика — этап 2 из 8 bot-backend 2026-07-28 15:21:03 +03:00
  • 2b86e94c5b feat(mera): открыть публичный B2C-периметр МЕРА (ЭТАП 1, без функционала) bot-backend 2026-07-28 15:01:14 +03:00
  • 5f3579b8c2 feat(tradein/auth): восстановить доступ praktika + безлимит через данные вместо хардкода (#2544) lekss361 2026-07-26 23:29:53 +00:00
  • 466928b0b5 Merge remote-tracking branch 'forgejo/main' into feat/tradein-praktika-unlimited bot-backend 2026-07-27 02:27:17 +03:00
  • 036ff84eaa fix(tradein/tgbot): ограничение частоты на отправителя в мосте поддержки (#2543) lekss361 2026-07-26 23:16:57 +00:00
  • ca46411346 fix(tradein/tests): тесты авторизации проверяют настоящий guard + реальный рендер PDF (#2541) lekss361 2026-07-26 23:04:43 +00:00
  • bcb903cfa2 fix(tradein/devops): проверка всего стека после деплоя + запас на остановку (#2540) lekss361 2026-07-26 22:57:41 +00:00
  • a450aed71b fix(tradein/sql): цена в подписи дедупликации «доли квартир дома в продаже» (#2539) lekss361 2026-07-26 22:50:39 +00:00
  • 3e4c93c91e fix(tradein/auth): restore praktika access + data-driven unlimited quota grants bot-backend 2026-07-27 01:49:01 +03:00
  • 76016fd469 fix(tradein/security): утечка ключа прокси, аудит действий админа, отличимость неудачного входа, IDOR в заявке (#2536) lekss361 2026-07-26 22:42:15 +00:00
  • 35f5c3426b fix(tradein/scrapers): детекция дрейфа разметки вместо тихой пустоты (#2535) lekss361 2026-07-26 22:33:54 +00:00
  • dce2cd2040 fix(tradein): откат транзакции в backfill + неотрицательный счётчик квот (#2538) lekss361 2026-07-26 22:21:08 +00:00
  • 6e132f8986 fix(tradein/estimator): граница номера дома в подборе аналогов «тот же дом» (#2534) lekss361 2026-07-26 22:07:00 +00:00
  • cf3d0eb4f6 fix(tradein/v2): доступность — ориентир главного содержимого и заголовок первого уровня (#2542) lekss361 2026-07-26 22:03:43 +00:00
  • d6b9891fe2 fix(tradein/v2): заглушка карты в шапке заезжала под адресную карточку (#2537) lekss361 2026-07-26 22:00:23 +00:00
  • 580be61914 fix(tradein/location): заменить сломанный коэффициент локации на калиброванный индекс (#2531) lekss361 2026-07-26 21:48:15 +00:00
  • 5c91df2442 chore(tradein/sql): переименовать миграцию 189 -> 190 (номер занят фиксом счётчика квот) bot-backend 2026-07-27 00:43:04 +03:00
  • 7a5f4b89f4 fix(tradein/sale-share): price_bucket в дедуп-сигнатуре числителя (#audit) bot-backend 2026-07-27 00:41:47 +03:00
  • 64f3f8769f fix(tradein/tests): stop mirroring rbac_guard, add real WeasyPrint page-count regression test bot-backend 2026-07-27 00:41:01 +03:00
  • 3768aa2b5d fix(tradein/devops): post-deploy health для всего стека + grace period + manifest bot-backend 2026-07-27 00:34:38 +03:00
  • 8e0479c616 fix(tradein/tgbot): per-chat_id rate-limit на входящие сообщения бота bot-backend 2026-07-27 00:32:45 +03:00
  • 66ff9b9bb7 fix(tradein/v2/a11y): осмысленный текст sr-only <h1> результата оценки bot-backend 2026-07-27 00:32:44 +03:00
  • 9c59586be6 fix(tradein/backfill): rollback on listings save failure + nonnegative used quota bot-backend 2026-07-27 00:30:52 +03:00
  • 4ec6fc9970 fix(tradein/v2): заглушка карты в шапке заезжала под адресную карточку bot-backend 2026-07-27 00:00:25 +03:00
  • 976aa128ca Merge remote-tracking branch 'forgejo/main' into fix/tradein-audit-security bot-backend 2026-07-26 23:57:37 +03:00
  • 77dafed63e Merge remote-tracking branch 'forgejo/main' into fix/tradein-audit-scrapers bot-backend 2026-07-26 23:57:34 +03:00
  • 18dbca4cd7 Merge remote-tracking branch 'forgejo/main' into fix/tradein-audit-analogs bot-backend 2026-07-26 23:57:32 +03:00
  • 2cfd112c53 fix(tradein/security): audit findings — proxy-key leak, admin audit, login status, lead IDOR bot-backend 2026-07-26 23:54:12 +03:00
  • 0db7a026bd fix(tradein/scrapers): silent-failure guards for MERA scraper audit findings bot-backend 2026-07-26 23:52:39 +03:00
  • a0647a53a9 feat(tradein/ui): окно чата поддержки на сайте вместо ухода в Telegram (#2533) lekss361 2026-07-26 20:52:30 +00:00
  • ca1015bd4e feat(tradein/support): веб-чат поддержки — серверная часть поверх Telegram-моста (#2532) lekss361 2026-07-26 20:43:47 +00:00
  • deeff7ed1f fix(tradein/estimator): Tier S radius-fallback house-number boundary + distance_m bot-backend 2026-07-26 23:42:36 +03:00
  • 46e87c1ba2 Merge remote-tracking branch 'forgejo/main' into feat/tradein-web-chat-ui bot-backend 2026-07-26 23:37:55 +03:00
  • ed12d9e657 Merge remote-tracking branch 'forgejo/main' into feat/tradein-web-chat-backend bot-backend 2026-07-26 23:34:39 +03:00
  • 5eadae1e95 fix(tradein/support): address deep-review H1/M1/M2/M3/M5/L1-L5 (web chat backend) bot-backend 2026-07-26 23:33:09 +03:00
  • 3d36861fb2 Merge remote-tracking branch 'forgejo/main' into fix/tradein-location-index-calibration bot-backend 2026-07-26 23:32:15 +03:00
  • ec7fd9c02c fix(tradein/ui): фронт под location-index — убрать обещание влияния на цену bot-backend 2026-07-26 23:32:03 +03:00
  • c9ba1b15ba fix(tradein/v2): вернуть адресную карточку поверх карты и координаты при restore-by-id (#2530) lekss361 2026-07-26 20:26:08 +00:00
  • ceaafa2d69 fix(tradein/v2): вернуть адресную карточку поверх карты и координаты при restore-by-id bot-backend 2026-07-26 23:22:49 +03:00
  • e060561851 Merge remote-tracking branch 'forgejo/main' into feat/tradein-web-chat-ui bot-backend 2026-07-26 23:17:22 +03:00