350 lines
27 KiB
Markdown
350 lines
27 KiB
Markdown
# Build Execution Tracker
|
||
|
||
## Current status
|
||
|
||
- main baseline updated through: feat/orders-page-ui (Stage 5D complete)
|
||
- next branch: feat/bulk-operator-workflows (Stage 7B) or feat/orders-mobile-surface (Stage 6B)
|
||
- current stage: Stage 5D complete — orders page UI with search/filter toolbar, OrderDetailPanel, AddNoteDialog, OrderCard, OrderStatusChip, OrdersActionSnackBar, and 115 tests
|
||
|
||
## Slice tracker
|
||
|
||
### feat/description-only-edit
|
||
|
||
- status: merged to main
|
||
- commit: `cebac4c`
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- tests: passed (212/212)
|
||
- analyze: passed
|
||
- brief updated: yes
|
||
|
||
### feat/category-only-edit
|
||
|
||
- status: merged to main
|
||
- commit: `8e7e4cb`
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- tests: passed (223/223 feature_wordpress, 5/5 kell_web dashboard)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/post-write-consistency
|
||
|
||
- status: merged to main
|
||
- commit: `7acff83`
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/application/product_publishing_controller.dart` — added `_refreshSelection()` helper; wired into `load()` and all write methods to preserve/refresh `selectedDraft` by id after reload
|
||
- `feature_wordpress/test/product_publishing_controller_test.dart` — added 11 post-write consistency tests covering selection preservation, field refresh (status/price/name/description/category), lastModified, filter/search/sort persistence after writes, item repositioning under active sort, and filter-exit auto-reselection
|
||
- tests: passed (234/234 feature_wordpress)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/publishing-ux-hardening
|
||
|
||
- status: merged to main
|
||
- commit: `b81016d`
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/presentation/widgets/product_preview_panel.dart` — added inline validation error state (`_nameError`, `_priceError`, `_descriptionError`, `_categoryError`); error messages shown below text fields on empty/invalid submit; errors cleared on cancel; added `onCategoryChanged` callback; text fields and save buttons disabled during `isUpdating`; added tooltips (`Save price`, `Save category`, `Cancel`) for consistency
|
||
- `feature_wordpress/lib/src/presentation/widgets/status_action_snack_bar.dart` — failure SnackBar now appends `errorMessage` detail to the failure text for operator visibility
|
||
- `feature_wordpress/test/widgets/product_preview_panel_test.dart` — added `onCategoryChanged` to test helper; added 13 new tests: inline validation errors (name, price, description, category), error-clears-on-cancel, valid-input-clears-error, and text-field-disabled-during-isUpdating for all four edit fields
|
||
- `feature_wordpress/test/widgets/status_action_snack_bar_test.dart` — updated 2 failure SnackBar assertions to match new wording that includes error detail
|
||
- tests: passed (247/247 feature_wordpress)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/multi-select-groundwork
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/application/product_publishing_controller.dart` — added multi-selection state (`toggleMultiSelect`, `clearMultiSelection`, `selectAllVisible`, `isMultiSelected`, `multiSelectedIds`, `multiSelectedCount`)
|
||
- `feature_wordpress/lib/src/presentation/widgets/product_draft_card.dart` — added optional leading checkbox for multi-select mode
|
||
- `feature_wordpress/lib/src/presentation/product_publishing_page.dart` — added `_MultiSelectBar` with selected-count display, Select All, and Clear actions
|
||
- `feature_wordpress/test/product_publishing_controller_test.dart` — added 15 new multi-select tests
|
||
- tests: passed (262/262 feature_wordpress)
|
||
- analyze: passed
|
||
- brief updated: yes
|
||
|
||
### feat/list-efficiency-improvements
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/application/product_publishing_controller.dart` — added `ListDensity` enum, compact/standard view toggle, staleness detection (`isStale()`, `staleCount()` with 30-day threshold), keyboard navigation (`selectNextDraft`/`selectPreviousDraft` with wrapping)
|
||
- `feature_wordpress/lib/src/presentation/widgets/product_draft_card.dart` — added compact two-row layout variant, description snippet in standard card, stale indicator icon, `Flexible` overflow handling
|
||
- `feature_wordpress/lib/src/presentation/product_publishing_page.dart` — wired `Focus`+`onKeyEvent` for arrow keys and density toggle button
|
||
- `feature_wordpress/test/product_publishing_controller_test.dart` — added 32 new tests
|
||
- tests: passed (294/294 feature_wordpress, 5/5 kell_web dashboard)
|
||
- analyze: passed
|
||
- brief updated: yes
|
||
|
||
### feat/design-system-shared-widgets
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `design_system/lib/design_system.dart` — expanded barrel exports with typography, layout, and 5 new widgets
|
||
- `design_system/lib/src/theme/kc_typography.dart` — new shared typography scale (KcTypography) with full Material 3 text style hierarchy and `applyKcTypography()` helper
|
||
- `design_system/lib/src/theme/kc_theme.dart` — updated to use `KcTypography.applyKcTypography()` instead of inline text styles
|
||
- `design_system/lib/src/layout/kc_breakpoints.dart` — new responsive breakpoint utilities (KcBreakpoints) with compact/medium/expanded/large queries and grid column helper
|
||
- `design_system/lib/src/widgets/kc_empty_state.dart` — migrated from kell_web EmptyStatePanel as KcEmptyState
|
||
- `design_system/lib/src/widgets/kc_section_header.dart` — migrated from kell_web SectionHeader as KcSectionHeader
|
||
- `design_system/lib/src/widgets/kc_summary_card.dart` — migrated from kell_web SummaryCard as KcSummaryCard
|
||
- `design_system/lib/src/widgets/kc_loading_state.dart` — new shared loading state widget
|
||
- `design_system/lib/src/widgets/kc_error_state.dart` — new shared error state widget with optional retry
|
||
- `design_system/test/design_system_test.dart` — expanded from 3 to 41 tests covering all new widgets, typography, breakpoints, colors, spacing
|
||
- `kell_web/lib/pages/dashboard_page.dart` — updated imports to use design_system widgets directly (KcSectionHeader, KcSummaryCard, KcEmptyState)
|
||
- `kell_web/lib/shell/widgets/empty_state_panel.dart` — replaced with backward-compatible typedef re-export
|
||
- `kell_web/lib/shell/widgets/section_header.dart` — replaced with backward-compatible typedef re-export
|
||
- `kell_web/lib/shell/widgets/summary_card.dart` — replaced with backward-compatible typedef re-export
|
||
- tests: passed (41/41 design_system, 294/294 feature_wordpress, 24/24 kell_web)
|
||
- analyze: passed (dart analyze — no issues found in design_system and kell_web)
|
||
- brief updated: yes
|
||
|
||
### feat/shared-composition-pattern
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `core/lib/src/app/` — extracted shared composition abstractions (KcAppConfig, KcAppEnvironment, KcAppServices, KcServiceFactory, KcBootstrap, KcAppScope)
|
||
- `core/lib/core.dart` — expanded barrel exports for app composition
|
||
- `core/test/core_test.dart` — added 20 tests for shared composition abstractions
|
||
- `kell_web/` — updated to use core composition abstractions
|
||
- tests: passed (20/20 core, 41/41 design_system, 294/294 feature_wordpress, 24/24 kell_web)
|
||
- analyze: passed
|
||
- brief updated: yes
|
||
|
||
### feat/flutter-cicd
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `.forgejo/workflows/flutter-analyze.yml` — new Forgejo Actions workflow for dart analyze on all 8 packages/apps
|
||
- `.forgejo/workflows/flutter-test.yml` — new Forgejo Actions workflow for flutter test per package with aggregate pass/fail summary
|
||
- `kell_creations_apps/tools/run_all_tests.sh` — new local CI helper script with optional --analyze flag
|
||
- `kell_creations_apps/tools/README.md` — documents scripts and CI workflow inventory
|
||
- tests: passed (20/20 core, 41/41 design_system, 294/294 feature_wordpress, 24/24 kell_web — 379 total)
|
||
- analyze: passed (dart analyze — no issues found across all 8 packages/apps)
|
||
- brief updated: yes
|
||
|
||
### feat/test-coverage-visibility
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-22
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `.forgejo/workflows/flutter-test.yml` — enhanced to run flutter test --coverage, parse lcov.info, report per-package line coverage percentages in aggregate summary table
|
||
- `kell_creations_apps/tools/collect_coverage.sh` — new local coverage helper script with summary table
|
||
- `kell_creations_apps/tools/README.md` — documented collect_coverage.sh script
|
||
- `.gitignore` — added coverage/ directories
|
||
- `docs/development/master_development_brief.md` — marked Stage 4D complete, documented baseline coverage table, updated next branch to Stage 5A, partially resolved improvement #5
|
||
- tests: passed (20/20 core, 41/41 design_system, 294/294 feature_wordpress, 24/24 kell_web — 379 total)
|
||
- analyze: passed
|
||
- coverage baseline: core 85.7%, design_system 100.0%, feature_wordpress 84.7%, kell_web 54.1%, overall 78.4%
|
||
- brief updated: yes
|
||
|
||
### feat/android-app-shell
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-28
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `kell_mobile/pubspec.yaml` — replaced default template dependencies with shared packages (`core`, `design_system`, `feature_inventory`, `feature_orders`, `feature_policy`, `feature_wordpress`); SDK constraint corrected to `^3.11.0`
|
||
- `kell_mobile/lib/main.dart` — replaced counter template with `KcBootstrap` entry point using `--dart-define` environment variables
|
||
- `kell_mobile/lib/app.dart` — new `KellMobileApp` widget with `KcAppScope<MobileAppServices>`, `KcTheme`, and environment badge
|
||
- `kell_mobile/lib/composition/mobile_app_services.dart` — new `MobileAppServices` extending `KcAppServices` with `fake()` and `wp()` factory constructors
|
||
- `kell_mobile/lib/shell/mobile_shell.dart` — new `MobileShell` with 5-tab `NavigationBar` (Dashboard, Inventory, Orders, Publishing, More) and `IndexedStack` body
|
||
- `kell_mobile/lib/dashboard/domain/dashboard_summary.dart` — shared `DashboardSummary` value object with `fromData()` and `empty()` constructors
|
||
- `kell_mobile/lib/dashboard/application/get_dashboard_summary.dart` — use case aggregating inventory, orders, and publishing repositories
|
||
- `kell_mobile/lib/dashboard/application/dashboard_controller.dart` — `ChangeNotifier` controller with loading/error/summary state
|
||
- `kell_mobile/lib/pages/dashboard_page.dart` — mobile-optimized dashboard with `GridView` summary cards using design system widgets
|
||
- `kell_mobile/lib/pages/finance_placeholder_page.dart` — placeholder page for Finance tab
|
||
- `kell_mobile/lib/pages/integrations_placeholder_page.dart` — placeholder page for Integrations tab
|
||
- `kell_mobile/test/widget_test.dart` — 6 widget tests covering shell loading, summary cards, environment badge, navigation bar, tab switching, and More menu
|
||
- 13 other `pubspec.yaml` files — SDK constraint corrected from `^3.11.4` to `^3.11.0` across all packages
|
||
- tests: passed (6/6 kell_mobile, 24/24 kell_web, 294/294 feature_wordpress — all passing)
|
||
- analyze: not yet run (SDK constraint fix was prerequisite)
|
||
- brief updated: yes
|
||
|
||
### feat/android-publishing-surface
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-29
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/feature_wordpress.dart` — expanded barrel exports with `ProductPublishingController`, `ProductSortField`, `ProductDraftCard`, `ProductPreviewPanel`, and all 5 use cases + snack bar helpers for mobile consumption
|
||
- `kell_mobile/lib/pages/mobile_publishing_page.dart` — new mobile-optimized publishing workspace with search bar, horizontal filter chips, sort dropdown, product count, compact card list, pull-to-refresh, and push navigation to detail page
|
||
- `kell_mobile/lib/pages/mobile_product_detail_page.dart` — new full-screen product detail page wrapping shared `ProductPreviewPanel` with all narrow edit callbacks
|
||
- `kell_mobile/lib/shell/mobile_shell.dart` — Products tab (case 2) switched from `ProductPublishingPage` to `MobilePublishingPage`; removed unused `feature_wordpress` import
|
||
- `kell_mobile/test/widget_test.dart` — added 4 new mobile publishing surface tests (search bar, filter chips, product count, sort button) — 10 total kell_mobile tests
|
||
- tests: passed (10/10 kell_mobile)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/android-feedback-polish
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-29
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `kell_mobile/lib/pages/mobile_product_detail_page.dart` — converted from stateless to StatefulWidget; added local controller listener for SnackBar feedback in detail page context; added confirmation dialogs for publish/move-to-draft actions; added haptic feedback (mediumImpact for status, lightImpact for field edits) on successful actions
|
||
- `kell_mobile/lib/pages/mobile_publishing_page.dart` — added `_detailPageActive` guard to suppress SnackBars when detail page is pushed (prevents invisible behind-route feedback); updated `_navigateToDetail` to set/clear the guard flag using Navigator.push().then()
|
||
- `kell_mobile/test/widget_test.dart` — added 4 new Stage 6A tests: detail page navigation, confirmation dialog for status changes, product name in app bar, and back navigation returning to product list
|
||
- tests: passed (14/14 kell_mobile)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/android-mobile-ux-hardening
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-30
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/presentation/widgets/product_preview_panel.dart` — removed `constraints: BoxConstraints()` and `padding: EdgeInsets.zero` overrides from 12 `IconButton`s (edit/save/cancel for name, price, description, category) to restore Material Design 48×48dp minimum touch targets; replaced fixed-width `SizedBox(width: 80)` on price edit `TextField` with `Expanded` for flexible layout on narrow mobile screens; added `tooltip: 'Edit price'` for consistency with other edit buttons
|
||
- `kell_mobile/lib/pages/mobile_product_detail_page.dart` — wrapped `ProductPreviewPanel` in `SafeArea` to prevent content clipping under system UI on devices with notches/gesture bars
|
||
- `feature_wordpress/test/widgets/product_preview_panel_test.dart` — added 6 new touch target tests: rendered size ≥ 48×48dp verification for edit name, edit price, edit category, edit description, save/cancel name buttons, and flexible price edit TextField width
|
||
- tests: passed (300/300 feature_wordpress, 14/14 kell_mobile, 24/24 kell_web, 41/41 design_system — 379 total)
|
||
- analyze: passed
|
||
- brief updated: yes
|
||
|
||
### feat/bulk-status-actions
|
||
|
||
- status: merged to main
|
||
- commit: `2c3ed3b`
|
||
- date: 2026-05-30
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/lib/src/application/product_publishing_controller.dart` — added `BulkActionResult` value class with `successCount`, `failureCount`, `targetStatus`, `failedProductNames`, `totalCount`, `allSucceeded`; added `lastBulkActionResult`, `consumeBulkActionResult()`, and `bulkUpdateStatus()` method that processes selected products sequentially with per-row updating state, then reloads once and clears multi-selection
|
||
- `feature_wordpress/lib/src/presentation/widgets/status_action_snack_bar.dart` — added `showBulkActionSnackBar()` helper with success/partial-failure/total-failure variants showing count summaries and up to 3 failed product names
|
||
- `feature_wordpress/lib/src/presentation/product_publishing_page.dart` — added `_confirmBulkMoveToDraft()` confirmation dialog; updated `_MultiSelectBar` with `onBulkMoveToDraft` callback and "Move to Draft" `OutlinedButton.icon`; added bulk result listener in `_onControllerChanged`
|
||
- `feature_wordpress/test/product_publishing_controller_test.dart` — added 11 new `bulkUpdateStatus` tests: no-op on empty selection, moves all to draft, sets result on all-success, clears multi-selection, clears updatingIds, handles mixed statuses, consume clears result, starts null, preserves preview selection, persists filter/sort, disposal safety
|
||
- tests: passed (311/311 feature_wordpress, 24/24 kell_web — 335+ total)
|
||
- analyze: passed (info-level only — 8 pre-existing unnecessary_import in test files)
|
||
- brief updated: yes
|
||
|
||
### feat/inventory-domain-expansion
|
||
|
||
- status: merged to main
|
||
- date: 2026-07-10
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_inventory/lib/src/domain/inventory_item.dart` — expanded model with `description`, `imageUrl`, `category`, `reorderPoint`, `supplier`, `location`, `lastUpdated` fields; added `copyWith()`
|
||
- `feature_inventory/lib/src/domain/inventory_adjustment_result.dart` — new value object with `success`, `updatedItem`, `errorMessage`; named constructors `success()` and `failure()`
|
||
- `feature_inventory/lib/src/domain/inventory_repository.dart` — expanded contract with `adjustQuantity()`, `setQuantity()`, `createItem()`, `updateItem()`, `updateItemImage()`
|
||
- `feature_inventory/lib/src/data/fake_inventory_repository.dart` — expanded seed data (6 items with full fields, supplier/location, reorderPoint); implemented all write methods with status auto-update logic
|
||
- `feature_inventory/lib/src/application/adjust_inventory_quantity.dart` — new use case wrapping `adjustQuantity()`
|
||
- `feature_inventory/lib/src/application/create_inventory_item.dart` — new use case wrapping `createItem()`
|
||
- `feature_inventory/lib/src/application/update_inventory_item.dart` — new use case wrapping `updateItem()`
|
||
- `feature_inventory/lib/src/application/inventory_controller.dart` — added `isUpdating`, `lastActionResult`, `adjustQuantity()`, `createItem()`, `updateItem()`, `_refreshItem()` with pre-filter selectedItem refresh
|
||
- `feature_inventory/lib/src/presentation/inventory_page.dart` — updated `InventoryController` constructor call to pass all 4 use cases
|
||
- `feature_inventory/lib/feature_inventory.dart` — expanded barrel exports for all new types and use cases
|
||
- `feature_inventory/test/feature_inventory_test.dart` — 49 tests covering InventoryStatus, InventoryItem, InventoryAdjustmentResult, FakeInventoryRepository (all write methods), and InventoryController (read + write actions)
|
||
- `kell_web/test/dashboard/domain/dashboard_summary_test.dart` — updated InventoryItem construction to use expanded model
|
||
- `kell_web/test/dashboard/application/dashboard_controller_test.dart` — updated stub InventoryRepository to implement expanded contract
|
||
- tests: passed (49/49 feature_inventory, 24/24 kell_web, 20/20 core, 41/41 design_system, 311/311 feature_wordpress — 445 total)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/inventory-page-ui
|
||
|
||
- status: merged to main
|
||
- date: 2026-07-10
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_inventory/lib/src/presentation/inventory_page.dart` — full inventory page with search bar, status filter chips (All / In Stock / Low Stock / Out of Stock / Draft), item count display, `InventoryItemCard` list, `initialFilter` and `initialQuery` constructor params
|
||
- `feature_inventory/lib/src/presentation/widgets/inventory_status_chip.dart` — `InventoryStatusChip` widget mapping `InventoryStatus` to label and color
|
||
- `feature_inventory/lib/src/presentation/widgets/inventory_detail_panel.dart` — `InventoryDetailPanel` with name, SKU, description, quantity, price, status chip, supplier, location, reorder point, last updated; Adjust Quantity and View Product action buttons; `isUpdating` loading indicator
|
||
- `feature_inventory/lib/src/presentation/widgets/adjust_quantity_dialog.dart` — `AdjustQuantityDialog` with +/- delta input, reason field, and `AdjustQuantityDialogResult` value object
|
||
- `feature_inventory/lib/src/presentation/inventory_action_snack_bar.dart` — `showInventoryActionSnackBar()` helper for success/failure feedback
|
||
- `feature_inventory/lib/feature_inventory.dart` — expanded barrel exports for all new presentation types
|
||
- `feature_inventory/test/widgets/inventory_page_test.dart` — 26 new widget tests covering `InventoryStatusChip` (4), `InventoryDetailPanel` (11), `InventoryPage` (9), `AdjustQuantityDialogResult` (2)
|
||
- `kell_creations_apps/tools/run_all_tests.sh` — added `feature_inventory` to `TESTABLE` list
|
||
- tests: passed (75/75 feature_inventory, 311/311 feature_wordpress, 24/24 kell_web, 14/14 kell_mobile, 41/41 design_system, 20/20 core — 485 total)
|
||
- analyze: passed (dart analyze --fatal-infos — no issues found)
|
||
- brief updated: yes
|
||
|
||
### feat/orders-domain
|
||
|
||
- status: merged to main
|
||
- date: 2026-07-10
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_orders/lib/src/domain/order.dart` — added `customerPhone`, `notes`, `orderNotes` fields; added `copyWith()`
|
||
- `feature_orders/lib/src/domain/order_action_result.dart` — new value object with `success`, `updatedOrder`, `errorMessage`; named constructors `success()` and `failure()`
|
||
- `feature_orders/lib/src/domain/orders_repository.dart` — expanded contract with `updateOrderStatus()`, `addOrderNote()`, `createOrder()`
|
||
- `feature_orders/lib/src/data/fake_orders_repository.dart` — added `customerPhone` to seed data; implemented all write methods with duplicate-check, empty-note guard, and status auto-update
|
||
- `feature_orders/lib/src/application/update_order_status.dart` — new use case wrapping `updateOrderStatus()`
|
||
- `feature_orders/lib/src/application/add_order_note.dart` — new use case wrapping `addOrderNote()`
|
||
- `feature_orders/lib/src/application/create_order.dart` — new use case wrapping `createOrder()`
|
||
- `feature_orders/lib/src/application/orders_controller.dart` — added `isUpdating`, `lastActionResult`, `updateOrderStatus()`, `addOrderNote()`, `createOrder()`, `consumeActionResult()`, `_reloadAndRefresh()` with filter/search persistence after writes; write use cases are optional named params for backward compatibility
|
||
- `feature_orders/lib/feature_orders.dart` — expanded barrel exports for all new types and use cases
|
||
- `feature_orders/test/feature_orders_test.dart` — expanded domain tests: Order (copyWith, defaults, computed props), OrderItem, OrderStatus, OrderActionResult, barrel smoke test
|
||
- `feature_orders/test/fake_orders_repository_test.dart` — expanded with write method tests: updateOrderStatus (4), addOrderNote (6), createOrder (4)
|
||
- `feature_orders/test/orders_controller_test.dart` — expanded with write-side tests: updateOrderStatus (6), addOrderNote (6), createOrder (4), consumeActionResult (3), filter/search persistence (2); read-side tests preserved
|
||
- `kell_web/test/dashboard/application/dashboard_controller_test.dart` — updated `_StubOrdersRepository` to implement expanded `OrdersRepository` contract
|
||
- `kell_creations_apps/tools/run_all_tests.sh` — added `feature_orders` and `kell_mobile` to `TESTABLE` list
|
||
- tests: passed (90/90 feature_orders, 24/24 kell_web — all passing)
|
||
- analyze: passed (dart analyze --fatal-infos — no issues found in feature_orders and kell_web)
|
||
- brief updated: yes
|
||
|
||
### feat/orders-page-ui
|
||
|
||
- status: merged to main
|
||
- date: 2026-07-10
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_orders/lib/src/presentation/orders_page.dart` — full orders page with search bar, status filter chips (All / Pending / Processing / Shipped / Delivered / Cancelled), order count display, `OrderCard` list, master-detail wide layout, push-navigation narrow layout; `initialFilter`, `initialQuery`, `initialSelectedId` constructor params; `onViewProduct` and `onViewInventory` cross-feature callbacks
|
||
- `feature_orders/lib/src/presentation/widgets/order_card.dart` — `OrderCard` with order ID, customer name, date, status chip, item count, and total
|
||
- `feature_orders/lib/src/presentation/widgets/order_detail_panel.dart` — `OrderDetailPanel` with customer info, shipping address, line items table, order total, order notes, status update dropdown, Add Note button, and `isUpdating` loading indicator; optional `onViewProduct`/`onViewInventory` cross-feature links per line item
|
||
- `feature_orders/lib/src/presentation/widgets/order_status_chip.dart` — `OrderStatusChip` mapping `OrderStatus` to label and color
|
||
- `feature_orders/lib/src/presentation/widgets/add_note_dialog.dart` — `AddNoteDialog` with text field, empty-note validation, and `AddNoteDialogResult` value object
|
||
- `feature_orders/lib/src/presentation/orders_action_snack_bar.dart` — `showOrderActionSnackBar()` helper for success/failure feedback
|
||
- `feature_orders/lib/feature_orders.dart` — expanded barrel exports for all new presentation types and `OrdersController`
|
||
- `feature_orders/test/widgets/orders_page_test.dart` — 25 new widget tests covering `OrderDetailPanel` (14), `AddNoteDialog` (3), `OrdersPage` (6), and `_EmptyOrdersRepository` test double
|
||
- tests: passed (115/115 feature_orders, 24/24 kell_web — 139 total for affected packages)
|
||
- analyze: passed (dart analyze — no issues found)
|
||
- brief updated: yes
|
||
|
||
### chore/analyze-cleanup-and-tracker-sync
|
||
|
||
- status: merged to main
|
||
- date: 2026-05-30
|
||
- inspection: complete
|
||
- implementation: complete
|
||
- files changed:
|
||
- `feature_wordpress/test/product_publishing_controller_test.dart` — removed 3 unnecessary_import directives (get_product_drafts, product_publishing_controller, publish_product)
|
||
- `feature_wordpress/test/widgets/product_draft_card_test.dart` — removed 1 unnecessary_import directive (product_draft_card)
|
||
- `feature_wordpress/test/widgets/product_preview_panel_test.dart` — removed 1 unnecessary_import directive (product_preview_panel)
|
||
- `feature_wordpress/test/widgets/publish_status_chip_test.dart` — removed 1 unnecessary_import directive (publish_status_chip)
|
||
- `feature_wordpress/test/widgets/status_action_snack_bar_test.dart` — removed 2 unnecessary_import directives (product_publishing_controller, status_action_snack_bar)
|
||
- `kell_mobile/test/widget_test.dart` — removed unused `productCards` local variable
|
||
- `docs/development/build_execution_tracker.md` — updated Stage 7A to merged, synced current status
|
||
- `docs/development/master_development_brief.md` — updated next recommended branch, validation state, test counts
|
||
- tests: passed (311/311 feature_wordpress, 14/14 kell_mobile, 24/24 kell_web, 41/41 design_system, 20/20 core — 410 total)
|
||
- analyze: passed (dart analyze --fatal-infos — no issues found across all packages)
|
||
- brief updated: yes
|