Skip to content

Commit 89d4fc6

Browse files
cognition-teamSkords-01
authored andcommitted
docs(docs): record 0011 PR 2.8 (DataState adoption — digest)
Status header: додано PR 2.8 (#1726) і змінено сигнал з "2.8 HubChat/coach/digest залишається" на "2.9 ESLint rule і 2.1 ManualExpenseSheet залишаються" — consumer-adoption блок Phase 2 закрито. Phase 2 table row 2.8: ETA "+3 дні" → "Opened 2026-05-04 — #1726", файл `core/insights/WeeklyDigestCard.tsx` `DigestContent` 4-state ladder як єдиний Skeleton-based panel-loading site у HubChat / coach / digest зоні `core/**`. Footnote: додано пояснення per PR 2.8 чому інші HubChat / coach / digest "панелі" з пропозиції (`HubChatHistoryPanel`, `CoachInsightsPanel`, `DigestPanel`) не мали реальних DataState- targets — `AssistantAdviceCard` без skeleton imports і кешує last-good insight, `HubChatHistoryDrawer` local-first, `HubChat.tsx` / `HubChatBody` / `HubChatComposer` стрімлять без panel-skeleton-у. Refs initiative 0011 PR 2.8.
1 parent d4da06a commit 89d4fc6

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

docs/initiatives/0011-foundation-adoption-and-process-discipline.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 0011 — Foundation adoption + process discipline (post-launch sweep)
22

33
> **Last validated:** 2026-05-04 by @Skords-01. **Next review:** 2026-08-02.
4-
> **Status:** Phase 1 ~70% done (1.1/1.2/1.3 merged; 1.4 pending). Phase 2 in flight: 2.2 merged (#1696); 2.4 (#1703) + 2.5 (#1709) + 2.6 (#1713) + 2.7 (#1714) opened 2026-05-04 (DataState consumer adoption — finyk + fizruk + nutrition + routine; 2.8 HubChat/coach/digest залишається).
4+
> **Status:** Phase 1 ~70% done (1.1/1.2/1.3 merged; 1.4 pending). Phase 2 in flight: 2.2 merged (#1696); 2.4 (#1703) + 2.5 (#1709) + 2.6 (#1713) + 2.7 (#1714) + 2.8 (#1726) opened 2026-05-04 (DataState consumer adoption — finyk + fizruk + nutrition + routine + digest closes the consumer-adoption block; 2.9 ESLint rule і 2.1 ManualExpenseSheet залишаються).
55
> **Priority:** P1 (subordinate to 0010-revenue-first-launch scope-freeze)
66
> **Owner:** `@Skords-01`
77
> **ETA:** 7 тижнів (Phase 1 — паралельно з 0010 freeze; Phases 2–4 — після 0010 launch)
@@ -126,15 +126,15 @@
126126

127127
Цільові 15 файлів — top-of-funnel high-traffic екрани. Розбиваємо по доменах:
128128

129-
| PR | Назва | Файли (фактичні споживачі) | Status |
130-
| --- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
131-
| 2.4 | `refactor(web): adopt <DataState> in finyk Mono panels` | `Overview.tsx`, `budgets/Budgets.tsx`, `transactions/TransactionList.tsx` (+ `TransactionList.test.tsx`) | **Opened 2026-05-04 — [#1703](https://github.com/Skords-01/Sergeant/pull/1703)** |
132-
| 2.5 | `refactor(web): adopt <DataState> in fizruk Workouts journal` | `pages/Workouts.tsx` (єдина Skeleton-based loading site у fizruk модулі) | **Opened 2026-05-04 — [#1709](https://github.com/Skords-01/Sergeant/pull/1709)** |
133-
| 2.6 | `refactor(web): adopt <DataState> in nutrition panels` | `NutritionApp.tsx` Menu "plan" tab (єдиний Skeleton-based loading site у nutrition модулі) | **Opened 2026-05-04 — [#1713](https://github.com/Skords-01/Sergeant/pull/1713)** |
134-
| 2.7 | `refactor(web): adopt <DataState> in routine panels` | `RoutineTimeline.tsx` calendar branch (єдиний Skeleton-based loading site у routine модулі) | **Opened 2026-05-04 — [#1714](https://github.com/Skords-01/Sergeant/pull/1714)** |
135-
| 2.8 | `refactor(web): adopt <DataState> in HubChat / coach / digest` | HubChatHistoryPanel, CoachInsightsPanel, DigestPanel | +3 дні |
129+
| PR | Назва | Файли (фактичні споживачі) | Status |
130+
| --- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
131+
| 2.4 | `refactor(web): adopt <DataState> in finyk Mono panels` | `Overview.tsx`, `budgets/Budgets.tsx`, `transactions/TransactionList.tsx` (+ `TransactionList.test.tsx`) | **Opened 2026-05-04 — [#1703](https://github.com/Skords-01/Sergeant/pull/1703)** |
132+
| 2.5 | `refactor(web): adopt <DataState> in fizruk Workouts journal` | `pages/Workouts.tsx` (єдина Skeleton-based loading site у fizruk модулі) | **Opened 2026-05-04 — [#1709](https://github.com/Skords-01/Sergeant/pull/1709)** |
133+
| 2.6 | `refactor(web): adopt <DataState> in nutrition panels` | `NutritionApp.tsx` Menu "plan" tab (єдиний Skeleton-based loading site у nutrition модулі) | **Opened 2026-05-04 — [#1713](https://github.com/Skords-01/Sergeant/pull/1713)** |
134+
| 2.7 | `refactor(web): adopt <DataState> in routine panels` | `RoutineTimeline.tsx` calendar branch (єдиний Skeleton-based loading site у routine модулі) | **Opened 2026-05-04 — [#1714](https://github.com/Skords-01/Sergeant/pull/1714)** |
135+
| 2.8 | `refactor(web): adopt <DataState> in HubChat / coach / digest` | `core/insights/WeeklyDigestCard.tsx` `DigestContent` 4-state ladder (єдиний Skeleton-based panel-loading site у HubChat / coach / digest зоні `core/**`) | **Opened 2026-05-04 — [#1726](https://github.com/Skords-01/Sergeant/pull/1726)** |
136136

137-
> **Note (2026-05-04):** Файли в колонці «Файли» для 2.4–2.7 — actual landed targets, а не initial guess. Початкові приклади (`MonoTransactionsPanel`, `BudgetPanel`, `MonoAccountsList`, `WorkoutHistoryPanel`, `BiometricsPanel`, `NutritionMealsPanel`, `BarcodeScannerPanel`, `RoutineList`, `StreakCalendarPanel`) виявилися застарілими — фізичних компонентів з такими іменами в репі немає. Замість того ми мігрували реальні Skeleton-based loading sites у кожному модулі: усі три finyk-сторінки з `if (loadingTx && realTx.length === 0)` патерном (PR 2.4); `view === "log" && !workoutsLoaded` guard у `Workouts.tsx` (PR 2.5 — у fizruk саме одне таке місце, інші pages працюють синхронно з local-first MMKV-web даними); день-плановий `dayPlanBusy` skeleton у `NutritionApp.tsx` Menu "plan" branch (PR 2.6 — у nutrition тільки `NutritionApp.tsx` імпортує `@shared/components/ui/Skeleton`, food-search dropdown — inline list-state, не panel-level); calendar `isHabitPending && mainTab === "calendar"` skeleton у `RoutineTimeline.tsx` (PR 2.7 — єдиний Skeleton-importer у routine модулі).
137+
> **Note (2026-05-04):** Файли в колонці «Файли» для 2.4–2.8 — actual landed targets, а не initial guess. Початкові приклади (`MonoTransactionsPanel`, `BudgetPanel`, `MonoAccountsList`, `WorkoutHistoryPanel`, `BiometricsPanel`, `NutritionMealsPanel`, `BarcodeScannerPanel`, `RoutineList`, `StreakCalendarPanel`, `HubChatHistoryPanel`, `CoachInsightsPanel`, `DigestPanel`) виявилися застарілими — фізичних компонентів з такими іменами в репі немає. Замість того ми мігрували реальні Skeleton-based loading sites у кожному модулі: усі три finyk-сторінки з `if (loadingTx && realTx.length === 0)` патерном (PR 2.4); `view === "log" && !workoutsLoaded` guard у `Workouts.tsx` (PR 2.5 — у fizruk саме одне таке місце, інші pages працюють синхронно з local-first MMKV-web даними); день-плановий `dayPlanBusy` skeleton у `NutritionApp.tsx` Menu "plan" branch (PR 2.6 — у nutrition тільки `NutritionApp.tsx` імпортує `@shared/components/ui/Skeleton`, food-search dropdown — inline list-state, не panel-level); calendar `isHabitPending && mainTab === "calendar"` skeleton у `RoutineTimeline.tsx` (PR 2.7 — єдиний Skeleton-importer у routine модулі); `DigestContent` 4-state ladder (skeleton → error → empty → content) у `WeeklyDigestCard.tsx` (PR 2.8 — у HubChat / coach / digest зоні `core/**` тільки `WeeklyDigestCard` має panel-level Skeleton-споживача; `AssistantAdviceCard` без skeleton imports і завжди має кеш last-good insight; `HubChatHistoryDrawer` local-first; `HubChat.tsx` / `HubChatBody` / `HubChatComposer` стрімлять без panel-skeleton-у).
138138

139139
> **Кожен PR — 1 child-Devin-сесія максимум.** Скоуп = 2–4 файли, ~150–300 LOC change. Поведінка не змінюється — той самий empty-state, той самий error-state, той самий retry. Лише уніфікований wrapper.
140140

0 commit comments

Comments
 (0)