From 35c5302e78545170ded1f9aa9109e3faa0ebea2a Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 26 Aug 2026 15:04:50 +0300 Subject: [PATCH] docs: record improved ledger row evidence --- development/completion-evidence.md | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/development/completion-evidence.md b/development/completion-evidence.md index 71d85a8..3afe5a3 100644 --- a/development/completion-evidence.md +++ b/development/completion-evidence.md @@ -7,6 +7,61 @@ delivery commits, точные verification commands с наблюдёнными итог independent read-only review. Записи добавляются после archive и являются неизменяемой историей поставки. +## 2026-08-26-improve-ledger-event-rows + +**Change:** improve-ledger-event-rows (schema `wealth-ledger-sdd` v3) +**Archive path:** `specs/openspec/changes/archive/2026-08-26-improve-ledger-event-rows` +**Specs sync:** три изменения в `brokerage-account-ledger` слиты в main spec; +post-archive strict validation подтвердил `20 passed, 0 failed`, archived +changes `34 passed, 0 failed`. + +### Delivery Map + +| Area | Status | Outcome | +| --- | --- | --- | +| frontend | affected | `Последние события` и `Журнал операций` используют общий compact row с логотипом или буквенным fallback, русскими подписями `Поступление` / `Списание` / `Без движения денег`, знаком суммы и семантическими тонами; полный журнал переведён на `container -> ViewModel -> view` без потери фильтров, cursor-пагинации и состояний | +| backend | affected | Ledger entry DTO получил additive nullable `logoName`; общий resolver metadata переиспользуется между portfolio и ledger, сохраняет UID-first/FIGI-fallback и кэширует как найденные, так и отрицательные lookup results без скрытия операций при ошибках enrichment | +| specs | affected | Approved Proposal, Design, Tasks и Delta Spec заархивированы; изменения синхронизированы в `brokerage-account-ledger` | +| docs | affected | As-built documentation закрепляет nullable visual metadata и русскую семантику поступления, списания и отсутствия движения денег | + +### Delivery commits + +| Repo | Commit | Subject | +| --- | --- | --- | +| frontend | `488ccad540c771e862fb795edf2df6c6cea315af` | feat: improve ledger event rows | +| backend | `84fabd264fa539dfefb1172e27a038870a30d845` | feat: enrich ledger events with logo metadata | +| specs (archive) | `9a8687feda24edcc6ee6412313a844afce50f5eb` | docs(specs): archive improved ledger event rows | +| docs (as-built) | `d39a9d3df08d068b0c5fba97cfb7bb0d5755f329` | docs: describe improved ledger event rows | +| docs (evidence) | current evidence commit | docs: record improved ledger row evidence | + +### Verification + +| Command (repo) | Наблюдённый результат | +| --- | --- | +| `PATH=/Users/ksv741/.nvm/versions/node/v22.21.0/bin:$PATH npm run verify` (backend) | pass; runtime/hygiene/lint/typecheck/Jest/build зелёные, `23` suites / `78` tests после регрессионных фиксов по metadata fallback и negative cache | +| `PATH=/Users/ksv741/.nvm/versions/node/v22.21.0/bin:$PATH bash specs/scripts/verify-workspace-change.sh improve-ledger-event-rows` (workspace, pre-archive final) | pass; Delivery Map verified frontend/backend/specs/docs=affected, runtime-openapi=required; frontend `21` files / `73` tests, backend `23` suites / `78` tests, docs lint clean, runtime OpenAPI SHA совпадает со snapshot | +| `openspec archive improve-ledger-event-rows --yes --store wealth-ledger-specs` (specs) | pass; archived as `2026-08-26-improve-ledger-event-rows`, `brokerage-account-ledger` updated with `3 modified` requirements | +| `openspec validate --specs --strict --store wealth-ledger-specs` (specs, post-archive) | pass; `20 passed, 0 failed` | +| `openspec validate --archived --strict --store wealth-ledger-specs` (specs, post-archive) | pass; `34 passed, 0 failed` | +| `openspec schema validate wealth-ledger-sdd --verbose` (specs, post-archive) | pass; schema and dependency graph valid | +| `bash scripts/verify-openspec-authority.sh` (specs, post-archive) | pass; OpenSpec CLI `1.10.0`, authority `wealth-ledger-specs` | + +Все Tasks были завершены до archive. Semantic verification подтвердила, что +оба пользовательских surface (`Последние события` и `Журнал операций`) получили +одинаковую компактную композицию, денежное направление выражается не только +цветом, backend enrichment остаётся additive и nullable, а существующие суммы, +категории, курсоры, loading/error/empty states и runtime OpenAPI contract не +сломаны. + +### Independent read-only review + +Verdict: **PASS**. Первый review обнаружил два Important findings: +page-local dedupe в журнале мог подавлять FIGI fallback после UID-only miss, а +negative metadata lookups не кэшировались и повторно били в upstream. Оба +finding устранены: ключ дедупликации учитывает `uid + figi`, `null`-results +кэшируются через sentinel, добавлены прямые regression tests. Повторный +read-only review подтвердил итог: Critical `0`, Important `0`, Minor `0`. + ## 2026-08-26-polish-stock-position-cards **Change:** polish-stock-position-cards (schema `wealth-ledger-sdd` v3)