Specs frontend-user-feedback, frontend-data-resilience и frontend-ui-resilience запрещают на экранах чтения любые предупреждения о неудачном чтении и любые действия повтора. Это блокирует AC 2, 3 и 5 в WealthLedger/frontend#55: сохранённые суммы остаются, но пользователь не отличает неудачное перечитывание клиента от штатного snapshot и не может восстановить затронутый запрос.
Решение владельца: тихое поведение остаётся по умолчанию. Предупреждение и действие «Повторить» появляются только после исчерпания конечной серии автоматических повторов (сценарий «Повторы исчерпаны»), на экранах: Account, Accounts, Income, Operations, Events, секции деталей инструмента (stock/bond). Поиск, диапазон графика, карты и настройки подключения остаются тихими.
Вне scope: код frontend, поиск, график, карты, ручной T-Bank import, глобальный error store, решение по фильтрам Events (frontend#63).
Acceptance Criteria
Исчерпание автоповторов при сохранённом результате: результат остаётся, показывается неблокирующее предупреждение о неудачном обновлении и действие «Повторить», выполняющее тот же GET (не sync-команду); успех снимает предупреждение. Определено для перечисленных экранов.
Исчерпание автоповторов без результата: локальная недоступность содержит то же действие «Повторить».
Тихое поведение сохранено: пока идут автоповторы, до исчерпания предела, на поиске, графике, картах и настройках подключения; подтверждённая потеря доступа или входа сохраняет прежние действия и скрывает личные данные; Portfolio.isStale не меняется.
Противоречащие формулировки в трёх specs согласованы; npm run validate и git diff --check проходят.
## Контекст и результат
Specs `frontend-user-feedback`, `frontend-data-resilience` и `frontend-ui-resilience` запрещают на экранах чтения любые предупреждения о неудачном чтении и любые действия повтора. Это блокирует AC 2, 3 и 5 в WealthLedger/frontend#55: сохранённые суммы остаются, но пользователь не отличает неудачное перечитывание клиента от штатного snapshot и не может восстановить затронутый запрос.
Решение владельца: тихое поведение остаётся по умолчанию. Предупреждение и действие «Повторить» появляются только после исчерпания конечной серии автоматических повторов (сценарий «Повторы исчерпаны»), на экранах: Account, Accounts, Income, Operations, Events, секции деталей инструмента (stock/bond). Поиск, диапазон графика, карты и настройки подключения остаются тихими.
## Scope / связанные Issues
- WealthLedger/frontend#55 (AC 2, 3, 5), audit 2026-10-11: FE-001, FE-002.
- Targets: `openspec/specs/frontend-platform/frontend-user-feedback`, `frontend-data-resilience`, `frontend-ui-resilience`.
- Вне scope: код frontend, поиск, график, карты, ручной T-Bank import, глобальный error store, решение по фильтрам Events (frontend#63).
## Acceptance Criteria
- [x] Исчерпание автоповторов при сохранённом результате: результат остаётся, показывается неблокирующее предупреждение о неудачном обновлении и действие «Повторить», выполняющее тот же GET (не sync-команду); успех снимает предупреждение. Определено для перечисленных экранов.
- [x] Исчерпание автоповторов без результата: локальная недоступность содержит то же действие «Повторить».
- [x] Тихое поведение сохранено: пока идут автоповторы, до исчерпания предела, на поиске, графике, картах и настройках подключения; подтверждённая потеря доступа или входа сохраняет прежние действия и скрывает личные данные; `Portfolio.isStale` не меняется.
- [x] Противоречащие формулировки в трёх specs согласованы; `npm run validate` и `git diff --check` проходят.
Done in PR #80 (squash, develop 0469756). CI green before merge. 9 files, +61/−21.
frontend-data-resilience, frontend-user-feedback, frontend-ui-resilience: narrow exception to the ban — warning + "Повторить" (same GET, no sync command) only after the finite automatic retry series is exhausted, on Account, Accounts, Income, Operations, Events and instrument detail sections; scenarios added ("Повторы исчерпаны при сохранённом результате", "…без результата", "Поиск, график и карты остаются тихими", "Автоматические повторы исчерпаны на экране инвестиций").
Unchanged: failed hourly attempt scenario (no retry of source fetching), Portfolio.isStale, confirmed access loss, search/chart/cards/connection settings.
Verification: npm run validate 28 passed / 0 failed, lychee 0 errors, git diff --check OK.
Limit: the ручн*/повтор* sweep was regex-based; other scenarios may need owner review.
Done in PR #80 (squash, develop `0469756`). CI green before merge. 9 files, +61/−21.
- `frontend-data-resilience`, `frontend-user-feedback`, `frontend-ui-resilience`: narrow exception to the ban — warning + "Повторить" (same GET, no sync command) only after the finite automatic retry series is exhausted, on Account, Accounts, Income, Operations, Events and instrument detail sections; scenarios added ("Повторы исчерпаны при сохранённом результате", "…без результата", "Поиск, график и карты остаются тихими", "Автоматические повторы исчерпаны на экране инвестиций").
- Aligned "без ручного повтора" in `brokerage-accounts`, `brokerage-account-ledger`, `brokerage-account-income-analytics`, `brokerage-account-upcoming-events`, `frontend-loading-presentation`, `portfolio-view` ("до исчерпания автоматических повторов").
- Unchanged: failed hourly attempt scenario (no retry of source fetching), `Portfolio.isStale`, confirmed access loss, search/chart/cards/connection settings.
Verification: `npm run validate` 28 passed / 0 failed, lychee 0 errors, `git diff --check` OK.
Limit: the `ручн*/повтор*` sweep was regex-based; other scenarios may need owner review.
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.
Контекст и результат
Specs
frontend-user-feedback,frontend-data-resilienceиfrontend-ui-resilienceзапрещают на экранах чтения любые предупреждения о неудачном чтении и любые действия повтора. Это блокирует AC 2, 3 и 5 в WealthLedger/frontend#55: сохранённые суммы остаются, но пользователь не отличает неудачное перечитывание клиента от штатного snapshot и не может восстановить затронутый запрос.Решение владельца: тихое поведение остаётся по умолчанию. Предупреждение и действие «Повторить» появляются только после исчерпания конечной серии автоматических повторов (сценарий «Повторы исчерпаны»), на экранах: Account, Accounts, Income, Operations, Events, секции деталей инструмента (stock/bond). Поиск, диапазон графика, карты и настройки подключения остаются тихими.
Scope / связанные Issues
openspec/specs/frontend-platform/frontend-user-feedback,frontend-data-resilience,frontend-ui-resilience.Acceptance Criteria
Portfolio.isStaleне меняется.npm run validateиgit diff --checkпроходят.Done in PR #80 (squash, develop
0469756). CI green before merge. 9 files, +61/−21.frontend-data-resilience,frontend-user-feedback,frontend-ui-resilience: narrow exception to the ban — warning + "Повторить" (same GET, no sync command) only after the finite automatic retry series is exhausted, on Account, Accounts, Income, Operations, Events and instrument detail sections; scenarios added ("Повторы исчерпаны при сохранённом результате", "…без результата", "Поиск, график и карты остаются тихими", "Автоматические повторы исчерпаны на экране инвестиций").brokerage-accounts,brokerage-account-ledger,brokerage-account-income-analytics,brokerage-account-upcoming-events,frontend-loading-presentation,portfolio-view("до исчерпания автоматических повторов").Portfolio.isStale, confirmed access loss, search/chart/cards/connection settings.Verification:
npm run validate28 passed / 0 failed, lychee 0 errors,git diff --checkOK.Limit: the
ручн*/повтор*sweep was regex-based; other scenarios may need owner review.