From 52d07e1503029fb9adcc4ed5c28f0e9ec365df4c Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sat, 19 Sep 2026 14:01:10 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D1=81=D0=BE=D1=81=D1=82=D0=BE=D1=8F?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D0=B0=D0=B7=D1=8B=205=20=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BB=D0=B5=20CI,=20health-page=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D1=84=D0=BB=D0=B0=D0=B9=D0=BD-=D0=BA=D1=8D=D1=88=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D1=81=D0=B5=D1=85=20=D1=8D=D0=BA=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai/plan.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/docs/ai/plan.md b/docs/ai/plan.md index 980157a..df03502 100644 --- a/docs/ai/plan.md +++ b/docs/ai/plan.md @@ -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` по + контракту `offline-cache.md`. Второстепенные cross-screen селекторы (`scopesProvider`, + `categoriesListProvider` и т.п.) оставлены без баннера — их GET всё равно кэшируется + интерцептором прозрачно, баннер просто не нужен для не-основного контента экрана. + +Не начато: Android release-подпись (нужен keystore от пользователя), off-site бэкап (см. +открытый вопрос §7.9 — решения ещё нет). ## 7. Открытые вопросы (дефолт в скобках, можно менять по ходу)