Mike Kell
f056d5f0b5
docs: sync master development brief with completed stages and resolved recommendations
Publish Docs / publish-docs (push) Successful in 1m2s
Details
2026-05-22 11:03:00 -04:00
Mike Kell
effaadc84b
docs: full project analysis with recommendations and fixes
Publish Docs / publish-docs (push) Successful in 1m9s
Details
2026-05-22 10:51:53 -04:00
Mike Kell
f30ad24d8a
feat(ci): add test coverage visibility to CI pipeline (Stage 4D)
...
Enhance flutter-test.yml to run tests with --coverage and parse lcov.info
files, producing aggregate summary table with per-package line coverage.
Changes:
- flutter-test.yml: add --coverage flag, lcov.info parsing, coverage %
- collect_coverage.sh: new local coverage helper with summary table
- tools/README.md: document collect_coverage.sh script
- .gitignore: add coverage/ directories
- master_development_brief.md: mark Stage 4D complete, document baseline
coverage table, update next branch to Stage 5A, resolve improvement #5
Baseline coverage (2026-05-22):
- core: 85.7%% (42/49 lines, 20 tests)
- design_system: 100.0%% (88/88 lines, 41 tests)
- feature_wordpress: 84.7%% (857/1012 lines, 294 tests)
- kell_web: 54.1%% (191/353 lines, 24 tests)
- Overall: 78.4%% (1178/1502 lines, 379 tests)
No minimum thresholds enforced — visibility first.
2026-05-22 10:22:05 -04:00
Mike Kell
71abe9df7f
docs: update briefs for merged feat/flutter-cicd (Stage 4C)
...
Publish Docs / publish-docs (push) Successful in 1m16s
Details
- master_development_brief.md: mark Stage 4C complete, update baseline commit,
next recommended branch (Stage 4D), tools/ description, resolve improvement #9
- build_execution_tracker.md: update current status to Stage 4C, add missing
feat/shared-composition-pattern and feat/flutter-cicd slice entries
2026-05-22 10:11:51 -04:00
Mike Kell
9eafc68fec
feat(core): extract shared composition pattern into core package (Stage 4B)
...
Validate Docs / validate-docs (push) Successful in 1m13s
Details
Extract AppConfig/AppEnvironment, AppServices, Bootstrap, and AppScope into core package as KcAppConfig, KcAppServices, KcBootstrap, and KcAppScope generic abstractions.
New core composition types:
- KcAppConfig: runtime config from --dart-define (KC_ENV, WC credentials)
- KcAppEnvironment: enum for fake/wordpress environments
- KcAppServices: abstract base for app service containers
- KcServiceFactory<T>: generic factory for fake/wordpress service creation
- KcBootstrap: shared bootstrap with env switch and WP credential fallback
- KcAppScope<T>: InheritedWidget exposing typed services + config to tree
kell_web backward compatibility:
- AppConfig/AppEnvironment are now typedefs to Kc-prefixed types
- AppServices extends KcAppServices with concrete repositories
- AppScope extends KcAppScope<AppServices> with direct InheritedWidget lookup
- Bootstrap delegates to KcBootstrap.run with app-specific factory
Tests: 20 new core tests, all 379 tests passing (core 20, design_system 41, feature_wordpress 294, kell_web 24). dart analyze clean.
2026-05-22 09:57:51 -04:00
Mike Kell
8facefdff1
feat(design-system): Stage 4A — design system expansion and shared widget migration
...
- Migrate EmptyStatePanel, SectionHeader, SummaryCard from kell_web into design_system as KcEmptyState, KcSectionHeader, KcSummaryCard
- Add KcTypography shared typography scale with full Material 3 text style hierarchy
- Add KcBreakpoints responsive layout breakpoint utilities (compact/medium/expanded/large)
- Add KcLoadingState and KcErrorState shared state widgets
- Update kc_theme.dart to use KcTypography.applyKcTypography()
- Update kell_web dashboard_page.dart to use design_system widgets directly
- Replace kell_web shell widget files with backward-compatible typedef re-exports
- Expand design_system tests from 3 to 41 (all passing)
- All existing tests passing: design_system 41/41, feature_wordpress 294/294, kell_web 24/24
- dart analyze clean across design_system and kell_web
2026-05-22 09:42:31 -04:00
Mike Kell
bee610ca2c
docs: add Stage 4 — Platform foundations and cross-platform readiness
Publish Docs / publish-docs (push) Successful in 1m9s
Details
2026-05-22 09:26:39 -04:00
Mike Kell
02090cde6a
docs: add suggested improvements to master development brief
Publish Docs / publish-docs (push) Successful in 1m3s
Details
2026-05-22 09:17:08 -04:00
Mike Kell
eaf3e70d30
docs: update master development brief — Stage 3B complete, Stage 3 done
...
Publish Docs / publish-docs (push) Successful in 1m10s
Details
Mark Stage 3B (list efficiency improvements) as complete with 294 tests passing. Update baseline commit reference, test count, and next recommended branch to Stage 4A (Android app shell).
2026-05-22 08:53:10 -04:00
Mike Kell
dfe7ae1811
feat: add multi-select groundwork to product publishing (Stage 3A)
...
Add read-only multi-selection state to the product publishing workspace, preparing for future bulk actions without introducing any bulk writes.
Controller (ProductPublishingController):
- Add _multiSelectedIds Set<String> for tracking multi-selected product IDs
- Add toggleMultiSelect(id) to add/remove individual IDs
- Add clearMultiSelection() to deselect all
- Add selectAllVisible() to select all currently visible (filtered/searched) drafts
- Add isMultiSelected(id), multiSelectedIds, multiSelectedCount, isMultiSelectActive getters
- Multi-selection is independent of single-item preview selection
- Multi-selection persists across load cycles and write operations
UI (ProductDraftCard):
- Add optional isMultiSelected/onMultiSelectToggle props
- Show leading Checkbox when multi-select mode is active
- Tapping checkbox toggles multi-select; tapping card body still fires single-item preview
UI (ProductPublishingPage):
- Add _MultiSelectBar widget above product list when multi-select is active
- Shows selected count, Select All button, and Clear button
- Replace deprecated withOpacity() calls with withValues(alpha:)
Tests:
- 15 new multi-select controller tests covering toggle, clear, select-all,
filter/search interaction, independence from preview selection, persistence
across loads and writes, and listener notifications
- Total: 262 feature_wordpress tests passing
Validation:
- dart analyze: clean (0 issues)
- flutter test: 262/262 passed
Changed files:
- lib/src/application/product_publishing_controller.dart
- lib/src/presentation/widgets/product_draft_card.dart
- lib/src/presentation/product_publishing_page.dart
- test/product_publishing_controller_test.dart
- docs/development/master_development_brief.md
2026-05-22 08:33:24 -04:00
Mike Kell
49a3702cec
Updated build status
Publish Docs / publish-docs (push) Successful in 1m34s
Details
2026-04-11 16:49:51 -04:00
Mike Kell
02cc75c655
feat: publishing workflow UX hardening (Stage 2B)
Validate Docs / validate-docs (push) Successful in 1m9s
Details
2026-04-11 16:40:10 -04:00
Mike Kell
73b4a49939
docs: update briefs for merged feat/post-write-consistency (Stage 2A)
...
- Mark Stage 2A complete in master brief and build tracker
- Refresh main baseline to 7acff83
- Next slice: feat/publishing-ux-hardening (Stage 2B)
2026-04-11 16:18:00 -04:00
Mike Kell
cf0889d4a9
feat: post-write consistency hardening (Stage 2A)
...
Validate Docs / validate-docs (push) Successful in 1m4s
Details
Add _refreshSelection() to ProductPublishingController to preserve and refresh selectedDraft by id after all write-triggered reloads. Selection stays on the same product with latest data, or auto-selects first visible item if the original leaves the active filter.
- 11 new post-write consistency tests (234 total)
- dart analyze clean
2026-04-11 16:11:06 -04:00
Mike Kell
b69edd3e4a
feat(wordpress): add category-only product edit (Stage 1B)
Validate Docs / validate-docs (push) Successful in 1m3s
Details
2026-04-11 15:54:51 -04:00
Mike Kell
3e233b0df6
Master Development Brief updated after Stage 1A merge
Publish Docs / publish-docs (push) Successful in 1m3s
Details
2026-04-11 11:15:37 -04:00
Mike Kell
de44b02d76
added master development brief
Publish Docs / publish-docs (push) Successful in 1m3s
Details
2026-04-11 10:48:49 -04:00