Skip to content

Implement atomic pairwise commit plans - #81

Merged
AndriGitDev merged 2 commits into
mainfrom
protocol/adr-0028-atomic-commits
Jul 27, 2026
Merged

Implement atomic pairwise commit plans#81
AndriGitDev merged 2 commits into
mainfrom
protocol/adr-0028-atomic-commits

Conversation

@AndriGitDev

Copy link
Copy Markdown
Owner

Summary

  • Generalize the retained ordinary pairwise-receive transaction from Harden core trust boundaries and delivery reliability #77 into bounded typed plans for pairwise send/receive, handshake receive, receipt receive, and maintenance.
  • Commit detached ratchet and prekey candidates in one BEGIN IMMEDIATE transaction with history/control state, replay markers, receipt routes, outbound envelopes, delivery rows, schedules, capabilities, expiry/tombstones, and exact deferred-row acknowledgement.
  • Replace live state only after a commit receipt and retain a sealed presentation marker for deterministic snapshot resynchronization after commit-before-notification restarts.
  • Add deterministic crypto, statement, commit, memory, event, disk-full, constraint, duplicate, reorder, restart, expiry, repair, and deferred-input crash cases.

Scope and status

The implemented slice covers ordinary and versioned pairwise text, edits, attachment offers, ephemeral content, capability controls, receipts, scheduled activation, late-device delivery, reset handshakes, unconfirmed-session repair, retry/expiry maintenance, and view-once tombstones.

ADR-0028 remains Proposed. GroupSend and GroupReceive, atomic deferred group/media follow-up, and ADR-0030 first-contact quarantine remain open. Real-time call state remains process-local.

Validation

  • strict workspace clippy and default all-target checks
  • all-feature kult-store, kult-node, and kult-ffi suites
  • deterministic transaction, crypto, memory, event-delivery, and restart matrices
  • daemon event-wire tests
  • formatting, documentation, release-version, dependency-policy, no-default-feature, and desktop JavaScript checks
  • 100k and 1m opaque-store scale gates within their budgets

Environment limits

  • Full workspace execution reaches host restrictions on multicast and Unix-domain socket creation; permission-expanded reruns produced the same EPERM results.
  • Standalone desktop Rust linking requires GTK/GLib development packages that are not installed in this environment.

@AndriGitDev
AndriGitDev marked this pull request as ready for review July 27, 2026 11:19
@AndriGitDev
AndriGitDev merged commit 63ef901 into main Jul 27, 2026
11 checks passed
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.

1 participant