[Investigation] Согласовать Events screen contract и заменить устаревшие oracles #63

Closed
opened 2026-10-11 21:50:28 +03:00 by codex-bot · 2 comments
Owner

Problem

Events tests/source защищают date filters/Apply/Reset и no Retry; current spec требует read-only saved forecast list, original time/window и HTTP recovery. Это подтверждённый conflict, но deliberate filter product decision не угадывается.

Expected Behavior

Screen owner явно выбирает current contract; tests защищают approved visible forecast, не устаревшую period state machine.

Evidence

Audit date 2026-10-11; 08. IDs TQ-010, CA-H16. Revision c8821200ce699dab1ce65360d1968d5877a2e78b; Confidence High conflict/Medium intended migration; Verification status static.
Affected: AccountEventsPage.filters.test.tsx:159–291; Events test:63–79,172–190; VM:19–123; Loaded view:59–98; specs brokerage-account-upcoming-events:86–107 at fcdc805f6c1b3be6a20a7e858e3e80cbd83a9121.

Scope

In scope

Approved filter/read-only decision, delivered window/time field, few existing RTL/MSW visible cases.

Out of scope

Удаление API from/to contract, manual broker sync, new browser runner, silent target changes.

Proposed Approach

Если read-only подтверждён — удалить screen-only filter state, preserve sorted events/source status и GET retry. Если filters deliberate — reapprove existing requirement. Network cases используют existing MSW, presentation-only existing view.

Acceptance Criteria

  • Screen filters/read-only решение явно утверждено и current spec/source/tests согласованы.
  • Visible saved calculatedAt/original window, sorted/empty/missing/full fallback + failed attempt проверены real route.
  • Retry повторяет тот же GET, не import; event amounts/offer/identity/account deep link и API UTC filtering guarantees сохранены.
  • Old fake-query/filter assertions заменены содержательными outcomes, не simply удалены для green suite.

Verification

Existing Events route/MSW suites; frontend artifact/type check после backend window delivery; final gates соответствующего owner.

Dependencies

WealthLedger/backend#55 — producer publishes original forecast window/identity artifact для окончательного presentation proof. Product decision можно принять до завершения backend fix.

Traceability

Campaign WealthLedger/main#23 . Findings TQ-010, CA-H16. WealthLedger/frontend; T27.

<!-- wealthledger-audit:2026-10-11:events-screen-contract --> ## Problem Events tests/source защищают date filters/Apply/Reset и no Retry; current spec требует read-only saved forecast list, original time/window и HTTP recovery. Это подтверждённый conflict, но deliberate filter product decision не угадывается. ## Expected Behavior Screen owner явно выбирает current contract; tests защищают approved visible forecast, не устаревшую period state machine. ## Evidence Audit date `2026-10-11`; [08](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/reports/08-test-quality-and-effectiveness-report.md). IDs TQ-010, CA-H16. Revision `c8821200ce699dab1ce65360d1968d5877a2e78b`; Confidence High conflict/Medium intended migration; Verification status static. Affected: [AccountEventsPage.filters.test.tsx:159–291](https://git.personal.ksv741.ru/WealthLedger/frontend/src/commit/c8821200ce699dab1ce65360d1968d5877a2e78b/src/pages/account-events/ui/AccountEventsPage/AccountEventsPage.filters.test.tsx#L159-L291); Events test:63–79,172–190; VM:19–123; Loaded view:59–98; specs brokerage-account-upcoming-events:86–107 at `fcdc805f6c1b3be6a20a7e858e3e80cbd83a9121`. ## Scope ### In scope Approved filter/read-only decision, delivered window/time field, few existing RTL/MSW visible cases. ### Out of scope Удаление API from/to contract, manual broker sync, new browser runner, silent target changes. ## Proposed Approach Если read-only подтверждён — удалить screen-only filter state, preserve sorted events/source status и GET retry. Если filters deliberate — reapprove existing requirement. Network cases используют existing MSW, presentation-only existing view. ## Acceptance Criteria - [ ] Screen filters/read-only решение явно утверждено и current spec/source/tests согласованы. - [ ] Visible saved calculatedAt/original window, sorted/empty/missing/full fallback + failed attempt проверены real route. - [ ] Retry повторяет тот же GET, не import; event amounts/offer/identity/account deep link и API UTC filtering guarantees сохранены. - [ ] Old fake-query/filter assertions заменены содержательными outcomes, не simply удалены для green suite. ## Verification Existing Events route/MSW suites; frontend artifact/type check после backend window delivery; final gates соответствующего owner. ## Dependencies https://git.personal.ksv741.ru/WealthLedger/backend/issues/55 — producer publishes original forecast window/identity artifact для окончательного presentation proof. Product decision можно принять до завершения backend fix. ## Traceability Campaign https://git.personal.ksv741.ru/WealthLedger/main/issues/23 . Findings TQ-010, CA-H16. WealthLedger/frontend; T27.
codex-bot added this to the Technical Audit Remediation — 2026-10-11 milestone 2026-10-11 21:50:28 +03:00
codex-bot added the
Priority
Medium
3
audit/2026-10-11kind/investigation
labels 2026-10-11 21:50:28 +03:00
ksv741 was assigned by hermes-agent 2026-10-12 00:04:17 +03:00
hermes-agent added this to the WealthLedger — Delivery Board project 2026-10-12 00:04:17 +03:00
hermes-agent added Kind/Investigation and removed kind/investigation labels 2026-10-12 00:04:17 +03:00
Author
Owner

Решение владельца 2026-11-05: оставить URL-фильтр дат с Apply/Reset и текущий default period; read-only GET и Retry без ручного import. В specs ветке fix/63-events-screen-filter-spec устранено противоречие «без фильтров / 30 дней» vs поздний requirement фильтра; добавлено явное отображение исходных calculatedAt/window. В frontend ветке fix/155-auth-admission-and-events-contract VM/view показывают «Прогноз от ... на from–to», в том числе для сохранённого прогноза с failed attempt; в fixture добавлены API fields, route/MSW тест проверяет строку до/после failed GET и отсутствие POST import при Retry. Existing period/sorted/empty tests сохранены. npm run validate specs: 28/28 passed, npm run verify frontend: passed, git diff --check: passed. До закрытия нужны review/поставка и проверка специфичного all-account/empty кейса с оригинальным окном.

Решение владельца 2026-11-05: оставить URL-фильтр дат с Apply/Reset и текущий default period; read-only GET и Retry без ручного import. В specs ветке fix/63-events-screen-filter-spec устранено противоречие «без фильтров / 30 дней» vs поздний requirement фильтра; добавлено явное отображение исходных calculatedAt/window. В frontend ветке fix/155-auth-admission-and-events-contract VM/view показывают «Прогноз от ... на from–to», в том числе для сохранённого прогноза с failed attempt; в fixture добавлены API fields, route/MSW тест проверяет строку до/после failed GET и отсутствие POST import при Retry. Existing period/sorted/empty tests сохранены. `npm run validate` specs: 28/28 passed, `npm run verify` frontend: passed, `git diff --check`: passed. До закрытия нужны review/поставка и проверка специфичного all-account/empty кейса с оригинальным окном.
Author
Owner

Поставлено: specs PR WealthLedger/specs#82 (142f7aa) и frontend PR WealthLedger/frontend#156 (668f2ef) merged в develop. Владелец оставил URL-фильтр дат; показ исходных calculatedAt/window есть на loaded/empty и при failed update. Route/MSW tests проверяют оригинальное окно отдельно от выбранного периода, Retry выполняет GET без POST import. Full frontend CI commits/security/verify green (run 1956), локальный verify green. Acceptance выполнены.

Поставлено: specs PR WealthLedger/specs#82 (`142f7aa`) и frontend PR WealthLedger/frontend#156 (`668f2ef`) merged в `develop`. Владелец оставил URL-фильтр дат; показ исходных calculatedAt/window есть на loaded/empty и при failed update. Route/MSW tests проверяют оригинальное окно отдельно от выбранного периода, Retry выполняет GET без POST import. Full frontend CI commits/security/verify green (run 1956), локальный verify green. Acceptance выполнены.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: WealthLedger/frontend#63