Replica commit hardening: Reconcile sends its diff as one tagged commit; straggler guard inside the lock; real-server and budget pins #91

Merged
libby merged 3 commits from hands/unique-index-s4-lows into main 2026-11-11 04:58:00 +00:00
Member

Follow-up to #90 (variants:follow_up:unique-index-s4-lows). Straggler guard moved inside lock(_commits); shared 1M budget and ghost-id pins; a real CultNetDatabaseServer into a client swap test; public Reconcile() now sends its diff as one tagged commit (Soul s5 reproduced an untagged swap faulting the replica when Reconcile races a commit).

Soul: s5 holds for h6 and falsified the 'Reconcile cannot swap' claim, fixed in h7; s6 on h7: Networking 827, Caching 1279, new tests fail with the fixes reverted. Known remaining, filed as follow-up: Reconcile ahead of two pending commits can still replay a stale untagged change (predates #90); a Reconcile diff over the 1M budget faults the client; one weak pin; _outbox nulled not restored on nested Reconcile. CI not consulted at merge (one-slot runner).

🤖 Generated with Claude Code

Follow-up to #90 (variants:follow_up:unique-index-s4-lows). Straggler guard moved inside lock(_commits); shared 1M budget and ghost-id pins; a real CultNetDatabaseServer into a client swap test; public Reconcile() now sends its diff as one tagged commit (Soul s5 reproduced an untagged swap faulting the replica when Reconcile races a commit). Soul: s5 holds for h6 and falsified the 'Reconcile cannot swap' claim, fixed in h7; s6 on h7: Networking 827, Caching 1279, new tests fail with the fixes reverted. Known remaining, filed as follow-up: Reconcile ahead of two pending commits can still replay a stale untagged change (predates #90); a Reconcile diff over the 1M budget faults the client; one weak pin; _outbox nulled not restored on nested Reconcile. CI not consulted at merge (one-slot runner). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
CultNet: a public Reconcile sends its diff as one commit of its own; the race with a commit is reproduced, the straggler test no longer sleeps
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 17m7s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 46s
e3c31b0882
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit abd1a92eb2 into main 2026-11-11 04:58:00 +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!91
No description provided.