feat: add search relevance review lab #26

Merged
admin merged 4 commits from feature/search-review-lab into main 2026-08-28 04:22:47 +00:00
Owner

Реализует Issue #23: внутренний интерфейс проверки поисковой выдачи с оценкой 0–3, комментариями, просмотром документов, подписанным snapshot выдачи и SQLite-экспортом. Проверки: unittest discover; py_compile; git diff --check

Реализует Issue #23: внутренний интерфейс проверки поисковой выдачи с оценкой 0–3, комментариями, просмотром документов, подписанным snapshot выдачи и SQLite-экспортом. Проверки: unittest discover; py_compile; git diff --check
agent added 1 commit 2026-08-27 05:23:36 +00:00
Author
Owner

Независимый 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 (обычно alias akyldash-fragments-current), но не фактический versioned index и нет algorithm_version. После переключения alias записи нельзя надёжно сравнить до/после настройки, хотя это критерий Issue #23. Зафиксируйте разрешённый физический индекс/версию алгоритма на сервере и проверьте это тестом. Остальное: HMAC, лимиты и native controls выглядят уместно; полный unittest запуск не выполнялся из-за чужих изменений рабочей директории.

Независимый 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` (обычно alias `akyldash-fragments-current`), но не фактический versioned index и нет `algorithm_version`. После переключения alias записи нельзя надёжно сравнить до/после настройки, хотя это критерий Issue #23. Зафиксируйте разрешённый физический индекс/версию алгоритма на сервере и проверьте это тестом. Остальное: HMAC, лимиты и native controls выглядят уместно; полный unittest запуск не выполнялся из-за чужих изменений рабочей директории.
agent added 1 commit 2026-08-27 05:26:31 +00:00
Author
Owner

Повторный review: первое finding устранено — полный набор ranks обязателен, неполный набор отклоняется. Но остаётся один blocking finding: algorithm_version заполняется API_VERSION (v1), то есть версией HTTP-контракта, а не версией ранжирования. Совместимое изменение весов/analyzer обычно не меняет API v1, поэтому записи всё ещё нельзя надёжно сравнить до/после настройки. Нужна отдельная явно изменяемая константа/параметр версии алгоритма, сохранённая в snapshot и SQLite; добавьте проверку её значения в тест. Также полезно покрыть дубль rank отдельным тестом.

Повторный review: первое finding устранено — полный набор ranks обязателен, неполный набор отклоняется. Но остаётся один blocking finding: `algorithm_version` заполняется `API_VERSION` (`v1`), то есть версией HTTP-контракта, а не версией ранжирования. Совместимое изменение весов/analyzer обычно не меняет API v1, поэтому записи всё ещё нельзя надёжно сравнить до/после настройки. Нужна отдельная явно изменяемая константа/параметр версии алгоритма, сохранённая в snapshot и SQLite; добавьте проверку её значения в тест. Также полезно покрыть дубль rank отдельным тестом.
agent added 1 commit 2026-08-27 05:27:29 +00:00
Author
Owner

Финальный повторный независимый review полного PR после cccae44 завершён: blocking findings нет. Отдельный SEARCH_ALGORITHM_VERSION = search-1 теперь подписывается и сохраняется в snapshot/SQLite вместо API version; прежняя проверка полного покрытия ranks и фиксация physical index сохраняются. Новых регрессий, проблем доступности или избыточной сложности не найдено. Полный unittest здесь не запускался из-за несвязанных изменений рабочей директории.

Финальный повторный независимый review полного PR после cccae44 завершён: blocking findings нет. Отдельный `SEARCH_ALGORITHM_VERSION = search-1` теперь подписывается и сохраняется в snapshot/SQLite вместо API version; прежняя проверка полного покрытия ranks и фиксация physical index сохраняются. Новых регрессий, проблем доступности или избыточной сложности не найдено. Полный unittest здесь не запускался из-за несвязанных изменений рабочей директории.
agent added 1 commit 2026-08-27 05:28:13 +00:00
Author
Owner

Финальный независимый review полного PR после 73eb938 завершён: blocking findings нет. CHANGELOG точно описывает внутреннюю лабораторию, оценки, комментарии и SQLite-экспорт подписанных снимков. Ранее проверенные защита snapshot, полное покрытие ranks, версии индекса/алгоритма и доступные элементы интерфейса сохранены; changelog-коммит регрессий не внёс. Указанные автором 22 unittest прошли повторно.

Финальный независимый review полного PR после 73eb938 завершён: blocking findings нет. CHANGELOG точно описывает внутреннюю лабораторию, оценки, комментарии и SQLite-экспорт подписанных снимков. Ранее проверенные защита snapshot, полное покрытие ranks, версии индекса/алгоритма и доступные элементы интерфейса сохранены; changelog-коммит регрессий не внёс. Указанные автором 22 unittest прошли повторно.
admin merged commit 808ac6c792 into main 2026-08-28 04:22:47 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: agent/akyldash#26