Skip to content

docs(perf): group send chain-lock split (whatsapp-rust#807) - #290

Merged
jlucaso1 merged 1 commit into
mainfrom
claude/eager-cerf-u6mfsy
Jun 9, 2026
Merged

docs(perf): group send chain-lock split (whatsapp-rust#807)#290
jlucaso1 merged 1 commit into
mainfrom
claude/eager-cerf-u6mfsy

Conversation

@jlucaso1

@jlucaso1 jlucaso1 commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Documents the group-send performance improvement from oxidezap/whatsapp-rust#807.

  • New changelog changelog/2026-06-09-group-send-perf.mdx: explains the two-phase split of encrypt_for_devices, the new SessionPlan type, SenderKeyStore::session_setup_lock, and the tracing change.
  • advanced/signal-protocol.mdx — expands the chain-lock <Note> in "Parallelized group encrypt fan-out" to describe the two-lock scheme (session-setup lock for the network phase, chain lock for the CPU phase) and the new public halves ensure_sessions_for_devices / encrypt_for_devices_with_sessions.
  • docs.json — registers the new changelog page.

What changed in #807

prepare_group_stanza previously held the per-(group, sender) sender-key chain lock across the entire SKDM path including prekey fetch and X3DH — forcing concurrent sends to the same group to serialize behind a server RTT. The chain lock now covers only SKDM creation + pairwise fan-out + skmsg encrypt (pure CPU). A new SenderKeyStore::session_setup_lock (held only during ensure_sessions_for_devices) serializes same-group cold sends' session writes without blocking warm sends.

Test plan

  • Changelog renders correctly in Mintlify preview
  • Signal protocol doc note accurately reflects the two-lock scheme
  • No broken links

https://claude.ai/code/session_01AAq2FjyoGjKk61Y2AdkoNe


Generated by Claude Code

…app-rust#807)

New changelog entry and signal-protocol.mdx update for PR #807:
- Two-phase split of encrypt_for_devices into ensure_sessions_for_devices
  (network) and encrypt_for_devices_with_sessions (CPU)
- SenderKeyStore::session_setup_lock new defaulted trait method
- Chain lock now covers only SKDM creation + encrypt, never network I/O
- Concurrent group sends to same group no longer serialize behind RTT

https://claude.ai/code/session_01AAq2FjyoGjKk61Y2AdkoNe
@coderabbitai

coderabbitai Bot commented Jun 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jlucaso1, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 27 minutes and 5 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 04d439b3-0109-4850-b9b7-7e6549d7aa4c

📥 Commits

Reviewing files that changed from the base of the PR and between 720f332 and fb9c760.

📒 Files selected for processing (3)
  • advanced/signal-protocol.mdx
  • changelog/2026-06-09-group-send-perf.mdx
  • docs.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/eager-cerf-u6mfsy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mintlify

mintlify Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
whatsapp-rust 🟢 Ready View Preview Jun 9, 2026, 7:18 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@jlucaso1
jlucaso1 merged commit 8df62e2 into main Jun 9, 2026
2 checks passed
@jlucaso1
jlucaso1 deleted the claude/eager-cerf-u6mfsy branch June 9, 2026 23:53
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.

2 participants