kell_creations/docs/development/build_execution_tracker.md

15 KiB
Raw Blame History

Build Execution Tracker

Current status

  • main baseline updated through: android-mobile-ux-hardening (Stage 6B complete)
  • main baseline commit: merge of feat/android-mobile-ux-hardening (2026-05-30)
  • next branch: feat/bulk-status-actions (Stage 7)
  • current stage: Stage 6 complete — Stage 7 next

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.dartChangeNotifier 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: ready for merge
  • 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 IconButtons (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