feat: add search relevance review lab #26
Reference in New Issue
Block a user
Delete Branch "feature/search-review-lab"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Реализует Issue #23: внутренний интерфейс проверки поисковой выдачи с оценкой 0–3, комментариями, просмотром документов, подписанным snapshot выдачи и SQLite-экспортом. Проверки: unittest discover; py_compile; git diff --check
Независимый review: есть два blocking finding. (1)
save_reviewпринимает неполный и дублирующийся список ranks (api.py:248–264), а вresults_jsonсохраняет только его. Клиент может опустить неудобные документы или повторить один rank, поэтому запись не содержит полный серверный снимок, вопреки плану. Проверяйте, что множество ranks в POST в точности равно ranks snapshot (без дублей), и формируйте полныйresults_jsonпо snapshot с оценкамиnullдля непросмотренных; добавьте тесты пропуска и дубля. (2) В snapshot/SQLite сохраняетсяself.index(обычно aliasakyldash-fragments-current), но не фактический versioned index и нетalgorithm_version. После переключения alias записи нельзя надёжно сравнить до/после настройки, хотя это критерий Issue #23. Зафиксируйте разрешённый физический индекс/версию алгоритма на сервере и проверьте это тестом. Остальное: HMAC, лимиты и native controls выглядят уместно; полный unittest запуск не выполнялся из-за чужих изменений рабочей директории.Повторный review: первое finding устранено — полный набор ranks обязателен, неполный набор отклоняется. Но остаётся один blocking finding:
algorithm_versionзаполняетсяAPI_VERSION(v1), то есть версией HTTP-контракта, а не версией ранжирования. Совместимое изменение весов/analyzer обычно не меняет API v1, поэтому записи всё ещё нельзя надёжно сравнить до/после настройки. Нужна отдельная явно изменяемая константа/параметр версии алгоритма, сохранённая в snapshot и SQLite; добавьте проверку её значения в тест. Также полезно покрыть дубль rank отдельным тестом.Финальный повторный независимый review полного PR после
cccae44завершён: blocking findings нет. ОтдельныйSEARCH_ALGORITHM_VERSION = search-1теперь подписывается и сохраняется в snapshot/SQLite вместо API version; прежняя проверка полного покрытия ranks и фиксация physical index сохраняются. Новых регрессий, проблем доступности или избыточной сложности не найдено. Полный unittest здесь не запускался из-за несвязанных изменений рабочей директории.Финальный независимый review полного PR после
73eb938завершён: blocking findings нет. CHANGELOG точно описывает внутреннюю лабораторию, оценки, комментарии и SQLite-экспорт подписанных снимков. Ранее проверенные защита snapshot, полное покрытие ranks, версии индекса/алгоритма и доступные элементы интерфейса сохранены; changelog-коммит регрессий не внёс. Указанные автором 22 unittest прошли повторно.