Skip to content

feat: azuredol.substore(store, key) through the caller's wrappers (#6) - #10

Merged
thorwhalen merged 2 commits into
masterfrom
feat/substore-6
Oct 13, 2026
Merged

thorwhalen merged 2 commits into
masterfrom
feat/substore-6

Conversation

@thorwhalen

@thorwhalen thorwhalen commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Fixes #6. azuredol.substore(store, 'a/')[k] == store['a/'+k] through any wrapper stack: a bare ContainerStore (not overriding _id_of_key) gets the cheap server-scoped leaf sub-store; anything wrapped (instance wrappers, codec classes, key-mapping subclasses) gets a KeyCodecs.prefixed(key) view of the caller's own store (lists the wrapped scope, keeps keys under key). Opaque layers refused; keys with a leading / or // refused (the leaf would normalise them differently). dol>=0.3.75 required. store['sub/'] is untouched; deprecating it is the decision issue #9 (recommendation: keep). Docs updated; Azurite tests not run (no server), mock tests added.

Adversarial review (Opus): confirmed dol floor too low (older dol names the wrong blob), cheap path wrong for a key-mapping subclass, edge keys disagreeing between paths: all fixed with tests; wrapped views' .prefix/.walk_ids() describe the parent (documented, use walk).

🤖 Generated with Claude Code

thorwhalen and others added 2 commits October 13, 2026 10:58
…caller's wrappers (#6)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… // keys; dol>=0.3.75 (#6)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@thorwhalen
thorwhalen merged commit 3008004 into master Oct 13, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the feat/substore-6 branch October 13, 2026 11:08
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.

Sub-store convention (store['sub/']) is lost by wrappers placed over a typed store instance; make it an explicit method

1 participant