docs: состояние фазы 5 после CI, health-page и офлайн-кэша на всех экранах

This commit is contained in:
Dmitry
2026-09-19 14:01:10 +03:00
parent 53da374c5a
commit 52d07e1503
+20 -4
View File
@@ -545,10 +545,26 @@ backup/restore, страница здоровья (`/sync/status`, счётчи
`pkg-config` для линуксовой сборки уже добавлены в `flake.nix`.
- `docs/ai/ops.md` поправлен: убрана ссылка на «появится в фазе 2» у `metrics refresh`.
Не начато: CI-джоба для Flutter (`just app-check` в CI, сборка Linux/Windows), консолидация
страницы здоровья (сейчас статусы синка на `/sync`, data quality — блоком на дашборде),
Android release-подпись (нужен keystore от пользователя), off-site бэкап (см. открытый
вопрос §7.9 — решения ещё нет).
Сделано дополнительно, параллельно в отдельных worktree:
- **CI для Flutter** — джоба `app` (`flutter analyze && flutter test`) и отдельные
`app-build-linux`/`app-build-windows` в `.github/workflows/ci.yml`. По пути найден и
починен пре-существующий баг: `flutter build linux` не собирался вовсе — не хватало
`libsecret-1-dev`/`pkg-config`, а после этого `flutter_secure_storage_linux` падал на
`-Werror=deprecated-literal-operator` в своём вендоренном `nlohmann/json.hpp`
(подавлено через `add_compile_options` в `app/linux/CMakeLists.txt`). Windows-джоба
добавлена по аналогии, но не проверена — нет Windows-машины.
- **Страница здоровья** — `/sync` и блок data quality с дашборда сведены в один `/health`
(вкладки «Источники» / «Качество данных»); список находок вынесен в общий
`DataQualityList`, дашборд ссылается на `/health?tab=quality` вместо своего bottom sheet.
- **Offline-кэш на остальных экранах** — accounts, cashflow, categories, goals, income,
portfolio (+ карточка инструмента), rebalance, tax, rules переведены на `Cached<T>` по
контракту `offline-cache.md`. Второстепенные cross-screen селекторы (`scopesProvider`,
`categoriesListProvider` и т.п.) оставлены без баннера — их GET всё равно кэшируется
интерцептором прозрачно, баннер просто не нужен для не-основного контента экрана.
Не начато: Android release-подпись (нужен keystore от пользователя), off-site бэкап (см.
открытый вопрос §7.9 — решения ещё нет).
## 7. Открытые вопросы (дефолт в скобках, можно менять по ходу)