Added
- Plugins can canonicalize a chat id via a new
ctx.engine.canonicalChatId(sessionId, chatId)capability, gated by theengine:readpermission like the other engine reads. It resolves a@lidprivacy id to its stable<phone>@c.usform when the mapping is known (best-effort; an unresolved id passes through), letting a plugin key a chat by one identity across WhatsApp's@lidmigration. This is the host-side prerequisite for an adapter to keep a contact's conversation from splitting when they migrate to@lid. (#615)