Files

26 lines
3.9 KiB
Markdown

# Tasks: add-instrument-logos
## 1. Backend — metadata и контракт
- [x] 1.1 Расширить результат instrument lookup полем `logoName` из бренда upstream и прокинуть его в существующий глобальный 24h кэш метаданных без изменения TTL и семантики кэширования; verification: обновлённые assertions в тестах клиента/сервиса покрывают проброс поля
- [x] 1.2 Дополнить Portfolio Position nullable `logoName` и обновить fixtures сервиса портфеля сценариями «бренд с именем файла логотипа» и «бренд отсутствует → null»; verification: jest-прогоны затронутых suite проходят
- [x] 1.3 Регенерировать OpenAPI артефакт backend с новым полем контракта; verification: canonical gate `npm ci && npm run verify` в backend проходит
## 2. Frontend — отображение секции акций
- [x] 2.1 Обновить snapshot и generated types из нового контракта (`npm run openapi:sync`); verification: typecheck видит `logoName` в типе позиции без ручных правок generated файлов
- [x] 2.2 Добавить хелпер сборки URL логотипа (базовый адрес брендового CDN, имя без расширения + суффикс размера x160) рядом с форматтерами портфеля; verification: unit-тест хелпера покрывает имя файла с расширением и пустое значение
- [x] 2.3 Секция STOCK: одноколоночная сетка при любой ширине, аватар с логотипом и фолбэком на первую букву displayName при отсутствии/ошибке загрузки, доходность со знаком `+`/`-` (ноль без знака) без подписи; вызовы секций BOND и OTHER не изменять; verification: реализация соответствует Delta Specs, ручная проверка страницы `/accounts/:accountId`
- [x] 2.4 Обновить тесты страницы портфеля: акции — фолбэк логотипа и доходность со знаком без подписи, облигации — регрессионное сохранение прежнего вида с текстовой подписью доходности; verification: jest-прогоны страницы проходят
- [x] 2.5 Прогнать canonical gate frontend; verification: `npm ci && npm run verify` проходит
## 3. Workspace — cross-area verification
- [x] 3.1 Contract Gate runtime-openapi между репозиториями; verification: `bash specs/scripts/verify-runtime-openapi.sh` из workspace проходит
- [x] 3.2 Semantic verification реализации против Proposal, Delta Specs, Design и Tasks плюс independent read-only review; verification: оформленные выводы проверки без Critical/Important findings
## 4. Docs и завершение change
- [x] 4.1 Добавить термин «Instrument Logo» в доменный глоссарий и отразить в as-built документации портфеля новое поле контракта и вид секции акций; verification: canonical gate `npm ci && npm run verify` в docs проходит
- [x] 4.2 Актуализировать чеклист по фактически выполненной работе и запустить canonical pre-archive gate; verification: `bash specs/scripts/verify-workspace-change.sh add-instrument-logos` проходит без unchecked tasks и блокирующих findings