در نسخه بتای تلگرام برای macOS با شماره ساخت 13.1.0.283429 که در تاریخ 1 نوامبر منتشر شد، کارت جزئیات نشست در لیست Active Sessions (نشست‌های فعال) نشان می‌دهد که آیا به حساب کاربری از طریق برنامه رسمی Telegram وارد شده‌اید یا خیر: در کنار نام برنامه، یک علامت تیک به همراه راهنمای «This session is from the official Telegram app» (این نشست از برنامه رسمی تلگرام است) قرار دارد. همچنین، تاریخ و زمان دقیق اولین ورود و آخرین فعالیت، ردیف‌های جداگانه برای Version (نسخه) و OS (سیستم عامل)، و یک دکمه که مکان ورود را روی نقشه نشان می‌دهد، به این بخش اضافه شده‌اند. این تغییر از یک پُل ریکوئست (pull request) از سوی یک توسعه‌دهنده جامعه کاربری نشأت گرفته که در تاریخ 31 اکتبر ادغام (merge) شد. این قابلیت برای همه کسانی که بررسی می‌کنند چه کسی دیگری به حساب کاربری آن‌ها دسترسی دارد، مفید است: در نسخه پایدار 13.1.0 (283357) که در 20 اکتبر منتشر شد، هنوز این کارت جدید وجود ندارد.

چه تغییراتی در کارت جزئیات نشست ایجاد شده است

این کارت با کلیک بر روی یک نشست در بخش تنظیمات، «Privacy and Security» (حریم خصوصی و امنیت)، لیست Active Sessions (نشست‌های فعال) باز می‌شود. پیش از این، شامل مدل دستگاه، ردیف Application (برنامه) که نام و نسخه با کاما از هم جدا شده بودند، IP Address (آدرس IP)، Location (مکان) و سوئیچ‌های چت‌های مخفی و تماس‌ها بود. نسخه سیستم عامل (OS) اصلاً در کارت وجود نداشت. اکنون ردیف‌ها به دو گروه تقسیم شده‌اند.

گروهردیفچه چیزی را نشان می‌دهد
DeviceApplicationنام برنامه و یک علامت تیک، اگر نشست از کلاینت رسمی باشد
DeviceVersionنسخه برنامه، به عنوان مثال 13.1.0 (283402) BETA
DeviceOSسیستم عامل، به عنوان مثال macOS 27.2
ConnectionIP Address و Locationآدرس و کشور به همراه منطقه، دکمه مکان را روی نقشه باز می‌کند
ConnectionFirst Signed Atتاریخ و زمان دقیق ورود نشست به حساب کاربری، با دقت تا ثانیه
ConnectionLast Activeتاریخ و زمان آخرین فعالیت نشست

خود کارت عریض‌تر شده است — 440 نقطه به جای 340 نقطه — زیرا ردیف طولانی Application (برنامه) قبلاً نسخه را به بیرون از کادر هل می‌داد. علامت تیک با رنگ اصلی تم (accent color) نمایش داده می‌شود، نه با رنگی خاص خود. برچسب‌های «First Signed At» و «Last Active» فعلاً در کد به زبان انگلیسی با علامت //TODOLANG تعبیه شده‌اند: ترجمه به زبان‌های دیگر به صورت جداگانه اضافه می‌شود.

مکان روی نقشه بر اساس متن جستجو می‌شود، نه بر اساس مختصات. سرور کشور و منطقه‌ای را که بر اساس IP Address (آدرس IP) شناسایی کرده است، ارسال می‌کند، برنامه این رشته را به ژئوکدر macOS (CLGeocoder، سرویس Apple) منتقل کرده و پیش‌نمایش نقطه یافت شده را باز می‌کند. اگر پیدا نشود، پیام «Couldn't find this location. Please try again.» (این مکان یافت نشد. لطفاً دوباره تلاش کنید.) نمایش داده می‌شود. دقت از این طریق افزایش نمی‌یابد: زیر کارت همچنان نوشته شده است که تخمین مکان بر اساس IP Address (آدرس IP) است و ممکن است اشتباه باشد.

علامت تیک از کجا می‌آید

علامت تیک توسط کلاینت ترسیم می‌شود، اما تصمیم‌گیری بر عهده سرور است. در شیء authorization که API هر نشست را توصیف می‌کند، یک پرچم official_app وجود دارد — «نشست از برنامه رسمی». همچنین date_created، date_active، ip، country، region، نسخه برنامه و سیستم عامل در آنجا قرار دارند — همه چیزهایی که اکنون در کارت نمایش داده می‌شوند. این فیلدها قبلاً نیز توسط API ارائه می‌شدند؛ نویسنده تغییر می‌نویسد که کلاینت‌ها تنها بخش کوچکی از آن‌ها را استفاده می‌کنند.

کلاینت‌های شخص ثالث با شناسه برنامه خود که در my.telegram.org صادر می‌شود، به API متصل می‌شوند و چنین ورودی، حتی اگر کلاینت معتبر باشد، به احتمال زیاد علامت تیک را دریافت نخواهد کرد: مستندات نمی‌گویند که سرور دقیقاً چگونه تشخیص می‌دهد که یک برنامه رسمی است. عدم وجود علامت تیک، دلیلی برای بررسی دقیق‌تر نشست است، نه اثبات هک شدن.

چه باید کرد

  • نشست‌ها را بررسی کنید. در Telegram برای macOS — تنظیمات، «Privacy and Security» (حریم خصوصی و امنیت)، Active Sessions (نشست‌های فعال). در نسخه بتا از 283429 به بعد، برنامه‌های رسمی در کنار نام خود علامت تیک دارند؛ در نسخه پایدار، کارت قدیمی است، اما IP Address (آدرس IP) و Location (مکان) در آن وجود دارد.
  • تاریخ‌ها را مقایسه کنید. ردیف First Signed At نشان می‌دهد که نشست چه زمانی ایجاد شده است. زمان در منطقه زمانی این Mac نمایش داده می‌شود. اگر در آن روز نه در دستگاه جدیدی، نه در نسخه وب، و نه پس از نصب مجدد وارد Telegram نشده‌اید، و Last Active (آخرین فعالیت) جدید است، این دلیلی برای پایان دادن به نشست است.
  • نشست‌های ناشناس را پایان دهید. دکمه Terminate Session (پایان دادن به نشست) در پایین کارت نشست ناشناس، دستگاه را از حساب کاربری خارج می‌کند. یک نشست ناشناس بدون علامت تیک، با برنامه یا کشور ناآشنا، اولین گزینه برای پایان دادن است. از دستگاهی که تازه متصل شده است، نمی‌توان نشست‌های قدیمی را پایان داد: برنامه درخواست می‌کند چند ساعت صبر کنید.
  • رمز عبور ابری را تنظیم کنید. بدون تأیید دو مرحله‌ای، برای ورود جدید تنها یک کد تأیید کافی است؛ با رمز عبور، آن نیز لازم است.

نسخه بتای macOS از طریق فید به‌روزرسانی‌ها توزیع می‌شود. در نسخه پایدار 13.1.0 (283357) کارت جدید وجود ندارد.

چگونه این تغییر وارد نسخه بتا شد

پُل ریکوئست #172 در تاریخ 28 اکتبر توسط یک توسعه‌دهنده جامعه کاربری باز شد و در تاریخ 31 اکتبر در ساعت 20:52 UTC توسط حساب تیم macOS ادغام شد: چهار کامیت، 256 خط اضافه شده، 21 خط حذف شده، پنج فایل. در بررسی، یک خطا پیدا شد: ردیف در نسخه اول «Last Signed At» نام داشت، اما زمان آخرین فعالیت را نشان می‌داد، نه زمان ورود — نشستی که یک سال پیش وارد شده و دو دقیقه پیش باز شده بود، به عنوان یک ورود جدید به نظر می‌رسید. نام ردیف به «Last Active» تغییر یافت.

ساخت 283426 از 31 اکتبر شامل ردیف‌های کارت جدید نیست. در ساخت 283429 از 1 نوامبر، در باینری هم راهنمای مربوط به برنامه رسمی، هم خطای جستجوی مکان، و هم کلاس ردیف SessionDetailRowItem از همان پُل ریکوئست وجود دارد. از زمان ادغام تا انتشار بتا کمتر از یک روز طول کشید. کلاینت برای macOS از زمانی که کدهای منبع آن برای پُل ریکوئست‌های خارجی باز شد، اصلاحات توسعه‌دهندگان جامعه کاربری را می‌پذیرد.

چه چیزهای دیگری در همین نسخه بتا وجود دارد

ساخت 283427 که 40 دقیقه قبل از 283429 منتشر شد، پنل جانبی تم‌ها را برای انجمن‌ها (forums) به ارمغان آورد. در باینری ForumSidebarController، ForumSidebarView، ForumDisplayMode با گزینه‌های نمایش و رشته‌های «All Messages» و «Show Chats» ظاهر شدند. نسخه بتای Telegram برای Android 13.2.0 (7278) از 31 اکتبر همین مورد را اعلام کرد — پنل جانبی در انجمن‌ها، از جمله برای ربات‌ها، در پیام‌های مستقیم کانال‌ها و در «Saved Messages» (پیام‌های ذخیره شده). در کد باز کلاینت برای macOS تا 1 نوامبر هنوز پنل وجود ندارد و صفحه مربوط به آن در ساخت دیده نمی‌شود: ظاهر آن فعلاً فقط از روی نام کلاس‌ها مشخص است.