cultcache-py, cultnet-py: indexes means unique, roles names selection aliases; commitId/commitCount on change messages #94

Merged
libby merged 6 commits from hands/variants-unique-index-py into main 2026-11-11 06:59:08 +00:00
Member

cultcache-py and cultnet-py adopt the unique-index rule, matching C# (#90) and TS (#92):

  • indexes means unique, refused at commit and at load, naming both keys and the index; roles names many-row selection aliases. An alias in both is refused at DocumentDefinition construction.
  • A batch is collapsed to one record per key before judging, pushing and applying (C# batch semantics).
  • watch_by_index renders values through the cache's index_text; a role alias cannot be watched.
  • database_change_raw carries optional commitId/commitCount; the schema catalog lists both.
  • simulation_fact many-row aliases become roles; the cultmesh-py README teaches indexes=unique, roles=selection.

Soul: variants:verdict:cut-unique-index-py.s1 blocked (7 findings, all fixed in h2); s2 closes, three Lows recorded. Suites: cultcache-py 210, cultnet-py 169, cultmesh-py 148 passed.

🤖 Generated with Claude Code

cultcache-py and cultnet-py adopt the unique-index rule, matching C# (#90) and TS (#92): - `indexes` means unique, refused at commit and at load, naming both keys and the index; `roles` names many-row selection aliases. An alias in both is refused at `DocumentDefinition` construction. - A batch is collapsed to one record per key before judging, pushing and applying (C# batch semantics). - `watch_by_index` renders values through the cache's `index_text`; a role alias cannot be watched. - `database_change_raw` carries optional `commitId`/`commitCount`; the schema catalog lists both. - `simulation_fact` many-row aliases become roles; the cultmesh-py README teaches indexes=unique, roles=selection. Soul: variants:verdict:cut-unique-index-py.s1 blocked (7 findings, all fixed in h2); s2 closes, three Lows recorded. Suites: cultcache-py 210, cultnet-py 169, cultmesh-py 148 passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
One judge (_refuse_index_sharing) behind every write, load and registration; canonical index text as C# IndexValue;
the index handoff in _remove_lookups and str() rendering are deleted.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cultnet-py: pin commitCount 2, the count the C# server writes for a swap
Some checks failed
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Failing after 19m24s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 48s
8c81e718d0
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit ba25b43369 into main 2026-11-11 06:59:08 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!94
No description provided.