Актуальная оценка брокерского портфеля #50

Merged
admin merged 3 commits from fix/portfolio-market-valuation into main 2026-08-28 05:49:20 +00:00
Collaborator
  • расширена классификация выводов брокерского счёта
  • добавлена переоценка открытых позиций по публичным котировкам MOEX ISS
  • сохранён fallback на последнюю стоимость отчёта
  • добавлены проверки и обновлены версии/CHANGELOG
- расширена классификация выводов брокерского счёта - добавлена переоценка открытых позиций по публичным котировкам MOEX ISS - сохранён fallback на последнюю стоимость отчёта - добавлены проверки и обновлены версии/CHANGELOG
agent added 1 commit 2026-08-28 05:24:07 +00:00
agent added 1 commit 2026-08-28 05:25:13 +00:00
Author
Collaborator

Ревью PR #50 (повторно после 58a4663): есть блокирующая ошибка в fallback поиска по ISIN. getMoexQuote() вызывает /securities/{ISIN}.json внутри общего try; если ISS отвечает HTTP 404 (этот path документирован для SECID, а поиск по ISIN выполняется через /securities.json?q=...), getJson() бросает и внешний catch сразу возвращает null. До строк 30–35 с поиском fallback управление не доходит, поэтому актуальная оценка для обычных ISIN снова будет fallback на отчёт. Нужно отдельно обработать ошибку первого запроса (или сразу использовать search endpoint), добавить тест сценария 404 → search → quote. Также тест portfolioOverview.test.ts не покрывает регрессию смешанного market/fallback: в строках 202/205 hasValue присваивается position.valuation !== null, что может сбросить ранее найденную рыночную стоимость при последующей позиции без котировки; использовать накопительное hasValue ||= .... До исправления PR блокирую.

Ревью PR #50 (повторно после 58a4663): есть блокирующая ошибка в fallback поиска по ISIN. `getMoexQuote()` вызывает `/securities/{ISIN}.json` внутри общего `try`; если ISS отвечает HTTP 404 (этот path документирован для SECID, а поиск по ISIN выполняется через `/securities.json?q=...`), `getJson()` бросает и внешний `catch` сразу возвращает `null`. До строк 30–35 с поиском fallback управление не доходит, поэтому актуальная оценка для обычных ISIN снова будет fallback на отчёт. Нужно отдельно обработать ошибку первого запроса (или сразу использовать search endpoint), добавить тест сценария 404 → search → quote. Также тест `portfolioOverview.test.ts` не покрывает регрессию смешанного market/fallback: в строках 202/205 `hasValue` присваивается `position.valuation !== null`, что может сбросить ранее найденную рыночную стоимость при последующей позиции без котировки; использовать накопительное `hasValue ||= ...`. До исправления PR блокирую.
agent added 1 commit 2026-08-28 05:27:42 +00:00
Author
Collaborator

Финальное независимое ревью PR #50 после коммита 62ac3c3 завершено. Проверены текущий diff, MOEX ISS lookup (включая HTTP-ошибку → поиск по ISIN → board quote), fallback/смешанная агрегация, классификация выводов, таймаут 5 секунд, версии, CHANGELOG и добавленные тесты. Предыдущие замечания исправлены; блокирующих находок нет. Тестовый сценарий 404 → ISIN search → quote добавлен.

Финальное независимое ревью PR #50 после коммита 62ac3c3 завершено. Проверены текущий diff, MOEX ISS lookup (включая HTTP-ошибку → поиск по ISIN → board quote), fallback/смешанная агрегация, классификация выводов, таймаут 5 секунд, версии, CHANGELOG и добавленные тесты. Предыдущие замечания исправлены; блокирующих находок нет. Тестовый сценарий 404 → ISIN search → quote добавлен.
admin merged commit 7d2ccf9301 into main 2026-08-28 05:49:20 +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: admin/family_budget#50