Relax write validation so Redis accepts {} and MinIO accepts zero-byte BytesIO
Document None vs empty semantics on interfaces and adapters (delete() removes records; use is not None for existence checks)
Add integration tests for round-trip, missing-vs-empty distinction, and listing empty records
Motivation
Empty payloads are valid in both backends, but the adapters previously rejected them on write while still allowing reads of empty data written by other clients. Allowing empty writes supports downstream placeholders and fixes that read/write asymmetry.
Test plan
pytest tests/unit/
pytest tests/integration/redis/redis_adapter_test.py -k "empty or invalid_set_data"
pytest tests/integration/minio/minio_adapter_test.py -k "empty or zero"
## Summary
- Relax write validation so Redis accepts `{}` and MinIO accepts zero-byte `BytesIO`
- Document `None` vs empty semantics on interfaces and adapters (`delete()` removes records; use `is not None` for existence checks)
- Add integration tests for round-trip, missing-vs-empty distinction, and listing empty records
## Motivation
Empty payloads are valid in both backends, but the adapters previously rejected them on write while still allowing reads of empty data written by other clients. Allowing empty writes supports downstream placeholders and fixes that read/write asymmetry.
## Test plan
- [x] `pytest tests/unit/`
- [ ] `pytest tests/integration/redis/redis_adapter_test.py -k "empty or invalid_set_data"`
- [ ] `pytest tests/integration/minio/minio_adapter_test.py -k "empty or zero"`
Relax write validation so {} and zero-byte BytesIO round-trip correctly,
document None-vs-empty semantics on interfaces and adapters, and add
integration tests for placeholders and existence distinction.
Co-authored-by: Cursor <cursoragent@cursor.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
{}and MinIO accepts zero-byteBytesIONonevs empty semantics on interfaces and adapters (delete()removes records; useis not Nonefor existence checks)Motivation
Empty payloads are valid in both backends, but the adapters previously rejected them on write while still allowing reads of empty data written by other clients. Allowing empty writes supports downstream placeholders and fixes that read/write asymmetry.
Test plan
pytest tests/unit/pytest tests/integration/redis/redis_adapter_test.py -k "empty or invalid_set_data"pytest tests/integration/minio/minio_adapter_test.py -k "empty or zero"Relax write validation so {} and zero-byte BytesIO round-trip correctly, document None-vs-empty semantics on interfaces and adapters, and add integration tests for placeholders and existence distinction. Co-authored-by: Cursor <cursoragent@cursor.com>Test Coverage Report: