- 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
14 lines
817 B
Markdown
14 lines
817 B
Markdown
## About
|
|
A simple little protocol for a "message box" where people can send me messages that are sealed "on site" in their local client (most likely
|
|
their web browser). Read `SPECIFICATION.md` for more details.
|
|
|
|
## Purpose
|
|
This is intended to test a workflow using LLM pair design and programming. I've found LLMs to be great at dumping code that is annoying
|
|
to read and understand, but mostly works. I would like to design systems that are pleasant and easy to understand, with the essential
|
|
components displayed to the human in a way that is abstacted away from noisy implementation details, which are handled by the LLM.
|
|
|
|
### Goals
|
|
- [x] Complete specification in informal markdown
|
|
- [ ] Implement concretely in code
|
|
- [ ] Apply standard code tests
|
|
- [ ] Complete specification in formal language (P, Quint, etc.)
|