Возвраты в расходной категории уменьшают её расходы
Переводы исключены из P&L и показаны в движении ДС
Обновлены контракты, документация и версии
Проверки
npm run build --workspace=@family-budget/shared
npm run build --workspace=@family-budget/backend
npm run build --workspace=@family-budget/frontend
## Что изменено
- Нетто-расчёт доходов и расходов по типу категории
- Возвраты в расходной категории уменьшают её расходы
- Переводы исключены из P&L и показаны в движении ДС
- Обновлены контракты, документация и версии
## Проверки
- npm run build --workspace=@family-budget/shared
- npm run build --workspace=@family-budget/backend
- npm run build --workspace=@family-budget/frontend
Blocking: в PR нет ни одной исполнимой проверки нетто-правил, хотя backend/src/services/analytics.ts меняет агрегирование summary/by-category/timeseries. Нужен минимальный тест/самопроверка, покрывающий как минимум расход + возврат в одной expense-категории, income-корректировку и transfer, включая фильтр периода/счёта. Без него регрессия в SQL останется незамеченной.
Blocking: в PR нет ни одной исполнимой проверки нетто-правил, хотя `backend/src/services/analytics.ts` меняет агрегирование summary/by-category/timeseries. Нужен минимальный тест/самопроверка, покрывающий как минимум расход + возврат в одной expense-категории, income-корректировку и transfer, включая фильтр периода/счёта. Без него регрессия в SQL останется незамеченной.
Повторный review commit 019714a: npm run test:analytics --workspace=@family-budget/backend запускается и проходит; все три build также проходят. Blocking всё ещё остаётся: тест покрывает чистый helper, но не изменённые SQL-запросы getSummary/getByCategory/getTimeseries и не проверяет обязательные фильтры периода и счёта. Поэтому прежнее замечание закрыто лишь частично; нужен минимальный интеграционный/SQL-level check этих сценариев. Новых блокеров в полном diff не найдено.
Повторный review commit 019714a: `npm run test:analytics --workspace=@family-budget/backend` запускается и проходит; все три build также проходят. Blocking всё ещё остаётся: тест покрывает чистый helper, но не изменённые SQL-запросы `getSummary`/`getByCategory`/`getTimeseries` и не проверяет обязательные фильтры периода и счёта. Поэтому прежнее замечание закрыто лишь частично; нужен минимальный интеграционный/SQL-level check этих сценариев. Новых блокеров в полном diff не найдено.
Финальный повторный review commit 1cbef45: прежнее замечание исправлено. analytics.integration.test.ts вызывает getSummary/getByCategory/getTimeseries с одним DB-клиентом в BEGIN, покрывает возврат, корректировку дохода, transfer, фильтры accountId и периода, а в finally выполняет ROLLBACK и release. Optional Queryable ограничен инъекцией DB-клиента для теста; штатные вызовы не изменены. npm run test:analytics --workspace=@family-budget/backend и backend build проходят. DB-test не запускал: доступ к тестовой БД отсутствует из-за запрещённого SSH port forwarding, что подтверждено в PR-контексте. Blocking findings не найдено.
Финальный повторный review commit 1cbef45: прежнее замечание исправлено. `analytics.integration.test.ts` вызывает getSummary/getByCategory/getTimeseries с одним DB-клиентом в BEGIN, покрывает возврат, корректировку дохода, transfer, фильтры accountId и периода, а в finally выполняет ROLLBACK и release. Optional `Queryable` ограничен инъекцией DB-клиента для теста; штатные вызовы не изменены. `npm run test:analytics --workspace=@family-budget/backend` и backend build проходят. DB-test не запускал: доступ к тестовой БД отсутствует из-за запрещённого SSH port forwarding, что подтверждено в PR-контексте. Blocking findings не найдено.
Финальный review после 36562f8 завершён без blocking findings. CHANGELOG.md добавляет только значимые изменения PR и согласован с версиями Frontend 0.9.0 / Backend 0.6.2. Предыдущие замечания закрыты: есть unit-проверка и transactional SQL-check с ROLLBACK. Повторно прошли npm run test:analytics --workspace=@family-budget/backend, сборки shared/backend/frontend и git diff --check. DB-интеграционный запуск по-прежнему недоступен из-за запрещённого SSH port forwarding; тест проверен статически в предыдущем review.
Финальный review после 36562f8 завершён без blocking findings. CHANGELOG.md добавляет только значимые изменения PR и согласован с версиями Frontend 0.9.0 / Backend 0.6.2. Предыдущие замечания закрыты: есть unit-проверка и transactional SQL-check с ROLLBACK. Повторно прошли `npm run test:analytics --workspace=@family-budget/backend`, сборки shared/backend/frontend и `git diff --check`. DB-интеграционный запуск по-прежнему недоступен из-за запрещённого SSH port forwarding; тест проверен статически в предыдущем review.
admin
merged commit e78445888f into main2026-08-19 11:24:36 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что изменено
Проверки
Blocking: в PR нет ни одной исполнимой проверки нетто-правил, хотя
backend/src/services/analytics.tsменяет агрегирование summary/by-category/timeseries. Нужен минимальный тест/самопроверка, покрывающий как минимум расход + возврат в одной expense-категории, income-корректировку и transfer, включая фильтр периода/счёта. Без него регрессия в SQL останется незамеченной.Повторный review commit
019714a:npm run test:analytics --workspace=@family-budget/backendзапускается и проходит; все три build также проходят. Blocking всё ещё остаётся: тест покрывает чистый helper, но не изменённые SQL-запросыgetSummary/getByCategory/getTimeseriesи не проверяет обязательные фильтры периода и счёта. Поэтому прежнее замечание закрыто лишь частично; нужен минимальный интеграционный/SQL-level check этих сценариев. Новых блокеров в полном diff не найдено.Финальный повторный review commit
1cbef45: прежнее замечание исправлено.analytics.integration.test.tsвызывает getSummary/getByCategory/getTimeseries с одним DB-клиентом в BEGIN, покрывает возврат, корректировку дохода, transfer, фильтры accountId и периода, а в finally выполняет ROLLBACK и release. OptionalQueryableограничен инъекцией DB-клиента для теста; штатные вызовы не изменены.npm run test:analytics --workspace=@family-budget/backendи backend build проходят. DB-test не запускал: доступ к тестовой БД отсутствует из-за запрещённого SSH port forwarding, что подтверждено в PR-контексте. Blocking findings не найдено.Финальный review после
36562f8завершён без blocking findings. CHANGELOG.md добавляет только значимые изменения PR и согласован с версиями Frontend 0.9.0 / Backend 0.6.2. Предыдущие замечания закрыты: есть unit-проверка и transactional SQL-check с ROLLBACK. Повторно прошлиnpm run test:analytics --workspace=@family-budget/backend, сборки shared/backend/frontend иgit diff --check. DB-интеграционный запуск по-прежнему недоступен из-за запрещённого SSH port forwarding; тест проверен статически в предыдущем review.