Files

4.0 KiB
Raw Permalink Blame History

1. Backend: expose ISIN

  • 1.1 Расширить тип TbankInstrument полем isin?: string в tbank.client.ts
  • 1.2 Добавить nullable isin в PortfolioPositionDto в portfolio.dto.ts
  • 1.3 Возвращать isin: metadata?.isin?.trim() || null в position() в portfolio.service.ts
  • 1.4 Обновить portfolio.service.spec.ts: моки и ожидания isin, включая отсутствие ISIN
  • 1.5 Проверить backend: npm run lint, npm test, npm run build

2. Frontend: OpenAPI contract и display-helper

  • 2.1 Обновить snapshot и schema.d.ts: npm run openapi:sync (поле isin)
  • 2.2 Добавить helper formatShare(numerator, denominator) в display.ts (строка %, 1 знак, null при недоступности)
  • 2.3 Добавить unit-тесты formatShare в display.test.ts

3. Frontend: Position Card grid-плитки

  • 3.1 Заменить Card-строки в PositionSection на SimpleGrid cols={{ base: 1, sm: 2, md: 3 }} в AccountPage.view.tsx
  • 3.2 Вычислить во view сумму currentValue позиций по каждой валюте (без Cash Balance) и передать её плиткам
  • 3.3 Рендерить плитку: имя, isin (mono, dim), количество, currentValue, absoluteReturn (зелёный/красный), averagePurchasePrice, долю; скрывать null-метрики
  • 3.4 Добавить стили плитки в AccountPage.module.css
  • 3.5 Добавить i18n-ключи в ru.ts (средняя цена покупки, доля, ISIN)

4. Frontend: тесты

  • 4.1 Обновить AccountPage.test.tsx: заменить проверку «—» на скрытие null, добавить проверки плиток, isin, доли и сохранения upstream-порядка
  • 4.2 Проверить frontend: npm run verify

5. Документация

  • 5.1 Добавить термин Instrument в CONTEXT.md
  • 5.2 Обновить docs/features/portfolio-view.md: grid-плитки, метрики, isin, доля; API-секция про isin

6. Верификация и архив

  • 6.1 Прогнать opsx-verify по change
  • 6.2 Архив change через openspec archive и синхронизация delta в main spec
  • 6.3 Закоммитить по репозиториям: specs, docs, backend, frontend

Сверка evidence — 2026-08-23

Задачи 6.2–6.3 были незакрытыми administrative tasks после фактического archive. Их статус согласован по текущему read-only evidence; эта запись не меняет archive date, implementation files, delta specs или прошлые Git commits.

  • git -C specs show --stat --oneline --summary 6795ee6 — commit 6795ee6 от 2026-08-17 создаёт openspec/changes/archive/2026-08-17-redesign-position-cards/ и одновременно изменяет openspec/specs/portfolio-view/spec.md; это подтверждает archive и sync delta.
  • git -C docs show --stat --oneline --summary c628535 — commit c628535 от 2026-08-17 обновляет features/portfolio-view.md.
  • git -C backend show --stat --oneline --summary 5aa9bd3 — commit 5aa9bd3 от 2026-08-17 содержит ISIN DTO/service/client/spec changes.
  • git -C frontend show --stat --oneline --summary 5168870 — commit 5168870 от 2026-08-17 содержит Position Card, OpenAPI, i18n и tests changes.

В local history отсутствует отдельный terminal transcript вызова openspec archive; evidence выше подтверждает его наблюдаемый результат и связанные commits, не приписывая прошлому workflow незафиксированные команды.