Python: a record with unread slots is held read-only (slot-readonly-py) #126

Merged
libby merged 6 commits from hands/slot-readonly-py into main 2026-11-12 04:24:08 +00:00

2026-11-12

Libby
cultcache-py: an owner's removal is one store call for the one record that exists
All checks were successful
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 21m32s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 03:35:17 +00:00
Libby
cultcache-py: a removal by the owner of a key held as another type removes it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 03:32:05 +00:00
Libby
2026-11-12 03:28:35 +00:00
Libby
cultcache-py: judge consent on the stored id, index marks by key, is_writable asks the write's own judges
Soul s1: a written envelope is judged under the id it is stored under, so writable in memory equals writable after reload; only
marks that hold a record read-only are kept, by key (O(1) per written key); is_writable also answers False for foreign-carried
and unowned keys; tests pin batch order, thread scope, nested scope restore and the catalog-less arrival; README documents the surface.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 03:21:10 +00:00
Libby
cultcache-py: changelog for read-only unread slots; batch and unlisted-id tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 02:52:11 +00:00
Libby
cultcache-py: a record whose payload carries unread slots is read-only; every write or removal of it is refused
The payload decode notes slots past the declared ones at any depth (record, nested record, list element, union arm, unit arm) into a
thread-local scope; the cache holds the mark per (type, key) and one check in _write and _delete refuses before any store is touched.
A depth-0 mark under a listed compatible id that the stored catalog reports is consented. Adds UnreadSlots, CultCache.is_writable and
SchemaConflictError.unread_slots.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-12 02:51:28 +00:00