[Investigation] Согласовать Events screen contract и заменить устаревшие oracles #63
Notifications
Due Date
No due date set.
Depends on
#55 [Bug] Публиковать новый полный forecast независимо от request window
WealthLedger/backend
Reference: WealthLedger/frontend#63
Reference in New Issue
Block a user
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. Revisionc8821200ce699dab1ce65360d1968d5877a2e78b; 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
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.
Решение владельца 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 validatespecs: 28/28 passed,npm run verifyfrontend: passed,git diff --check: passed. До закрытия нужны review/поставка и проверка специфичного all-account/empty кейса с оригинальным окном.Поставлено: 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 выполнены.