В режиме /accounts/all события и операции идут плоским списком: каждая строка — отдельный счёт. Если одна бумага лежит на брокерском счёте и на ИИС, в один день по ней приходят несколько строк (например, два купона), и их трудно связать между собой.
Ожидаемое поведение
В режиме «все счета» строки с одинаковыми датой + ISIN + типом события или операции объединяются в одну визуальную группу. В заголовке группы — бумага, тип и итог. Под заголовком всегда раскрыта разбивка по счетам: например, «Брокерский — 200 ₽», «ИИС — 100 ₽».
Где применяется:
страница событий /accounts/all/events;
страница операций /accounts/all/operations;
превью «ближайшие события» и «последние операции» на /accounts/all;
список «Выплаты» на /accounts/all/income.
Правила:
в группировку попадают все категории операций, у которых есть ISIN: trade, income, tax, fee. Строки без ISIN остаются одиночными;
группа образуется из ≥2 строк с одинаковым ключом, в том числе если все строки с одного счёта (например, две покупки за день);
разные типы (купон и налог с купона) не смешиваются;
в режиме одного счёта поведение не меняется.
Acceptance Criteria
Купоны по одной облигации за один день на брокерском счёте (200 ₽) и на ИИС (100 ₽) в /accounts/all/events и /accounts/all/operations показаны одной группой. Внутри видна сумма по каждому счёту.
Группировка работает во всех четырёх перечисленных местах.
Строки разных типов или с разными датами по одной бумаге не объединяются.
Строки без ISIN и одиночные строки выглядят так же, как сейчас.
В режиме одного счёта списки не изменились.
Суммы показываются точно, валюты не смешиваются.
Delivery
SDD по схеме wealth-ledger-sdd-v2, store wealth-ledger-specs. Затронутые repos (уточнит Design): specs, frontend, docs.
## Контекст
В режиме `/accounts/all` события и операции идут плоским списком: каждая строка — отдельный счёт. Если одна бумага лежит на брокерском счёте и на ИИС, в один день по ней приходят несколько строк (например, два купона), и их трудно связать между собой.
## Ожидаемое поведение
В режиме «все счета» строки с одинаковыми **датой + ISIN + типом** события или операции объединяются в одну визуальную группу. В заголовке группы — бумага, тип и итог. Под заголовком **всегда раскрыта** разбивка по счетам: например, «Брокерский — 200 ₽», «ИИС — 100 ₽».
Где применяется:
- страница событий `/accounts/all/events`;
- страница операций `/accounts/all/operations`;
- превью «ближайшие события» и «последние операции» на `/accounts/all`;
- список «Выплаты» на `/accounts/all/income`.
Правила:
- в группировку попадают все категории операций, у которых есть ISIN: trade, income, tax, fee. Строки без ISIN остаются одиночными;
- группа образуется из ≥2 строк с одинаковым ключом, в том числе если все строки с одного счёта (например, две покупки за день);
- разные типы (купон и налог с купона) не смешиваются;
- в режиме одного счёта поведение не меняется.
## Acceptance Criteria
- [ ] Купоны по одной облигации за один день на брокерском счёте (200 ₽) и на ИИС (100 ₽) в `/accounts/all/events` и `/accounts/all/operations` показаны одной группой. Внутри видна сумма по каждому счёту.
- [ ] Группировка работает во всех четырёх перечисленных местах.
- [ ] Строки разных типов или с разными датами по одной бумаге не объединяются.
- [ ] Строки без ISIN и одиночные строки выглядят так же, как сейчас.
- [ ] В режиме одного счёта списки не изменились.
- [ ] Суммы показываются точно, валюты не смешиваются.
## Delivery
SDD по схеме `wealth-ledger-sdd-v2`, store `wealth-ledger-specs`. Затронутые repos (уточнит Design): specs, frontend, docs.
specs#65 — archive 2026-10-30-group-account-rows-by-instrument и sync canonical specs.
Все AC закрыты, это подтверждают gates G1–G4 и verify. Вне scope остаётся WealthLedger/specs#63.
Готово, всё слито в `develop`:
- frontend#126 — реализация группировки;
- docs#59 — AS-IS документация;
- specs#64 — change `group-account-rows-by-instrument`;
- specs#65 — archive `2026-10-30-group-account-rows-by-instrument` и sync canonical specs.
Все AC закрыты, это подтверждают gates G1–G4 и verify. Вне scope остаётся WealthLedger/specs#63.
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.
Контекст
В режиме
/accounts/allсобытия и операции идут плоским списком: каждая строка — отдельный счёт. Если одна бумага лежит на брокерском счёте и на ИИС, в один день по ней приходят несколько строк (например, два купона), и их трудно связать между собой.Ожидаемое поведение
В режиме «все счета» строки с одинаковыми датой + ISIN + типом события или операции объединяются в одну визуальную группу. В заголовке группы — бумага, тип и итог. Под заголовком всегда раскрыта разбивка по счетам: например, «Брокерский — 200 ₽», «ИИС — 100 ₽».
Где применяется:
/accounts/all/events;/accounts/all/operations;/accounts/all;/accounts/all/income.Правила:
Acceptance Criteria
/accounts/all/eventsи/accounts/all/operationsпоказаны одной группой. Внутри видна сумма по каждому счёту.Delivery
SDD по схеме
wealth-ledger-sdd-v2, storewealth-ledger-specs. Затронутые repos (уточнит Design): specs, frontend, docs.Реализация готова, PR открыты:
group-account-rows-by-instrument, G1–G4 approved)Порядок merge: frontend → docs → specs. После этого archive change и sync canonical specs. Вне scope: WealthLedger/specs#63.
Готово, всё слито в
develop:group-account-rows-by-instrument;2026-10-30-group-account-rows-by-instrumentи sync canonical specs.Все AC закрыты, это подтверждают gates G1–G4 и verify. Вне scope остаётся WealthLedger/specs#63.