Complete stable protocol transition plans - #82
Merged
Conversation
Record ADR-0028 transition evidence.
AndriGitDev
marked this pull request as ready for review
July 27, 2026 16:58
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
Several Alpha paths still advanced or destroyed cryptographic and stateful material across separate SQLite autocommits. A stop or storage failure between those writes could separate a chain step from its only ciphertext, accepted plaintext, delivery ownership, replay marker, deferred acknowledgement, or presentation consequence.
Each logical transition now validates detached before/after state and commits its durable consequences in one bounded
BEGIN IMMEDIATEtransaction. Transport, filesystem export, call presentation, UI callbacks, and event delivery remain after commit. A sealed presentation marker provides deterministic snapshot recovery if the process stops after commit but before notification.Failure and restart evidence
The restart matrix covers every plan kind before and after transaction start, each numbered statement, commit, candidate cryptography, live-memory replacement, and event delivery. It also covers:
Scope boundaries
ADR-0028 remains Proposed. Open P0 boundaries are linked-device authority/sync pending ADR-0026, first-contact admission pending ADR-0030, crash-safe initial profile creation, leased relay custody pending ADR-0032, independent review, and supported-platform sudden-power-loss qualification. Live call/media state remains intentionally process-local; ratchet-protected call signalling is covered.
Intentionally excluded P2 paths are live video, groups above 64 accounts, advanced moderation, high-bandwidth media, additional delay-tolerant carriers, federation, richer optional discovery/wake services, and later governance expansion.
Verification
Passed locally:
cargo fmt --all -- --checkpython3 scripts/check-docs.pycargo clippy --workspace --all-targets --all-features -- -D warningscargo test -p kult-node --all-featurescargo test -p kult-store --all-featurescargo build -p kult-crypto -p kult-protocol --no-default-featurescargo deny checkLocal environment limits:
EPERM;/procinspection.The hosted PR checks cover the full workspace, MSRV, Windows storage, Linux desktop, dependency policy, normal 60-second fuzz runs, Android core/app, and iOS core/app cells. Keep this PR in draft until those results are reviewed.
Hosted results
Final head
df0d2dd992fb4cd60cfd2c4a4135af01c504e46epassed:The PR remains draft pending review of the documented P0 boundaries.