- Add SenderClient state machine with states: Idle, Ready, Composing, Encrypting, Submitted, Error
- Implement all state transitions according to specification
- Use sodiumoxide for sealed box encryption
- Add validation for sender name (max 200 chars) and message body (max 10,000 chars)
- Implement complete test suite covering:
- State transitions and invalid transitions
- Input validation (empty, max length, over max)
- Encryption (ciphertext randomness, different messages)
- Unicode and special characters support
- Multiple messages in sequence
- Error handling and recovery