8c8ab4bb2c
- H8: Add Mutex to MarmotSubscriptionManager for thread safety - H10: Add retained exporter secret to MlsGroupState/RetainedEpochSecrets for outer decryption of out-of-order messages - H14: Add error handling to CreateGroupScreen and MarmotGroupChatView - H15: Add removeGroup() to MarmotGroupList, clean up after leave - M3: Use SecureRandom for nostrGroupId generation - M5: Add event deduplication to MarmotInboundProcessor - M6: Add KeyPackage credential validation in MarmotManager.addMember() - M7: Validate nostrGroupId matches WelcomeEvent h-tag https://claude.ai/code/session_018gVkmmYgMFtBH7G31pCk9N