randomayzer/agents/antigravity/inbox/TASK-2026-08-21-14-low-followups.md

24 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Task 14: Два LOW-хвоста из ревью 9061488
**Assigned to:** Antigravity (Implementation Orchestrator)
**Priority:** LOW
**Date:** 2026-08-21
**Base SHA:** `6510ea2a048aa9bbeec5af8d80e61a420f32c471`
## Проблемы
1. **`excludeDuplicateComments` на входе API (`filterRulesSchema`)**:
- `src/core/validation/giveaway-schemas.ts` по-прежнему объявляет `excludeDuplicateComments: z.boolean().optional()`.
- Если внешний API-клиент передаст этот флаг, он попадет в `filterRulesSnapshot` и в `computeConditionsHash`, изменив хеш условий для нового розыгрыша, хотя фактически на фильтрацию не влияет.
- Необходимо удалить поле из `filterRulesSchema` (или отбрасывать/валидировать), сохранив чтение legacy-снапшотов в `computeConditionsHash` и `verifyDrawResult`.
2. **`node-version: 20` в `.github/workflows/ci.yml`**:
- Обновить версию Node.js в CI до актуальной активной LTS (Node 22 / 24) с сохранением поддержки `engines.node >= 20.9.0`.
## Scope
1. Схема `filterRulesSchema`:
- Удалить `excludeDuplicateComments` из `filterRulesSchema` (так как схемы используют `.strict()`, передача этого поля будет отвергаться с 400 ValidationError, либо при strip отбрасываться без записи в БД).
- Сохранить в `FilterRules` тип `excludeDuplicateComments?: boolean` (deprecated) для совместимости со старыми записями в БД.
- Проверить, что `computeConditionsHash` по-прежнему поддерживает legacy-снапшоты с этим полем.
2. CI Workflow `.github/workflows/ci.yml`:
- Обновить `node-version: 22` (текущая Active LTS).
3. Дополнить `tests/duplicate-comments-rule.test.ts`.
4. Verification gate & Report.