docs(changelog): group-devices memo behind topology generation (whatsapp-rust#824) - #302
docs(changelog): group-devices memo behind topology generation (whatsapp-rust#824)#302jlucaso1 wants to merge 1 commit into
Conversation
Adds changelog entry for whatsapp-rust#824 — per-group device list memoized behind a DeviceTopology generation counter. Covers the 3200× warm-send improvement, scoped invalidation, enforced-by-construction write recording, and the shared-store opt-out. https://claude.ai/code/session_01GEtwwd3bRNL1zxiUJtyoVe
📝 WalkthroughWalkthroughThis PR adds documentation for a group device memoization performance optimization released June 10, 2026. It includes a detailed changelog entry explaining memoization strategy, validity conditions, topology tracking, and updates the docs navigation index. ChangesGroup device memoization documentation
Possibly related PRs
Poem
🎯 1 (Trivial) | ⏱️ ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
changelog/2026-06-10-group-devices-memo.mdx (1)
10-40: ⚡ Quick winConsider using active voice and second person per documentation guidelines.
The coding guidelines require active voice and second person ("you") for documentation in MDX files. This changelog uses third person and passive constructions throughout (e.g., "The resolved device list is now memoized" rather than "You can now benefit from memoized device lists" or similar).
While changelogs traditionally use third-person narrative to describe system changes, the project's documentation guidelines explicitly apply to
**/*.{md,mdx}. Consider either:
- Rewriting in active voice with second person to align with guidelines, or
- Clarifying whether changelogs are exempt from the general documentation voice guidelines.
Additionally, several sentences contain multiple ideas that could be split for clarity:
- Line 10: Combines what the system did, what it fed, and the performance cost
- Line 26: Packs invalidation logic, log checking, and re-stamping into one complex sentence
- Line 28: Describes the store configuration, visibility issue, and disabling behavior in one sentence
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@changelog/2026-06-10-group-devices-memo.mdx` around lines 10 - 40, The changelog uses passive/third-person voice; update it to active voice and second person (use "you") or state that changelogs are exempt; reword sentences like the ones describing memoization, scoped invalidation, and shared-store disabling into direct instructions/benefits (e.g., "You get a memoized resolved device list as an Arc<Vec<Jid>> tied to GroupInfo identity"), and split complex sentences (the paragraphs that mention DeviceRegistryCache/LidPnCache tracking, the re-stamp logic checking change logs, and the group_devices_memo_enabled behavior for shared stores) into shorter lines so each idea maps to a single sentence referencing the unique symbols GroupInfo, Arc<Vec<Jid>>, DeviceRegistryCache, LidPnCache, resolve_skdm_targets, group_devices_memo_enabled, and Client to keep readers clear about the specific components and behaviors.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@changelog/2026-06-10-group-devices-memo.mdx`:
- Around line 10-40: The changelog uses passive/third-person voice; update it to
active voice and second person (use "you") or state that changelogs are exempt;
reword sentences like the ones describing memoization, scoped invalidation, and
shared-store disabling into direct instructions/benefits (e.g., "You get a
memoized resolved device list as an Arc<Vec<Jid>> tied to GroupInfo identity"),
and split complex sentences (the paragraphs that mention
DeviceRegistryCache/LidPnCache tracking, the re-stamp logic checking change
logs, and the group_devices_memo_enabled behavior for shared stores) into
shorter lines so each idea maps to a single sentence referencing the unique
symbols GroupInfo, Arc<Vec<Jid>>, DeviceRegistryCache, LidPnCache,
resolve_skdm_targets, group_devices_memo_enabled, and Client to keep readers
clear about the specific components and behaviors.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: f4b56495-a0e3-459c-a2fa-918685f0bfbc
📒 Files selected for processing (2)
changelog/2026-06-10-group-devices-memo.mdxdocs.json
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Summary
changelog/2026-06-10-group-devices-memo.mdxdocumenting the per-group device-list memo introduced in whatsapp-rust#824docs.jsonWhat changed in whatsapp-rust#824
The resolved (LID-converted) device list for group sends is now memoized per group behind a topology generation counter. A warm repeat send to an 800-member group drops from ~514 µs to ~161 ns (~3200×). Key design points covered in the changelog:
DeviceRegistryCache+LidPnCache::addfused withDeviceTopology)GroupInfoArcidentity as a free invalidation signal for membership/metadata changesNo public API changes in the source PR.
https://claude.ai/code/session_01GEtwwd3bRNL1zxiUJtyoVe
Generated by Claude Code
Summary by CodeRabbit