CultCache: [CultIndex] is unique at commit and load; [CultRole] names a selection role; replicas apply a commit's changes as one batch #90

Merged
libby merged 8 commits from hands/variants-unique-index into main 2026-11-11 03:48:09 +00:00

2026-11-11

Libby
CultNet client: the pending-commit buffer is bounded by the changes the incomplete commits announce, not by a per-commit cap; stragglers are not buffered
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 18m4s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 57s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 03:03:02 +00:00
Libby
CultNet tests: the commit-buffer pin waits for the last commit so a leaking buffer is seen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 02:40:59 +00:00
Libby
CultNet tests: a snapshot that swaps unique-index values against the replica is applied
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 02:05:51 +00:00
Libby
CultNet: a replica applies the changes of one server commit as one cache commit; a refused commit faults the client
The database publishes commits (WatchCommits); the subscription server and the database server tag the changes a subscription receives from one commit with commitId and commitCount (optional wire fields older peers ignore). The C# subscription client buffers a tagged commit and applies it through one CultCache.Commit, judged on its result, so a swap of [CultIndex] values replicates. A refusal sets Fault, raises Faulted, and stops further applying. Snapshots apply as one commit too.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 01:57:47 +00:00
Libby
Docs: [CultIndex] is unique, [CultRole] names a selection role
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:49:52 +00:00
Libby
CultCache: [CultIndex] is unique at commit and load; grouping and selection declarations become [CultRole]
RefuseIndexSharing in Resolve judges every admission; _indexes holds one key per value; cacheless writes and moved-file writes of unique-indexed types are refused.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-11 00:49:52 +00:00