जिस दिन Telegram for macOS क्लाइंट के नए ओपन रिपॉजिटरी का लिंक बीटा-टेस्टर्स के साथ साझा किया गया था, उसी दिन क्लाइंट की टीम ने इसमें थर्ड-पार्टी डेवलपर्स के सुधार स्वीकार करना शुरू कर दिया। 25 अक्टूबर को 10:19 UTC तक, TelegramMessenger/telegram-macos में 19 लेखकों से 81 पुल रिक्वेस्ट भेजे गए थे, और उनमें से 30 को मुख्य ब्रांच में मर्ज कर दिया गया है। स्वीकार किए गए सुधार macOS बीटा में कुछ ही घंटों में पहुँच जाते हैं, एक तो एक घंटे से भी कम समय में पहुँच गया। यह उन लोगों पर लागू होता है जो Mac क्लाइंट के बीटा चैनल पर हैं, और उन डेवलपर्स पर जो आधिकारिक क्लाइंट को ठीक करना चाहते हैं, न कि अपना खुद का फोर्क लिखना चाहते हैं।

कितने सुधार भेजे गए और कितने स्वीकार किए गए

पुल रिक्वेस्ट कोड का एक प्रस्तावित सुधार है, जिसे रिपॉजिटरी का मालिक अपनी ब्रांच में मर्ज कर सकता है या अस्वीकार कर सकता है। पहला 23 अक्टूबर को 14:18 UTC पर आया, पहला 17:45 UTC पर मर्ज किया गया: यह #3 है, देशों की सूची में संग्रहणीय नंबरों के लिए समुद्री डाकू झंडे के बजाय एक हीरा। 23 अक्टूबर को 17 पुल रिक्वेस्ट भेजे गए, 24 तारीख को 55, और 25 तारीख के पहले दस घंटों में 9 और।

25 अक्टूबर को 10:19 UTC तक:

स्थितिपुल रिक्वेस्ट
मर्ज किए गए30
बिना मर्ज किए बंद किए गए14
खुले37

मर्ज किए गए सुधार 11 अलग-अलग लेखकों द्वारा भेजे गए थे, कुल मिलाकर 7,307 जोड़ी गई लाइनें और 1,089 हटाई गई लाइनें हैं। सभी 30 को एक ही अकाउंट, macosswift द्वारा मर्ज किया गया था। उनके प्रोफाइल में Telegram macOS नाम, Telegram कंपनी और macos.telegram.org वेबसाइट सूचीबद्ध है। एक लेखक के नौ मर्ज किए गए सुधार codex/ प्रीफिक्स वाली ब्रांच से आए थे, जिसे OpenAI का Codex एजेंट डिफ़ॉल्ट रूप से नाम देता है।

दूसरे दिन कौन से नियम सामने आए

24 अक्टूबर को 16:12 UTC पर, रिपॉजिटरी में CONTRIBUTING.md और एक पुल रिक्वेस्ट टेम्पलेट दिखाई दिए। अब हर एक में चार सेक्शन होने चाहिए: मुख्य परिवर्तन, कारण, एक ही परिदृश्य में "पहले" और "बाद" के स्क्रीनशॉट या वीडियो, और सत्यापन का विवरण। यदि कोई दृश्य परिणाम नहीं है, तो स्क्रीनशॉट के बजाय यह समझाना होगा कि क्यों और सत्यापन का आउटपुट संलग्न करना होगा, और व्यवहार परिवर्तनों के लिए macOS का संस्करण और क्लाइंट का बिल्ड नंबर इंगित करना होगा। किसी भी सेक्शन के बिना या सत्यापन की पुष्टि के बिना चिह्नित पुल रिक्वेस्ट विचार के लिए तैयार नहीं है।

टेम्पलेट उसी शाम लागू होना शुरू हो गया। 17:58 से 18:09 UTC तक, चार पुल रिक्वेस्ट को REJECTED के रूप में चिह्नित करके बंद कर दिया गया: "पहले" और "बाद" के तहत कोई स्क्रीनशॉट या वीडियो नहीं था। 19:31 से 19:36 UTC तक, 11 और पुल रिक्वेस्ट के तहत यही टिप्पणी छोड़ी गई। उन्हें बंद नहीं किया गया, बल्कि पूरक करने के लिए कहा गया, और उनमें से दो को उसी शाम मर्ज कर दिया गया।

किस कारण से अस्वीकार किया जाता है

खाली टेम्पलेट के अलावा, सुधारों को टिप्पणी में स्पष्टीकरण के साथ, सार के आधार पर बंद कर दिया जाता है:

  • #6, फ्लैट साइडबार और पसंदीदा फ़ोल्डर टैब, इंटरफ़ेस और उत्पाद को बदलता है, और टीम "अभी ऐसे परिवर्तनों को लेने की योजना नहीं बना रही है";
  • #13 AI एडिटर बटन को 10वें कैरेक्टर से दिखाता था, जबकि डिज़ाइन के अनुसार यह तीन लाइनों से दिखाई देता है। इनपुट फ़ील्ड इस दौरान 30 पॉइंट ऊपर उछल जाता था। भेजे गए संदेशों को संपादित करने वाले हिस्से को काम करने योग्य माना गया, और इसे #22 में अलग से मर्ज किया गया;
  • #53 ने केवल रूसी स्ट्रिंग्स को मैन्युअल रूप से ठीक किया, जबकि क्लाइंट के अनुवाद translations.telegram.org पर सभी भाषाओं के लिए एक साथ किए जाते हैं;
  • #23, लोकल बिल्ड और एप्लिकेशन साइनिंग: टीम ने बिल्ड और साइनिंग सेटिंग्स को खुद बदलने का वादा किया था, और इस सुधार में CI में बिल्ड टेस्ट टूट गया था;
  • #32 फ़ोल्डरों में उन चैट को दिखाता था जिनमें उपयोगकर्ता सदस्य नहीं था, और #40 खोज को तोड़ देता था। इसके तहत टूटने का स्क्रीनशॉट और वीडियो छोड़ा गया है।

#14 के तहत पहले लिखा गया था कि कोड कंपाइल नहीं होता है, और भेजने से पहले बिल्ड की जांच करने के लिए कहा गया था। बाद में इसे मर्ज कर दिया गया। #75 को भी फ्लोटिंग टैब बार के साथ एक टिप्पणी के साथ वापस कर दिया गया: कई स्विच के बाद अवतार चयन रिंग से अलग हो गया। लेखक ने इसे 07:39 UTC पर ठीक किया, और 08:09 UTC पर सुधार को मर्ज कर दिया गया।

सुधार बीटा तक कैसे पहुँचते हैं

macOS बीटा अपडेट संस्करणों के माध्यम से "Bug fixes, minor improvements, and more" के एक ही फुटनोट के साथ जारी किया जाता है। यह कि बिल्ड में थर्ड-पार्टी सुधार शामिल हैं, इसके बाइनरी से स्पष्ट है: उनके कोड से स्ट्रिंग्स वहां दिखाई देती हैं जहां वे पहले नहीं थीं।

बिल्ड 13.1.0.283377 24 अक्टूबर को 21:27 UTC पर जारी किया गया था। इसमें पहली बार #20 से "Could not load message history" और "Message history pagination did not advance" (चैट निर्यात त्रुटियां अब प्रत्येक चैट के लिए दिखाई जाती हैं, न कि चुपचाप खो जाती हैं), #10 से "Failed to persist the custom application icon at %@" (एप्लिकेशन आइकन बदलना), #2 और #27 से सेवा नाम (अधिसूचना सेटिंग्स) और #16 से (बॉट कमांड) शामिल हैं। ये पांच सुधार 15:50 से 18:45 UTC तक मर्ज किए गए थे, जिसका अर्थ है कि वे 2 घंटे 43 मिनट से 5 घंटे 37 मिनट के भीतर बीटा तक पहुँच गए।

बिल्ड 13.1.0.283380 25 अक्टूबर को 09:06 UTC पर जारी किया गया था, #75 के मर्ज होने के 57 मिनट बाद। इसमें इस सुधार के कोड से TabBarItemControl और SelectionGesture नाम दिखाई दिए।

टीम के कोड का अपना हिस्सा लगभग बीटा तक पहुँच गया है। 23 अक्टूबर को 17:04 UTC पर, "Merge branch 'release' into master (13.1)" कमिट मुख्य ब्रांच में चला गया, Info.plist में बिल्ड नंबर 283305 से बढ़कर 283357 हो गया, दस लाख से अधिक लाइनें जोड़ी गईं। उस समय तक बीटा पहले ही 283368 था। HTMLBubbles मॉड्यूल, जो बीटा में HTML और JavaScript पर संदेशों को रेंडर करता है, अभी भी ओपन कोड में नहीं है, और रिपॉजिटरी में दो स्क्रिप्ट यह जांचती हैं कि यह वहां नहीं पहुंचा है।

क्या पहले ही मर्ज किया जा चुका है

पुल रिक्वेस्टक्या बदलता है
#2Telegram for iOS जैसी अधिसूचना सेटिंग्स: श्रेणियां, अपवाद, प्रतिक्रियाएं
#27कहानियों के बारे में सूचनाएं और कहानियों की सेटिंग्स सेक्शन
#75iOS जैसा फ्लोटिंग टैब बार, इंडिकेटर को खींचा जा सकता है
#36निष्क्रिय सत्रों को स्वचालित रूप से समाप्त करने के लिए "1 वर्ष" की अवधि
#31, #37"फ़ोल्डर से हटाएँ" आइटम और फ़ोल्डर अवतार हटाना
#22भेजे गए संदेश को संपादित करते समय AI एडिटर
#20चैट निर्यात त्रुटियां प्रत्येक चैट के लिए दिखाई देती हैं
#34, #9फोटो कॉपी करने से इमेज क्लिपबोर्ड में आ जाती है, और संदेश तारीख के साथ कॉपी होते हैं
#29, #30इंटरफ़ेस की क्षेत्रीय भाषा में अनुवाद (उदाहरण के लिए, pt-br) और पोल, कार्यों और संपर्क नोट्स में डायक्रिटिक के साथ अक्षरों का इनपुट

#75 में लेखक की एक शर्त है: iOS जैसा इंडिकेटर पर लेंस प्रभाव सुधार में शामिल नहीं किया गया था। iOS में इसे एक बंद UIKit घटक द्वारा खींचा जाता है, जो macOS SDK में नहीं है, और इसे केवल Metal पर अपने स्वयं के रेंडरर के साथ दोहराया जा सकता है।