feat: group all-account rows by instrument and day (WealthLedger/main#47) #126

Merged
codex-bot merged 1 commits from feature/47-group-rows-by-instrument into develop 2026-10-30 07:28:19 +03:00
Owner

Summary

В режиме «Все счета» записи с одинаковым экранным днём, Instrument и точным типом объединяются в одну визуальную группу:

  • в заголовке группы — дата, инструмент, тип и точный итог по каждой валюте;
  • под заголовком всегда видна отдельная строка каждой записи: счёт и сумма.

Изменение работает на страницах операций и будущих событий, в превью обзора и в «Выплатах». Режим одного счёта не меняется.

Linked Issue

Refs WealthLedger/main#47

Changes

  • shared/lib:
    • groupItems: группа встаёт на место своей первой записи и образуется только из двух и более записей;
    • sumMoney: точное сложение через BigInt. Код сложения вынесен из pages/account/model/positions.ts.
  • Ключи группы:
    • brokerageOperationGroupKey: день на экране, затем instrumentUid/figi, затем type;
    • brokerageEventGroupKey: ещё isin и dateKind.
  • UI:
    • EntryGroup, OperationGroup, BrokerageEventGroup;
    • выплаты внутри группы остаются карточками;
    • доступное имя группы на вложенном списке.
  • Итог группы скрыт, если:
    • у записи нет суммы;
    • сумма нулевая (журнал и выплаты);
    • сумма прогноза неизвестна;
    • meta.completeness не равен complete.
  • Лимит 5 в превью применяется до группировки. Журнал группирует только текущую страницу.
  • EntryCard рендерит div только для нестроковых value.

Планирование и решения: WealthLedger/specs PR spec: plan grouping of all-account rows by instrument (change group-account-rows-by-instrument).

Verification

  • npm run verify: exit 0, 73/73 test files, 530 tests, coverage 92.35% statements.
  • Independent review: все findings закрыты.
  • QA в браузере на stubbed API: 18 test-cases и сценариев pass, ширина 320 px без горизонтального скролла.
  • Ограничение: src/features/tbank-connection/model/screen-sync.test.tsx однажды упал при полном прогоне. Файл не менялся, на baseline тест проходит 3/3 — flaky и до этого change.

Breaking Changes (если есть)

Нет.

## Summary В режиме «Все счета» записи с одинаковым экранным днём, Instrument и точным типом объединяются в одну визуальную группу: - в заголовке группы — дата, инструмент, тип и точный итог по каждой валюте; - под заголовком всегда видна отдельная строка каждой записи: счёт и сумма. Изменение работает на страницах операций и будущих событий, в превью обзора и в «Выплатах». Режим одного счёта не меняется. ## Linked Issue Refs WealthLedger/main#47 ## Changes - `shared/lib`: - `groupItems`: группа встаёт на место своей первой записи и образуется только из двух и более записей; - `sumMoney`: точное сложение через BigInt. Код сложения вынесен из `pages/account/model/positions.ts`. - Ключи группы: - `brokerageOperationGroupKey`: день на экране, затем `instrumentUid`/`figi`, затем `type`; - `brokerageEventGroupKey`: ещё `isin` и `dateKind`. - UI: - `EntryGroup`, `OperationGroup`, `BrokerageEventGroup`; - выплаты внутри группы остаются карточками; - доступное имя группы на вложенном списке. - Итог группы скрыт, если: - у записи нет суммы; - сумма нулевая (журнал и выплаты); - сумма прогноза неизвестна; - `meta.completeness` не равен `complete`. - Лимит 5 в превью применяется до группировки. Журнал группирует только текущую страницу. - `EntryCard` рендерит `div` только для нестроковых `value`. Планирование и решения: WealthLedger/specs PR `spec: plan grouping of all-account rows by instrument` (change `group-account-rows-by-instrument`). ## Verification - `npm run verify`: exit 0, 73/73 test files, 530 tests, coverage 92.35% statements. - Independent review: все findings закрыты. - QA в браузере на stubbed API: 18 test-cases и сценариев pass, ширина 320 px без горизонтального скролла. - Ограничение: `src/features/tbank-connection/model/screen-sync.test.tsx` однажды упал при полном прогоне. Файл не менялся, на baseline тест проходит 3/3 — flaky и до этого change. ## Breaking Changes (если есть) Нет.
codex-bot added 1 commit 2026-10-30 07:13:21 +03:00
feat: group all-account rows by instrument and day (WealthLedger/main#47)
Frontend verify / commits (pull_request) Successful in 30s
Frontend verify / security (pull_request) Successful in 9s
Frontend verify / verify (pull_request) Successful in 5m5s
e69f9aed19
codex-bot merged commit 71126c91f0 into develop 2026-10-30 07:28:19 +03:00
codex-bot deleted branch feature/47-group-rows-by-instrument 2026-10-30 07:28:19 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/frontend#126