Skip to content

Fix #3: drop leaf-bound factories from stores; RedisList element codec - #8

Merged
thorwhalen merged 2 commits into
masterfrom
fix/3-factories-scope-and-list-codec
Oct 13, 2026
Merged

thorwhalen merged 2 commits into
masterfrom
fix/3-factories-scope-and-list-codec

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

Closes #3.

Adversarial review (Opus subagent): confirmed the escape closed and all RedisList paths covered; found (1) store-level list writes ignored list_encode -> mixed encodings, (2) a plain function as class-level codec was bound as a method; both fixed with tests. Remaining findings were pre-existing and filed as #7. Dependents gate: no dependent suites (py2store only re-exports).

🤖 Generated with Claude Code

thorwhalen and others added 2 commits October 13, 2026 07:29
…element codec; append creates list

- store_from_source / store_from_sourced_object module-level functions replace
  RedisFactories on the store classes (wrappers re-exported them leaf-bound,
  returning unscoped stores over the whole keyspace)
- RedisList(encode=, decode=) applied on every read/write; RedisCollection passes
  list_encode/list_decode down
- RedisList.append uses RPUSH (RPUSHX silently dropped values on a missing list)
- fakeredis tests that run without a server

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…in-function codecs

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@thorwhalen
thorwhalen merged commit 8fb0d3a into master Oct 13, 2026
8 checks passed
@thorwhalen
thorwhalen deleted the fix/3-factories-scope-and-list-codec branch October 13, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dol#83 audit: redisdol — key-codec escape via RedisFactories (latent); RedisList value-codec claim refuted as stated

1 participant