Mainstream messaging
BlueBubbles से आ रहे हैं
BlueBubbles समर्थन हटा दिया गया है। OpenClaw अब iMessage का समर्थन केवल बंडल किए गए imessage Plugin के माध्यम से करता है, जो JSON-RPC पर steipete/imsg को संचालित करता है और उसी निजी API सतह तक पहुँचता है जो BlueBubbles के पास थी (react, edit, unsend, reply, sendWithEffect, नेटिव पोल, समूह प्रबंधन, अटैचमेंट)। एक CLI बाइनरी BlueBubbles सर्वर + क्लाइंट ऐप + Webhook व्यवस्था की जगह लेती है: कोई REST एंडपॉइंट नहीं, कोई Webhook प्रमाणीकरण नहीं।
यह मार्गदर्शिका पुराने channels.bluebubbles कॉन्फ़िगरेशन को channels.imessage में माइग्रेट करती है। कोई अन्य समर्थित माइग्रेशन पथ नहीं है। वर्तमान OpenClaw में बचा हुआ channels.bluebubbles ब्लॉक निष्क्रिय रहता है — कोई रनटाइम इसे नहीं पढ़ता।
माइग्रेशन चेकलिस्ट
जब आपको अपना पुराना BlueBubbles कॉन्फ़िगरेशन पहले से पता हो, तो सबसे छोटा सुरक्षित पथ:
- Messages.app चलाने वाले Mac पर सीधे
imsgसत्यापित करें (imsg chats,imsg history,imsg send,imsg rpc --help)। channels.bluebubblesसे व्यवहार कुंजियाँchannels.imessageमें कॉपी करें:dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups,includeAttachments,attachmentRoots,mediaMaxMb,textChunkLimit,coalesceSameSenderDms, औरactions।- अब मौजूद न रहने वाली ट्रांसपोर्ट कुंजियाँ हटाएँ:
serverUrl,password, Webhook URL और BlueBubbles सर्वर सेटअप। - यदि Gateway Messages Mac पर नहीं चल रहा है, तो
channels.imessage.cliPathको SSH रैपर पर सेट करें और रिमोट अटैचमेंट प्राप्त करने के लिएremoteHostसेट करें। channels.imessageसक्षम करें, Gateway पुनः आरंभ करें, फिरopenclaw channels status --probe --channel imessageचलाएँ।- एक DM, एक अनुमत समूह, सक्षम होने पर अटैचमेंट और प्रत्येक निजी API क्रिया का परीक्षण करें जिसका एजेंट से उपयोग करवाना अपेक्षित है।
- iMessage पथ सत्यापित होने के बाद BlueBubbles सर्वर और पुराना
channels.bluebubblesकॉन्फ़िगरेशन हटा दें।
imsg क्या करता है
imsg Messages के लिए एक स्थानीय macOS CLI है। OpenClaw imsg rpc को चाइल्ड प्रोसेस के रूप में शुरू करता है और stdin/stdout पर JSON-RPC के माध्यम से संचार करता है। एक्सपोज़ करने के लिए कोई HTTP सर्वर, Webhook URL, बैकग्राउंड डेमन, लॉन्च एजेंट या पोर्ट नहीं है।
- रीड-ओनली SQLite हैंडल का उपयोग करके
~/Library/Messages/chat.dbसे रीड किए जाते हैं। - लाइव इनबाउंड संदेश
imsg watch/watch.subscribeसे आते हैं, जो पोलिंग फ़ॉलबैक के साथchat.dbफ़ाइल सिस्टम इवेंट का अनुसरण करता है। - सामान्य टेक्स्ट और फ़ाइल भेजने के लिए Messages.app ऑटोमेशन का उपयोग किया जाता है।
- उन्नत क्रियाएँ Messages.app में
imsgसहायक को इंजेक्ट करने के लिएimsg launchका उपयोग करती हैं। इसी से रीड रिसीट, टाइपिंग संकेतक, रिच सेंड, संपादन, भेजना वापस लेना, थ्रेडेड उत्तर, टैपबैक, पोल और समूह प्रबंधन उपलब्ध होते हैं। - Linux बिल्ड कॉपी किए गए
chat.dbका निरीक्षण कर सकते हैं, लेकिन भेज नहीं सकते, लाइव Mac डेटाबेस पर नज़र नहीं रख सकते या Messages.app को संचालित नहीं कर सकते। OpenClaw iMessage के लिए, साइन-इन किए हुए Mac पर या उस Mac तक पहुँचने वाले SSH रैपर के माध्यम सेimsgचलाएँ।
शुरू करने से पहले
-
Messages.app चलाने वाले Mac पर
imsgइंस्टॉल करें:bash brew install steipete/tap/imsgbrew update && brew upgrade imsgimsg --versionimsg chats --limit 3सामान्य स्थानीय सेटअप के लिए, OpenClaw सेटअप साइन-इन किए हुए Messages Mac पर
imsgके लिए उपयोगकर्ता द्वारा पुष्टि किया गया Homebrew इंस्टॉल या अपडेट प्रस्तुत कर सकता है। मैन्युअल सेटअप और SSH-रैपर टोपोलॉजी का प्रबंधन ऑपरेटर के पास रहता है: उसी स्थानीय या रिमोट उपयोगकर्ता संदर्भ में Homebrew अपडेट दोहराएँ जिसमेंimsgचलेगा। यदिimsg chats,unable to open database file, खाली आउटपुट याauthorization deniedके साथ विफल होता है, तोimsgलॉन्च करने वाले टर्मिनल, एडिटर, Node प्रोसेस, Gateway सेवा या SSH पैरेंट प्रोसेस को Full Disk Access दें, फिर उस पैरेंट प्रोसेस को दोबारा खोलें। -
OpenClaw कॉन्फ़िगरेशन बदलने से पहले रीड, वॉच, सेंड और RPC सतहों को सत्यापित करें:
bash imsg chats --limit 10 --json | jq -simsg history --chat-id 42 --limit 10 --attachments --json | jq -simsg watch --chat-id 42 --reactions --jsonimsg send --chat-id 42 --text "OpenClaw imsg test"imsg rpc --help42कोimsg chatsसे प्राप्त वास्तविक चैट आईडी से बदलें। भेजने के लिए Messages.app की Automation अनुमति आवश्यक है। यदि OpenClaw SSH के माध्यम से चलेगा, तो ये कमांड उसी SSH रैपर या उपयोगकर्ता संदर्भ के माध्यम से चलाएँ जिसका OpenClaw उपयोग करेगा। यदि रीड काम करते हैं लेकिन AppleEvents-1743के साथ भेजना विफल होता है, तो जाँचें कि Automation/usr/libexec/sshd-keygen-wrapperपर लागू हुआ है या नहीं; SSH रैपर से भेजना AppleEvents -1743 के साथ विफल होता है देखें। -
निजी API ब्रिज सक्षम करें। OpenClaw iMessage के लिए इसकी पुरज़ोर अनुशंसा की जाती है क्योंकि उत्तर, टैपबैक, इफ़ेक्ट, पोल, अटैचमेंट उत्तर और समूह क्रियाएँ इस पर निर्भर करती हैं:
bash imsg launchimsg status --jsonimsg launchके लिए SIP अक्षम होना आवश्यक है (और आधुनिक macOS पर लाइब्रेरी सत्यापन को शिथिल करना भी आवश्यक है — imsg निजी API सक्षम करना देखें)। मूलभूत सेंड, हिस्ट्री और वॉचimsg launchके बिना काम करते हैं; पूर्ण OpenClaw iMessage क्रिया सतह काम नहीं करती। -
channels.imessageसक्षम करने और Gateway शुरू करने के बाद, OpenClaw के माध्यम से ब्रिज को सत्यापित करें:bash openclaw channels status --probeiMessage खाते को
worksरिपोर्ट करना चाहिए;--jsonके साथ, प्रोब पेलोड मेंprivateApi.available: trueशामिल होता है। यदि यहfalseरिपोर्ट करता है, तो पहले उसे ठीक करें — क्षमता पहचान देखें। प्रोबिंग के लिए पहुँच योग्य Gateway आवश्यक है (अन्यथा CLI केवल कॉन्फ़िगरेशन आउटपुट पर फ़ॉलबैक करता है) और यह केवल कॉन्फ़िगर किए गए, सक्षम खातों को प्रोब करता है। -
अपने कॉन्फ़िगरेशन का स्नैपशॉट बनाएँ:
bash cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
कॉन्फ़िगरेशन रूपांतरण
iMessage और BlueBubbles अधिकांश चैनल-स्तरीय व्यवहार कुंजियाँ साझा करते हैं। ट्रांसपोर्ट (REST सर्वर बनाम स्थानीय CLI) और समूह रजिस्ट्री कुंजी का प्रारूप बदलता है।
| BlueBubbles | बंडल किया गया iMessage | टिप्पणियाँ |
|---|---|---|
channels.bluebubbles.enabled |
channels.imessage.enabled |
समान अर्थ-विज्ञान (ब्लॉक मौजूद होने पर डिफ़ॉल्ट true)। |
channels.bluebubbles.serverUrl |
(हटाया गया) | कोई REST सर्वर नहीं — Plugin, stdio पर imsg rpc आरंभ करता है। |
channels.bluebubbles.password |
(हटाया गया) | Webhook प्रमाणीकरण की आवश्यकता नहीं है। |
| (अंतर्निहित) | channels.imessage.cliPath |
imsg का पथ (डिफ़ॉल्ट imsg); SSH के लिए रैपर स्क्रिप्ट का उपयोग करें। |
| (अंतर्निहित) | channels.imessage.dbPath |
वैकल्पिक Messages.app chat.db ओवरराइड; छोड़े जाने पर स्वतः पता लगाया जाता है। |
| (अंतर्निहित) | channels.imessage.remoteHost |
host या user@host — केवल तब आवश्यक है जब cliPath एक SSH रैपर हो और आपको SCP से अटैचमेंट प्राप्त करने हों। |
channels.bluebubbles.dmPolicy |
channels.imessage.dmPolicy |
समान मान (pairing / allowlist / open / disabled); डिफ़ॉल्ट pairing। |
channels.bluebubbles.allowFrom |
channels.imessage.allowFrom |
समान हैंडल प्रारूप (+15555550123, user@example.com)। पेयरिंग-स्टोर की स्वीकृतियाँ स्थानांतरित नहीं होतीं — नीचे देखें। |
channels.bluebubbles.groupPolicy |
channels.imessage.groupPolicy |
समान मान (allowlist / open / disabled); डिफ़ॉल्ट allowlist। |
channels.bluebubbles.groupAllowFrom |
channels.imessage.groupAllowFrom |
समान। सेट न होने पर iMessage, allowFrom पर फ़ॉलबैक करता है; स्पष्ट रूप से रिक्त groupAllowFrom: [], groupPolicy: "allowlist" के अंतर्गत सभी समूहों को अवरुद्ध करता है। |
channels.bluebubbles.groups |
channels.imessage.groups |
"*" वाइल्डकार्ड प्रविष्टि को अक्षरशः कॉपी करें; प्रति-समूह प्रविष्टियों को संख्यात्मक iMessage chat_id के अनुसार नई कुंजी दें — "समूह रजिस्ट्री का खतरनाक पहलू" देखें। requireMention, tools, toolsBySender, systemPrompt यथावत लागू होते हैं। |
channels.bluebubbles.sendReadReceipts |
channels.imessage.sendReadReceipts |
डिफ़ॉल्ट true। बंडल किए गए Plugin में यह केवल तभी सक्रिय होता है जब निजी API जाँच चालू हो। |
channels.bluebubbles.includeAttachments |
channels.imessage.includeAttachments |
समान संरचना, समान रूप से डिफ़ॉल्टतः बंद। यदि BlueBubbles पर अटैचमेंट आ रहे थे, तो इसे स्पष्ट रूप से सेट करें — ऐसा करने तक आने वाली फ़ोटो/मीडिया चुपचाप छोड़ दी जाती हैं (कोई Inbound message लॉग पंक्ति नहीं)। |
channels.bluebubbles.attachmentRoots |
channels.imessage.attachmentRoots |
स्थानीय रूट; समान वाइल्डकार्ड नियम। |
| (लागू नहीं) | channels.imessage.remoteAttachmentRoots |
केवल तब उपयोग किया जाता है जब SCP द्वारा प्राप्ति के लिए remoteHost सेट हो। |
channels.bluebubbles.mediaMaxMb |
channels.imessage.mediaMaxMb |
iMessage पर डिफ़ॉल्ट 16 MB (BlueBubbles का डिफ़ॉल्ट 8 MB था)। निचली सीमा बनाए रखने के लिए इसे स्पष्ट रूप से सेट करें। |
channels.bluebubbles.textChunkLimit |
channels.imessage.textChunkLimit |
दोनों पर डिफ़ॉल्ट 4000। |
channels.bluebubbles.coalesceSameSenderDms |
channels.imessage.coalesceSameSenderDms |
समान वैकल्पिक सक्षमकरण। केवल DM — समूहों में प्रति-संदेश प्रेषण बना रहता है। जब तक messages.inbound.byChannel.imessage या वैश्विक messages.inbound.debounceMs सेट न हो, यह डिफ़ॉल्ट इनबाउंड डिबाउंस को 7000 ms तक बढ़ाता है। विभाजित-प्रेषण वाले DM को एकत्रित करना देखें। |
channels.bluebubbles.enrichGroupParticipantsFromContacts |
(लागू नहीं) | imsg, chat.db से प्रेषक के प्रदर्शन नाम पहले ही दिखाता है। |
channels.bluebubbles.actions.* |
channels.imessage.actions.* |
समान प्रति-क्रिया टॉगल (reactions, edit, unsend, reply, sendWithEffect, renameGroup, setGroupIcon, addParticipant, removeParticipant, leaveGroup, sendAttachment) और नया polls। सभी डिफ़ॉल्ट रूप से सक्षम हैं; निजी API क्रियाओं के लिए अब भी ब्रिज आवश्यक है। |
बहु-अकाउंट कॉन्फ़िगरेशन (channels.bluebubbles.accounts.*), channels.imessage.accounts.* में एक-से-एक रूपांतरित होते हैं।
समूह रजिस्ट्री का खतरनाक पहलू
बंडल किया गया iMessage Plugin लगातार दो समूह गेट चलाता है। एजेंट तक पहुँचने के लिए समूह संदेश को दोनों से गुजरना आवश्यक है:
- प्रेषक / चैट-लक्ष्य अनुमति-सूची (
channels.imessage.groupAllowFrom) — प्रेषक हैंडल या चैट लक्ष्य (chat_id:,chat_guid:,chat_identifier:प्रविष्टियाँ) से मिलान करती है। जबgroupAllowFromसेट नहीं हो, तो यह गेटallowFromपर फ़ॉलबैक करता है; स्पष्टgroupAllowFrom: []उस फ़ॉलबैक को अक्षम करता है औरgroupPolicy: "allowlist"के अंतर्गत प्रत्येक समूह संदेश को छोड़ देता है। - समूह रजिस्ट्री (
channels.imessage.groups) — संख्यात्मक iMessagechat_idद्वारा कुंजीबद्ध:- कोई
groupsब्लॉक नहीं (या रिक्त ब्लॉक): जब तक गेट 1 में प्रभावी प्रेषक अनुमति-सूची रिक्त न हो, समूह इस गेट से गुजरते हैं; प्रेषक फ़िल्टरिंग पहुँच नियंत्रित करती है और स्टार्टअप पर सभी को छोड़ने की चेतावनी सक्रिय नहीं होती। groupsमें प्रविष्टियाँ हों लेकिन"*"न हो: केवल सूचीबद्धchat_idकुंजियाँ गुजरती हैं। किसी भी समूह को सूचीबद्ध करने से रजिस्ट्री,groupPolicy: "open"के अंतर्गत भी अनुमति-सूची बन जाती है।groups: { "*": { ... } }: प्रत्येक समूह इस गेट से गुजरता है।
- कोई
माइग्रेशन का जाल: BlueBubbles ने groups प्रविष्टियों को चैट GUID / चैट पहचानकर्ता द्वारा कुंजीबद्ध किया था, जबकि iMessage रजिस्ट्री संख्यात्मक chat_id द्वारा कुंजीबद्ध होती है। अक्षरशः कॉपी की गई प्रति-समूह प्रविष्टियाँ ऐसी गैर-रिक्त रजिस्ट्री बनाती हैं जिसकी कुंजियाँ कभी मेल नहीं खातीं, इसलिए प्रत्येक समूह संदेश गेट 2 पर छोड़ दिया जाता है। "*" वाइल्डकार्ड को अक्षरशः कॉपी करें; विशिष्ट समूह प्रविष्टियों को imsg chats से प्राप्त chat_id मानों के साथ नई कुंजी दें।
दोनों ड्रॉप पथ डिफ़ॉल्ट लॉग स्तर पर warn पंक्तियों के माध्यम से दिखाई देते हैं:
- स्टार्टअप पर प्रति अकाउंट एक बार, जब
groupPolicy: "allowlist"सेट हो और प्रभावी समूह प्रेषक अनुमति-सूची रिक्त हो:imessage: groupPolicy="allowlist" for account "<id>" but no group sender allowlist is configured ...। प्रेषकों को अनुमति देने के लिएgroupAllowFrom(याallowFrom) सेट करें; केवलgroupsजोड़ने से प्रेषक गेट संतुष्ट नहीं होता। - रनटाइम पर प्रति
chat_idएक बार, जब रजिस्ट्री किसी समूह को छोड़ती है:imessage: dropping group message from chat_id=<id> ... not in channels.imessage.groups allowlist, जिसमें जोड़ने के लिए सटीक कुंजी बताई जाती है।
दोनों स्थितियों में DM काम करते रहते हैं — वे अलग कोड पथ अपनाते हैं, इसलिए DM की सफलता समूह रूटिंग को प्रमाणित नहीं करती।
groupPolicy: "allowlist" वाला न्यूनतम प्रेषक-सीमित कॉन्फ़िगरेशन:
{ channels: { imessage: { groupPolicy: "allowlist", groupAllowFrom: ["+15555550123", "chat_guid:any;-;..."], }, },}यह कॉन्फ़िगर किए गए प्रेषकों को किसी भी समूह में अनुमति देता है। अनुमत चैट का दायरा सीमित करने या requireMention जैसे प्रति-चैट विकल्प सेट करने के लिए groups प्रविष्टियाँ जोड़ें; BlueBubbles की "*" प्रविष्टि अक्षरशः कॉपी करें, लेकिन विशिष्ट प्रविष्टियों को संख्यात्मक iMessage chat_id मानों के साथ नई कुंजी दें।
चरण-दर-चरण
-
कॉन्फ़िगरेशन रूपांतरित करें। संपादन के दौरान नया ब्लॉक अक्षम रखें; वर्तमान OpenClaw पुराने
channels.bluebubblesब्लॉक को अनदेखा करता है और वह संदर्भ के रूप में साथ रह सकता है:json5 { channels: { imessage: { enabled: false, // कटओवर के लिए तैयार होने पर true करें cliPath: "/opt/homebrew/bin/imsg", dmPolicy: "pairing", allowFrom: ["+15555550123"], // bluebubbles.allowFrom से कॉपी करें groupPolicy: "allowlist", groupAllowFrom: [], // bluebubbles.groupAllowFrom से कॉपी करें groups: { "*": { requireMention: true } }, // वाइल्डकार्ड हूबहू कॉपी होता है; प्रत्येक चैट की प्रविष्टि को chat_id के अनुसार फिर से कुंजीबद्ध करें // क्रियाएँ डिफ़ॉल्ट रूप से सक्षम हैं; अक्षम करने के लिए अलग-अलग टॉगल false पर सेट करें }, },} -
कटओवर करें और जाँचें।
channels.imessage.enabled: trueसेट करें, Gateway को पुनः आरंभ करें और पुष्टि करें कि चैनल स्वस्थ रिपोर्ट होता है:bash openclaw gateway restartopenclaw channels status --probe --channel imessage # "works" अपेक्षित है; --json privateApi.available: true दिखाता हैजाँच के लिए पहुँच योग्य Gateway आवश्यक है और यह केवल कॉन्फ़िगर किए गए, सक्षम खातों की जाँच करती है। स्वयं Mac को सत्यापित करने के लिए शुरू करने से पहले में दिए गए सीधे
imsgकमांड का उपयोग करें। -
DM सत्यापित करें। एजेंट को सीधा संदेश भेजें; पुष्टि करें कि उत्तर पहुँचता है।
-
समूहों को अलग से सत्यापित करें। DM और समूह अलग-अलग कोड पथ अपनाते हैं — DM की सफलता यह सिद्ध नहीं करती कि समूहों की रूटिंग हो रही है। किसी अनुमत समूह चैट में संदेश भेजें और पुष्टि करें कि उत्तर पहुँचता है। यदि समूह शांत हो जाता है (एजेंट का कोई उत्तर या त्रुटि नहीं), तो ऊपर दिए गए "समूह रजिस्ट्री की आम चूक" के दो
warnसंदेशों के लिए Gateway लॉग जाँचें। स्टार्टअप चेतावनी का अर्थ है कि प्रभावी प्रेषक अनुमति-सूची खाली है; प्रत्येकchat_idकी चेतावनी का अर्थ है कि भरी हुईgroupsरजिस्ट्री में वह चैट मौजूद नहीं है। -
क्रिया सतह सत्यापित करें। किसी युग्मित DM से एजेंट को प्रतिक्रिया देने, संपादित करने, भेजा हुआ संदेश वापस लेने, उत्तर देने, फ़ोटो भेजने और (समूह में) समूह का नाम बदलने या किसी प्रतिभागी को जोड़ने/हटाने के लिए कहें। प्रत्येक क्रिया Messages.app में मूल रूप से पूरी होनी चाहिए। यदि कोई क्रिया
iMessage <action> requires the imsg private API bridgeत्रुटि देती है, तोimsg launchफिर से चलाएँ औरopenclaw channels status --probeसे रीफ़्रेश करें। -
iMessage के DM, समूह और क्रियाएँ सत्यापित हो जाने के बाद BlueBubbles सर्वर और
channels.bluebubblesब्लॉक हटाएँ। OpenClawchannels.bluebubblesको नहीं पढ़ता।
क्रिया समानता एक नज़र में
| क्रिया | पुराना BlueBubbles | बंडल किया गया iMessage |
|---|---|---|
| टेक्स्ट भेजना / SMS फ़ॉलबैक | ✅ | ✅ |
| मीडिया भेजना (फ़ोटो, वीडियो, फ़ाइल, आवाज़) | ✅ | ✅ |
थ्रेड वाला उत्तर (reply_to_guid) |
✅ | ✅ (#51892 को बंद करता है) |
Tapback (react) |
✅ | ✅ |
| संपादित करना / भेजा संदेश वापस लेना (macOS 13+ प्राप्तकर्ता) | ✅ | ✅ |
| स्क्रीन प्रभाव के साथ भेजना | ✅ | ✅ (#9394 का एक भाग बंद करता है) |
| रिच टेक्स्ट बोल्ड / इटैलिक / रेखांकित / स्ट्राइकथ्रू | ✅ | ✅ (attributedBody के माध्यम से टाइप्ड-रन फ़ॉर्मेटिंग) |
| मूल Messages मतदान (बनाना और वोट देना) | ❌ | ✅ (actions.polls; मूल रेंडरिंग के लिए प्राप्तकर्ताओं को iOS/macOS 26+ चाहिए) |
| समूह का नाम बदलना / समूह आइकन सेट करना | ✅ | ✅ |
| प्रतिभागी जोड़ना / हटाना, समूह छोड़ना | ✅ | ✅ |
| पठन रसीदें और टाइपिंग संकेतक | ✅ | ✅ (निजी API जाँच पर निर्भर) |
| समान-प्रेषक DM का एकीकरण | ✅ | ✅ (केवल DM; channels.imessage.coalesceSameSenderDms के माध्यम से वैकल्पिक) |
| पुनः आरंभ के बाद इनबाउंड पुनर्प्राप्ति | ✅ | ✅ (स्वचालित: since_rowid रीप्ले + GUID डिडुप्लीकेशन; स्थानीय पर अधिक विस्तृत अवधि) |
Gateway बंद रहने के दौरान छूटे संदेशों को iMessage पुनर्प्राप्त करता है: स्टार्टअप पर यह अंतिम प्रेषित rowid से imsg watch.subscribe since_rowid के माध्यम से रीप्ले करता है, GUID के आधार पर डुप्लिकेट हटाता है और पुरानी बैकलॉग आयु-सीमा Push-flush "बैकलॉग बम" को रोकती है। यह imsg RPC कनेक्शन पर चलता है, इसलिए दूरस्थ SSH cliPath सेटअप के लिए भी काम करता है; स्थानीय सेटअप को अधिक विस्तृत पुनर्प्राप्ति अवधि मिलती है क्योंकि वे chat.db पढ़ सकते हैं। ब्रिज या Gateway पुनः आरंभ होने के बाद इनबाउंड पुनर्प्राप्ति देखें।
युग्मन, सत्र और ACP बाइंडिंग
- अनुमति-सूचियाँ हैंडल के अनुसार स्थानांतरित होती हैं।
channels.imessage.allowFromउन्हीं+15555550123/user@example.comस्ट्रिंग को पहचानता है जिनका BlueBubbles उपयोग करता था — उन्हें हूबहू कॉपी करें। - युग्मन स्टोर की स्वीकृतियाँ स्थानांतरित नहीं होतीं। युग्मन स्टोर प्रत्येक चैनल के लिए अलग है और पुराने BlueBubbles स्टोर को कुछ भी माइग्रेट नहीं करता। जिन प्रेषकों को केवल युग्मन के माध्यम से स्वीकृत किया गया था, उन्हें iMessage के अंतर्गत एक बार फिर युग्मन करना होगा या उनके हैंडल
allowFromमें जोड़ने होंगे। - सत्र प्रत्येक एजेंट + चैट तक सीमित रहते हैं। डिफ़ॉल्ट
session.dmScope=mainके अंतर्गत DM एजेंट के मुख्य सत्र में समाहित हो जाते हैं; समूह सत्र प्रत्येकchat_id(agent:<agentId>:imessage:group:<chat_id>) के लिए अलग रहते हैं। BlueBubbles सत्र कुंजियों के अंतर्गत पुराना वार्तालाप इतिहास iMessage सत्रों में स्थानांतरित नहीं होता। match.channel: "bluebubbles"को संदर्भित करने वाली ACP बाइंडिंग को"imessage"में बदलना होगा।match.peer.idके प्रारूप (chat_id:,chat_guid:,chat_identifier:, केवल हैंडल) समान हैं।
कोई रोलबैक चैनल नहीं
वापस स्विच करने के लिए कोई समर्थित BlueBubbles रनटाइम नहीं है। यदि iMessage सत्यापन विफल हो जाता है, तो channels.imessage.enabled: false सेट करें, Gateway को पुनः आरंभ करें, imsg अवरोधक ठीक करें और कटओवर का पुनः प्रयास करें।
उत्तर कैश SQLite Plugin स्थिति में रहता है। मौजूद होने पर openclaw doctor --fix पुराने imessage/reply-cache.jsonl साइडकार को आयात और संग्रहीत करता है।
संबंधित
- BlueBubbles को हटाना और imsg iMessage पथ — संक्षिप्त घोषणा और ऑपरेटर सारांश।
- iMessage — पूर्ण iMessage चैनल संदर्भ, जिसमें
imsg launchसेटअप और क्षमता पहचान शामिल हैं। /channels/bluebubbles— पुराना URL, जो इस माइग्रेशन मार्गदर्शिका पर रीडायरेक्ट करता है।- युग्मन — DM प्रमाणीकरण और युग्मन प्रवाह।
- चैनल रूटिंग — Gateway आउटबाउंड उत्तरों के लिए चैनल कैसे चुनता है।