[Blocker] feat(phase8): Multiple Store Management + Activity Log store_id fix
Published on May 5, 2026
# POS DRW Skincare Naik Level: Kelola Multi-Toko, Log Aktivitas Transparan
---
### Raw Commit Data
## GitHub Update
**Repository:** [MKWcorp/POS-DRW-Skincare](https://github.com/MKWcorp/POS-DRW-Skincare)
**Author:** multimediadrw
**Date:** 5/5/2026, 10:20:39 PM
**Commit:** [`3dfd289`](https://github.com/MKWcorp/POS-DRW-Skincare/commit/3dfd28949180e6c77f511eb7836477d8ad307dd4)
### Commit Message
feat(phase8): Multiple Store Management + Activity Log store_id fix
## Multiple Store Management
- Add MultipleStoreScreen with full CRUD (add branch, invite member by email, remove member)
- Add mobile_store_management_repository.dart (4 new endpoints)
- Add multiple_store_provider.dart (MultipleStoreNotifier)
- Add multiple_store_dialogs.dart (AddStoreDialog, InviteMemberDialog)
- Add store_management_card.dart (expandable store card + member tiles)
- Strict owner-only router guard for /multiple-store
- Fix menu guard: remove UserRole.admin exception, owner-only
- MULTI_STORE_DISABLED graceful silent fallback in store_picker_screen.dart
## Activity Log — store_id Fix
- _getUserInfo() now reads storeId from activeStoreContextProvider (P0/FlutterSecureStorage)
instead of activeStoreScopeProvider (SharedPreferences, always returned 'default')
- Push orchestrator: patch payload.audit.scope.store_id + log.storeId before push
- Audit recorder: no longer defaults to 'default', use null (backfilled at push time)
- Add dart:convert import to activity_log_service.dart
## Docs
- Add LOG_TRANSLATOR_UPDATE_MULTISTORE.md (backend team guide)
- Update docs/WEB_POS_LOG_ALIGNMENT.md (add payload.audit contract)
- Update AGENTS.md (Phase 8, new files, 4-layer router guard, gotchas #9 #10)
- Update ENDPOINT_POS.md (section 16: Multiple Store Management)
- Update CHANGELOG.md
Backend: 839 stores + 1057 memberships seeded, MULTI_STORE_ENABLED=true live
---
_This story was imported from historical commits._