v3.0.0
Published to crates.io 2026-05-20.
What's Changed
- feat(core): steward violation detection and emergency criteria proposal by @seemenkina in #52
- feat(core): peer scoring service and MemberInfo UI type by @seemenkina in #53
- feat(core): integrate peer scoring into group member management by @seemenkina in #54
- feat(core): add peer scoring service by @seemenkina in #55
- feat(core): enhance steward list generation and validation by @seemenkina in #56
- Steward list integration by @seemenkina in #57
- chore: Recovery rework, steward-leave correctness, and UI rework by @seemenkina in #58
- chore(core): commit-candidate fallback + peer-scoring architecture by @seemenkina in #59
- feat(core): score absent steward on backup commit; prune dead-path tests by @seemenkina in #60
- feat(voting): rework submission, auto-vote, and wire format by @seemenkina in #61
- feat(core): group sync — retry_round as list-frozen tag by @seemenkina in #62
- fix(consensus): close self-leave consensus-scope asymmetry by @seemenkina in #63
- feat(core): leaver-aware steward selection by @seemenkina in #64
- feat: layered steward recovery + unified ECP dispatch by @seemenkina in #65
- fix(freeze): adjust validation in freeze state by @seemenkina in #66
- fix(app): clear MLS and scoring state on leave by @seemenkina in #67
- feat(group_sync): propagate full per-group setup to joiners by @seemenkina in #68
- feat(group_sync): tighten joiner-side validation by @seemenkina in #69
- refactor: cleanup pass — scoring, config, locking by @seemenkina in #70
- refactor: code organization cleanup by @seemenkina in #71
- refactor: hot-path perf cleanups (members, group, wallet, timers) by @seemenkina in #72
- Bump openmls version to 0.8.1 by @jazzz in #73
- refactor: tighten core/app boundary by @seemenkina in #74
- refactor(mls): per-group MlsService with Group ownership by @seemenkina in #75
- refactor(mls): per-group MlsService with Group ownership by @seemenkina in #76
- refactor(scoring): per-group PeerScoringPlugin with cross events by @seemenkina in #77
- refactor(identity): split Identity from MLS state by @seemenkina in #78
- refactor(steward): per-group StewardListPlugin by @seemenkina in #79
- refactor(mls): MlsService on GroupEntry, Group generic-free by @seemenkina in #80
- refactor(state-machine): split SM and PhaseTimer onto GroupEntry by @seemenkina in #81
- refactor(group-entry): consolidate epoch history, config, and recovery flag by @seemenkina in #82
- refactor: extract ConversationHandle into core, rename Group by @seemenkina in #83
- fix(config): plug-in fields own their domain, no sync drift by @seemenkina in #84
- refactor(identity): cache self-identity on User, drop from Conversation by @seemenkina in #85
- refactor: drop dead code, collapse forwarders, rename to steward-list by @seemenkina in #86
- docs: fix drift after plug-in extraction by @seemenkina in #87
- refactor: collapse User/Handle generics, rename plug-in surface by @seemenkina in #88
- refactor: fold mls locks, propagate cleanup errors, typed buffer outcome by @seemenkina in #89
- refactor: trim hot-path clones in freeze and commit-apply by @seemenkina in #90
- refactor(error): typed noop reasons, boxed variants, identity split by @seemenkina in #91
- refactor(app): move per-conversation methods to SessionRunner by @seemenkina in #92
- test(session): SessionRunner-driven integration coverage by @seemenkina in #93
- refactor: sync-first, identity-agnostic library shape by @seemenkina in #94
- refactor(mls): &mut audit, drop dyn, slim plugin layer by @seemenkina in #95
Full Changelog: v2.1.0...v3.0.0