добавлена переоценка открытых позиций по публичным котировкам MOEX ISS
сохранён fallback на последнюю стоимость отчёта
добавлены проверки и обновлены версии/CHANGELOG
- расширена классификация выводов брокерского счёта
- добавлена переоценка открытых позиций по публичным котировкам MOEX ISS
- сохранён fallback на последнюю стоимость отчёта
- добавлены проверки и обновлены версии/CHANGELOG
Ревью 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 блокирую.
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.
Ревью 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/205hasValueприсваиваетсяposition.valuation !== null, что может сбросить ранее найденную рыночную стоимость при последующей позиции без котировки; использовать накопительноеhasValue ||= .... До исправления PR блокирую.Финальное независимое ревью PR #50 после коммита
62ac3c3завершено. Проверены текущий diff, MOEX ISS lookup (включая HTTP-ошибку → поиск по ISIN → board quote), fallback/смешанная агрегация, классификация выводов, таймаут 5 секунд, версии, CHANGELOG и добавленные тесты. Предыдущие замечания исправлены; блокирующих находок нет. Тестовый сценарий 404 → ISIN search → quote добавлен.