یہ Core کی سائڈبار میں Plugins ← Server Diagnostics ← Hash & Checksum کی ترتیب سے شامل ہے۔ اسے SSH سیشن یا ڈاؤن لوڈ شدہ پلگ اِن کی ضرورت نہیں۔ تمام رن ٹائم کوڈ، ٹیسٹس اور فکسچرز app/ میں ہیں؛ ماڈیول ساتھ والی ریپوزٹریز پر منحصر نہیں۔ ریپوزٹری میں doc.md نہیں، اس لیے یہ دستاویز اور دونوں README نفاذ کی وضاحت کرتے ہیں۔
صارف کا ورک فلو
ہوسٹ نیم، IPv4، IPv6 یا HTTP(S)/WS(S) URL درج کریں۔ اسکیم کے بغیر ہوسٹ نیمز/IPs پہلے سے HTTPS استعمال کرتے ہیں؛ واضح URLs درخواست کے دوران اپنا راستہ، کیوری اور پورٹ برقرار رکھتے ہیں۔ URLs میں اسناد، غیر معاون اسکیمز، خالی جگہ/کنٹرول حروف اور شیل جیسے ہوسٹ نیمز مسترد کیے جاتے ہیں۔ IPv6 لفظی پتے خودکار طور پر بریکٹ میں رکھے جاتے ہیں؛ scoped/link-local زون شناخت کنندے URL پارسر سپورٹ نہیں کرتا۔
Auto (پہلے IPv4، ورنہ IPv6)، IPv4، IPv6 یا Both (دونوں) منتخب کریں۔ کسی مخصوص موجودہ جواب کے انتخاب کے لیے پتے ریزولو کریں۔ جائزہ تمام ریزولو شدہ جوابات دکھاتا ہے؛ جانچیں منتخب پتے یا ہر مطلوبہ فیملی کے ایک پتے کو آزماتی ہیں۔ دونوں فیملیز آزادانہ ناپی جاتی ہیں۔ صرف AAAA کی موجودگی کبھی کام کرتی IPv6 کنیکٹیویٹی کا مطلب نہیں۔
Run Diagnostics (تشخیص چلائیں) DNS، ping، traceroute، HTTP، کمپریشن، TLS اور منتخب TCP پورٹس چلاتا ہے۔ WebSocket صراحتاً فعال کرنا ہوتا ہے۔ ہر ٹول کا الگ Run/Stop (چلائیں/روکیں) کنٹرول بھی ہے۔ ایک وقت میں صرف ایک تشخیصی رن فعال ہو سکتا ہے۔ مکمل رن کا مطلب ہے کہ ٹولز ختم ہو گئے، یہ نہیں کہ ہر جانچ کامیاب ہوئی۔ کوئی مجموعی «سرور آف لائن» فیصلہ نہیں دیا جاتا۔
ٹائم آؤٹ، پیکٹس کی تعداد، تکرار، زیادہ سے زیادہ hops، DNS ریزولور، پروٹوکول کا انتخاب، warm کنکشن اور HTTP/HTTPS موازنہ قابلِ ترتیب ہیں۔ ہدف بدلنے سے پہلے منتخب IP صاف ہو جاتا ہے۔ تاریخ کے ذریعے Core کے مقامی ڈائیلاگز سے دوبارہ کھولنا، دو رپورٹس کا موازنہ، حذف کرنا، JSON امپورٹ، کاپی یا JSON/CSV/TXT ایکسپورٹ کیا جا سکتا ہے۔ لائٹ/ڈارک/سسٹم تھیم تشخیصی حصے پر لاگو ہوتی ہے اور موجودہ UI کنفیگریشن میں محفوظ ہوتی ہے۔ CZ/DE/EN فوراً ایپلیکیشن کی زبان کی پیروی کرتا ہے۔
اجزاء اور پروٹوکول کا رویہ
| جزو | نفاذ اور تشریح |
|---|---|
common.js |
اہداف/آپشنز، حدود اور enum قدروں کی توثیق؛ IDNA تبدیلی؛ عددی اعداد و شمار نامعلوم قدروں کو خارج کرتے ہیں۔ |
dnsDiagnostics.js |
سسٹم پتے کی ریزولوشن OS کنفیگریشن اور hosts فائلوں کی پاسداری کے لیے dns.lookup استعمال کرتی ہے۔ ریکارڈ کیوریز dns.getServers() یا صراحتاً منتخب حسبِ ضرورت/عوامی ریزولور کے مقابلے میں محدود UDP DNS استعمال کرتی ہیں، اور کٹے ہوئے جوابات کے لیے TCP پر واپس جاتی ہیں۔ عوامی DNS پر کوئی ضمنی منتقلی نہیں۔ |
processTools.js |
OS کے ping/traceroute کو آرگیومنٹ ارے اور shell: false، محدود آؤٹ پٹ، واضح ٹائم آؤٹ اور abort/kill صفائی کے ساتھ چلاتا ہے۔ پروسیس کے دورانیے کو RTT سمجھنے کی بجائے پیکٹ جوابات اور hops پارس کرتا ہے۔ |
httpDiagnostics.js |
HTTP/1.1، HTTP/2 اور HTTP/3 کے لیے شامل curl؛ سخت سرٹیفکیٹ تصدیق اور طے شدہ IP فیملی۔ ہر ورژن آزادانہ مانگا جاتا ہے؛ اصل ورژن ریکارڈ ہوتا ہے۔ |
socketDiagnostics.js |
واضح TLS ورژن جانچیں، محدود TCP کنکشنز/غیر فعال بینرز، موجودہ ssh2 انحصار سے تصدیق سے پہلے SSH ہوسٹ کلید کا مشاہدہ، اور اختیاری RFC 6455 Upgrade توثیق۔ |
diagnosticsService.js |
ٹولز چلاتا اور منسوخ کرتا ہے، پتے منتخب/توثیق کرتا ہے، پیش رفت اسٹریم کرتا ہے، جزوی پیمائشیں محفوظ رکھتا ہے اور رن کی آخری مہلت کا ذمہ دار ہے۔ |
historyStore.js |
ورژن شدہ محدود مقامی تاریخ، ڈیٹا چھپانا، اسکیمہ جانچ کے ساتھ امپورٹس اور ناپے گئے ڈیٹا کی ایکسپورٹس۔ |
ICMP اور راستے
Ping پہلے سے چار الگ الگ چلنے والی ICMP echo درخواستیں بھیجتا ہے۔ نتائج میں ہر پیکٹ کا ناپا گیا RTT، موصول/بھیجے گئے کی گنتی، ضیاع، کم از کم/اوسط/زیادہ سے زیادہ، آبادی کا معیاری انحراف، مسلسل ناپے گئے RTTs کے درمیان مطلق فرق کا اوسط (jitter)، پرنٹ ہونے پر TTL/Hop Limit اور ٹائم اسٹیمپس شامل ہیں۔ <1 ms جواب کو عددی RTT گھڑنے کی بجائے بالائی حد کے ساتھ موصول شمار کیا جاتا ہے۔ نامعلوم RTTs تاخیر کے اعداد و شمار سے خارج ہوتے ہیں۔ اعداد و شمار زیادہ سے زیادہ 500 پیکٹس کی محفوظ ونڈو استعمال کرتے ہیں؛ بھیجے/موصول/ضیاع کی گنتی پورے رن کا احاطہ کرتی ہے۔ گراف آخری 200 مشاہدات دکھاتے ہیں، جوابات، ریزولوشن سے کم جوابات، گمشدہ جوابات اور واضح درخواست/پروسیس ٹائم آؤٹس کے لیے الگ علامتوں کے ساتھ۔
گمشدہ جواب ICMP فلٹرنگ، پیکٹ کے ضیاع یا ٹائم آؤٹ کی عکاسی کر سکتا ہے؛ یہ مشاہدات کسی فائر وال کی حتمی شناخت نہیں کر سکتے۔ گمشدہ ایگزیکیوٹیبلز، مقامی اجازت کی ناکامیاں اور غلط ٹول کالز الگ ٹول خرابیاں ہیں، پیکٹ کا ضیاع یا سرور کی عدم دستیابی نہیں۔ مراعات میں اضافے کی کوئی درخواست نہیں کی جاتی۔
Traceroute hops، پتے، انفرادی جانچیں، اوسط اور بغیر جواب جانچوں کا مشاہدہ شدہ فیصد اسٹریم کرتا ہے۔ ریورس DNS راستے کے بعد منتخب ریزولور سے ریزولو ہوتا ہے۔ تکرار مشاہدہ شدہ hop پتوں کی ترتیب کا موازنہ کرتی ہے؛ فرق لوڈ بیلنسنگ کی عکاسی کر سکتے ہیں۔ جواب نہ دینے والے درمیانی hops ٹوٹا ہوا راستہ ثابت نہیں کرتے۔ خام جانچ میٹا ڈیٹا اور طریقہ قابلِ توسیع تفصیلات میں دکھائی دیتا ہے۔ macOS پر traceroute کے انتظار کے اوقات مکمل سیکنڈز میں ہونے چاہییں؛ مؤثر گول کیا گیا ٹائم آؤٹ ریکارڈ ہوتا ہے۔
DNS
بارہ ریکارڈ اقسام A، AAAA، CNAME، MX، NS، TXT، SOA، SRV، CAA، PTR، DS اور DNSKEY ہیں۔ DNS wire فارمیٹ کی پارسنگ ٹرانزیکشن/سوال کی شناخت، ریکارڈ سائزز، کمپریشن پوائنٹر لوپس اور پیغام کی حدود کی جانچ کرتی ہے۔ جوابات ریکارڈ TTLs، کیوری کا وقت، ریزولور اور NXDOMAIN/NODATA/SERVFAIL/refused/timeout حالتیں محفوظ رکھتے ہیں۔ OS پتے کی تلاش TTL فراہم نہیں کر سکتی؛ الگ ریکارڈ کیوری کر سکتی ہے۔
CNAME کی پیروی سائیکل کی نشاندہی کے ساتھ آٹھ لنکس تک محدود ہے۔ مستقل مزاجی کی جانچ منتخب ریزولور سے A/AAAA جوابات دہراتی ہے اور IP لفظی DNS ٹیسٹس کے لیے آگے سے تصدیق شدہ PTR کرتی ہے۔ بدلے ہوئے جوابات مشاہدات ہیں، DNS خرابی کا ثبوت نہیں۔ SRV کیوریز ہدف کا نام جیسا دیا گیا ویسا استعمال کرتی ہیں؛ ضرورت ہو تو _service._tcp.example.org جیسا سروس نام درج کریں۔ DNSSEC ہمیشہ غیر توثیق شدہ رہتا ہے۔ DS/DNSKEY کی موجودگی اور حتیٰ کہ ریزولور کا AD فلیگ بھی کبھی آزاد توثیق نہیں سمجھا جاتا۔
HTTP، کارکردگی اور کمپریشن
HTTP/1.1 کو صرف تب معاون مانا جاتا ہے جب وہی ورژن حقیقتاً واپس ہو۔ HTTPS HTTP/2 کے لیے طے شدہ h2 درکار ہے؛ کسی واپسی پر نیا لیبل نہیں لگایا جاتا۔ غیر خفیہ HTTP/2، prior knowledge استعمال کرتا ہے، HTTP/1.1 Upgrade جانچ نہیں۔ TLS تصدیق ہر HTTP/WebSocket درخواست کے لیے سخت رہتی ہے۔
دستی ری ڈائریکٹس آٹھ تک محدود ہیں؛ لوپس، غلط منازل اور ضرورت سے زیادہ ری ڈائریکٹس واضح طور پر ناکام ہوتے ہیں۔ مکمل سلسلہ ڈومینز کے پار تبدیلیاں اور HTTPS سے تنزلی ریکارڈ کرتا ہے؛ اسکیم اور www کی تبدیلیاں ماخذ/منزل URLs میں نظر آتی ہیں۔ اسناد اور غیر HTTP(S) ری ڈائریکٹ اسکیمز مسترد ہوتی ہیں۔ ہر کراس ہوسٹ ری ڈائریکٹ منتخب ریزولور اور مطلوبہ IP فیملی کے ذریعے آزادانہ ریزولو ہوتا ہے۔
پیمائشوں میں DNS (جب کیا جائے)، TCP، TLS، حتمی جواب کا TTFB، DNS/ری ڈائریکٹس سمیت مجموعی TTFB، ڈاؤن لوڈ، ری ڈائریکٹ اور کل حقیقی وقت، حقیقی entity بائٹس، منتقلی کی رفتار، حیثیت، جواب کے ہیڈرز، سرور کا حقیقی پتہ/پورٹ، ALPN اور کنکشن کے تصدیق شدہ دوبارہ استعمال شامل ہیں۔ طے شدہ یا دوبارہ استعمال شدہ کنکشن پر نہ کیے گئے DNS/TCP/TLS مراحل N/A ہوتے ہیں، جعلی صفر نہیں۔ QUIC کا کوئی TCP مرحلہ نہیں؛ اس کا ہینڈ شیک الگ ریکارڈ ہوتا ہے۔ ہیڈر منتقلی یا مکمل wire اوور ہیڈ کو entity بائٹس کی پیمائش نہیں کہا جاتا۔ یہ سرور/نیٹ ورک کے اوقات ہیں، صفحہ رینڈرنگ یا Lighthouse اسکورز نہیں۔
ہر منتخب پروٹوکول وہی ہدف اور تکرار استعمال کرتا ہے۔ IPv4/IPv6 اور HTTP/HTTPS واضح موازنہ آپشنز ہیں۔ متبادل اسکیم اپنا پہلے سے طے شدہ پورٹ استعمال کرتی ہے۔ ہر پروٹوکول ہر نمونے کے لیے شامل کلائنٹ کا آزاد پروسیس شروع کرتا ہے۔ کنکشن کے دوبارہ استعمال کا دعویٰ نہیں کیا جاتا۔ کل وقت کے اعداد و شمار میں کم از کم/اوسط/وسطانیہ/زیادہ سے زیادہ/قریب ترین درجے والا P95 اور الگ ٹرانسپورٹ/پروٹوکول خرابی کی شرح شامل ہیں؛ HTTP حیثیت کوڈز نظر آتے رہتے ہیں چاہے سرور کامیابی سے 4xx/5xx جواب دے۔
کمپریشن identity، gzip، deflate، br اور (رن ٹائم کی معاونت ہو تو) zstd کو الگ Accept-Encoding درخواستوں کے طور پر بھیجتا ہے۔ Content-Encoding کا مطابق ہونا اور محدود ڈی کمپریشن کا کامیاب ہونا ضروری ہے۔ تناسب صرف تب نکالا جاتا ہے جب ڈی کوڈ شدہ مواد کا ہیش، حتمی URL اور حیثیت identity بیس لائن سے مطابقت رکھیں۔ نظرانداز کی گئی انکوڈنگز غیر معاون ہیں؛ بدلتے/متحرک مواد کا کوئی تناسب نہیں۔ یہ اسی URL/حیثیت کا مشاہدہ ہے، سرور کی عالمگیر معاونت نہیں۔
سیکیورٹی ہیڈرز کی جانچ HSTS، CSP، X-Content-Type-Options، Referrer-Policy، Permissions-Policy اور X-Frame-Options کی موجودگی اور قدر دکھاتی ہے۔ CSP کی frame-ancestors ہدایت آخری ہیڈر کی جگہ لے سکتی ہے۔ موجودگی یہ ثابت نہیں کرتی کہ پالیسی درست کنفیگر ہے یا ویب سائٹ محفوظ ہے۔
HTTP/3 کی ضروریات اور ثبوت
HTTP/1.1، HTTP/2 اور HTTP/3 ایک ہی شامل curl کلائنٹ استعمال کرتے ہیں۔ macOS arm64 اور Linux x64 پر curl 8.22.0، OpenSSL 3.5.9، nghttp2 1.70.0، ngtcp2 1.25.0 اور nghttp3 1.18.0 استعمال ہوتے ہیں۔ Windows x64 پر curl.se کی سرکاری curl-for-win 8.22.0_3 اسٹیٹک بلڈ، LibreSSL 4.3.3 اور وہی HTTP لائبریریاں استعمال ہوتی ہیں۔ سسٹم curl پر انحصار، رن ٹائم ڈاؤن لوڈ یا ایڈمنسٹریٹر کی اجازت کی ضرورت نہیں۔ Windows کی دوبارہ تیار ہو سکنے والی اپ اسٹریم بلڈ ترکیب یہ ہے: https://github.com/curl/curl-for-win/tree/9d77e31e .
پیکجنگ سے پہلے python3 scripts/native/build.py (Windows پر: python scripts/native/build.py) سے بلڈ کریں۔ macOS/Linux کے لیے C/C++ ٹولز، CMake، Ninja، Perl، make اور pkg-config درکار ہیں۔ سورسز ورژن اور اپ اسٹریم SHA-256 کے ذریعے scripts/native/dependencies.lock.json میں طے ہیں۔ اسکرپٹ ہر ڈاؤن لوڈ کی تصدیق کرتا ہے، تیسرے فریق کی ٹرانسپورٹ لائبریریوں کو اسٹیٹک طور پر لنک کرتا ہے اور HTTP2/HTTP3/SSL خصوصیات کے بغیر ناکام ہو جاتا ہے۔ صرف آپریٹنگ سسٹم کی لائبریریاں ڈائنامک رہتی ہیں۔ Windows طے شدہ سرکاری بائنری آرکائیو استعمال کرتا ہے، مقامی طور پر کمپائل کیا گیا Windows ٹرانسپورٹ اسٹیک نہیں۔ شامل CA فائل کا اپنا طے شدہ ہیش ہے؛ اجزاء کے لائسنس اور اپ اسٹریم بلڈ کا ماخذ رن ٹائم کے ساتھ فراہم ہوتے ہیں۔
کلائنٹ اور ٹرسٹ اسٹور app.asar سے باہر resources/native-runtime/<platform>-<arch>/ میں انسٹال ہوتے ہیں۔ ہر تشخیص استعمال سے پہلے اجزاء کے ہیش، آرکیٹیکچر اور ایگزیکیوٹیبل کی صلاحیتوں کی تصدیق کرتی ہے۔ کنفیگ فائلیں، پراکسیز، TLS اعتماد کے ماحولیاتی اوور رائیڈز اور لائبریری انجیکشن متغیرات خارج ہیں۔ curl مطلق راستے، غیر فعال شیل، تصدیق شدہ CA اعتماد، صراحتاً طے شدہ IP فیملی، کوکیز کے بغیر، خودکار ری ڈائریکٹس کے بغیر اور محدود آؤٹ پٹ اور وقت کے ساتھ چلتا ہے۔ ری ڈائریکٹس کی توثیق اور دوبارہ ریزولوشن ایپلیکیشن کرتی ہے۔ 443 کے علاوہ پورٹس پر HTTPS معاون ہے۔
HTTP/3 --http3-only استعمال کرتا ہے اور اس کی تصدیق صرف ایسی مکمل منتقلی کے بعد ہوتی ہے جو HTTP ورژن 3 اور کامیاب سرٹیفکیٹ تصدیق کی اطلاع دے۔ 404 جیسے HTTP خرابی کے جوابات پروٹوکول کی تصدیق کر سکتے ہیں۔ Alt-Svc ایک اعلان ہے، ثبوت نہیں۔ QUIC کا وقت ختم ہونا، سرٹیفکیٹ کی ناکامی، DNS کی ناکامی، کنکشن مسترد ہونا، غیر مطابق پروٹوکول اور اجزاء کی ناکامی الگ الگ رہتے ہیں۔ UDP کا وقت ختم ہونے سے سرور کی معاونت غیر مصدقہ رہتی ہے۔ QUIC ہینڈ شیک کا وقت TCP وقت کے طور پر رپورٹ نہیں کیا جاتا۔
ہر پیمائش الگ پروسیس/کنکشن شروع کرتی ہے۔ warm آپشن شامل کلائنٹ کے لیے کنکشن کے دوبارہ استعمال کا دعویٰ نہیں کرتا۔ اس سے پروٹوکول کا موازنہ یکساں رہتا ہے۔ رپورٹس میں رن ٹائم ورژنز، صلاحیتیں، TLS تصدیق اور QUIC وقت شامل ہوتے ہیں، جبکہ تاریخ/ایکسپورٹ مواد، URL کیوریز اور تصدیقی ہیڈرز ہٹا دیتے ہیں۔
ٹرانسپورٹ اسٹیک یا CA ٹرسٹ اسٹور اپ ڈیٹ کرتے وقت یہ طے شدہ قدریں اپ ڈیٹ کریں اور ہر معاون پلیٹ فارم کے لیے دوبارہ بلڈ کریں۔ شائع شدہ فائلیں اور سورس اسنیپ شاٹس ناقابلِ تغیر ہیں۔
Core IPC
Preload صرف window.chjCore.diagnostics فراہم کرتا ہے؛ تمام ہینڈلرز موجودہ مرکزی ونڈو بھیجنے والے کی جانچ برقرار رکھتے ہیں اور نیٹ ورک کا کام مرکزی پروسیس میں رہتا ہے۔ نتائج { ok: true, value } یا { ok: false, error: { code, message } } استعمال کرتے ہیں۔
| چینل / preload طریقہ | پے لوڈ / نتیجہ |
|---|---|
diagnostics:resolve / resolve(options) |
توثیق شدہ ہدف/ترتیبات ← ہدف اور ریزولو شدہ پتے۔ زیادہ سے زیادہ دو بیک وقت ریزولوشن درخواستیں۔ |
diagnostics:start / start(options) |
توثیق شدہ ہدف/ترتیبات/ٹول کا انتخاب ← مبہم جاب ID اور ابتدائی رپورٹ۔ |
diagnostics:cancel / cancel(id, tool?) |
ایک فعال/قطار میں موجود ٹول یا پورا رن منسوخ کریں۔ |
diagnostics:get / get(id) |
کسی معلوم رن یا محفوظ رپورٹ کا اسنیپ شاٹ۔ |
diagnostics:history / history() |
مقامی تاریخ کے خلاصے۔ |
diagnostics:removeHistory / removeHistory(id) |
منتخب تاریخی آئٹم ہٹائیں۔ |
diagnostics:copy / copy(id, format) |
مرکزی پروسیس ایک معلوم، چھپائے گئے ڈیٹا والی رپورٹ کلپ بورڈ پر لکھتا ہے۔ |
diagnostics:export / export(id, format) |
مقامی سیو ڈائیلاگ کے ذریعے JSON/CSV/TXT؛ renderer فائل سسٹم کا راستہ فراہم نہیں کر سکتا۔ |
diagnostics:import / import() |
مقامی فائل پِکر، سائز/اسکیمہ/گہرائی کی توثیق اور محفوظ کرنے سے پہلے ڈیٹا چھپانا۔ |
diagnostics:progress / onProgress(callback) |
ریزولو شدہ پتے، ٹول کا آغاز/تکمیل، پیکٹس، hops، HTTP نمونے اور تکمیل؛ رکنیت ختم کرنے کا callback واپس کرتا ہے۔ |
کوئی عمومی شیل، فائل سسٹم یا نیٹ ورک API فراہم نہیں کیا جاتا۔ سیاق کی علیحدگی، sandbox، غیر فعال Node انٹیگریشن اور موجودہ renderer CSP فعال رہتے ہیں۔ موجودہ پلگ اِن معاہدے اور اپ ڈیٹر کی تصدیق/استثنیٰ تبدیل نہیں ہوئے۔
بجٹ اور مقامی ڈیٹا
- ایک رن، دو فعال ٹولز، ہر ٹول کے لیے زیادہ سے زیادہ دو IP فیملی جانچیں؛ TCP مزید ہر پتے کو چار کنکشنز تک محدود کرتا ہے۔
- فی عمل ٹائم آؤٹ 250–30000 ms؛ 1–100 پیکٹس، 1–20 تکرار، 1–40 hops، 1–16 پورٹس۔ عام رنز پانچ منٹ پر اور مسلسل ping تیس منٹ پر رکتے ہیں۔ traceroute ذیلی پروسیس پر مزید 180 سیکنڈ کی حد ہے۔
- پروسیس آؤٹ پٹ عام طور پر 256 KiB؛ HTTP entity مواد 2 MiB؛ ڈی کمپریس شدہ مواد 8 MiB؛ HTTP ہیڈرز محدود؛ کوئی جوابی مواد تاریخ میں داخل نہیں ہوتا۔
- زیادہ سے زیادہ 500 پیکٹس/پیش رفت ایونٹس، میموری میں پانچ رنز، تیس تاریخی رپورٹس اور 10 MiB تاریخ رکھی جاتی ہے۔ تاریخ
<userData>/diagnostics/history.json(موڈ 0600) پر موجودہ نجی جوہری رائٹر استعمال کرتی ہے۔ - امپورٹس زیادہ سے زیادہ 2 MiB، اسکیمہ 1، محدود نیسٹنگ اور توثیق شدہ نتائج کے مجموعوں کے ساتھ۔ CSV خانے escape کیے جاتے ہیں اور فارمولا سابقے غیر مؤثر بنائے جاتے ہیں۔ URL کیوریز/فریگمنٹس، اسناد، کوکیز، تصدیقی ہیڈرز اور خام مواد محفوظ/کاپی/ایکسپورٹ کی گئی رپورٹس سے خارج ہیں۔ خام تفصیلات ناپا گیا منظم ڈیٹا دکھاتی ہیں، پیکٹ کیپچر یا محفوظ جوابی مواد نہیں۔
- کوئی کلاؤڈ ہم آہنگی، خودکار لاگ اِن، سرور کنفیگریشن میں تبدیلی یا جارحانہ/غیر محدود اسکیننگ نہیں۔ صارف ہدف/پورٹس/ریزولور صراحتاً منتخب کرتا ہے۔
پلیٹ فارم کی ضروریات اور تصدیق
| پلیٹ فارم | ICMP | راستہ | دیگر پروٹوکولز |
|---|---|---|---|
| Windows 10/11 | ping.exe -4/-6 |
tracert.exe -4/-6، ICMP |
HTTP/2 اور HTTP/3 کے ساتھ شامل curl.exe۔ مقامی زبان والے RTT فیلڈز لفظ “time” پر منحصر نہیں۔ |
| macOS | /sbin/ping، /sbin/ping6 |
/usr/sbin/traceroute، /usr/sbin/traceroute6، UDP؛ مکمل سیکنڈز میں انتظار |
HTTP/2 اور HTTP/3 کے ساتھ شامل curl۔ |
| Ubuntu/Linux | iputils ping -4/-6 |
معیاری traceroute -4/-6، UDP |
HTTP/2 اور HTTP/3 کے ساتھ شامل curl؛ گمشدہ ICMP/راستہ ٹولز الگ رپورٹ کیے جاتے ہیں۔ |
کوئی نیا npm انحصار شامل نہیں کیا گیا۔ نفاذ Node کے بلٹ اِن ماڈیولز اور ایپلیکیشن کا موجودہ ssh2 استعمال کرتا ہے۔ یہ نہ سسٹم ٹولز انسٹال کرتا ہے اور نہ انتظامی حقوق مانگتا ہے۔ فائر والز اور UDP پابندیاں کسی ٹیسٹ کو معاونت ثابت کرنے سے روک سکتی ہیں؛ انہیں صرف ٹائم آؤٹ سے اخذ نہیں کیا جا سکتا۔
خودکار احاطہ diagnosticsCore.test.js، diagnosticsNetwork.test.js، diagnosticsHttp.test.js اور diagnosticsIpc.test.js میں ہے: توثیق/IPv6 لفظی پتے، مقامی DNS UDP+TCP فکسچرز، گمشدہ/دوہری فیملی جوابات اور ریزولور خرابیاں، CNAME/مستقل مزاجی، OS آرگیومنٹ/پارسنگ فکسچرز، محدود حقیقی چائلڈ پروسیسز، بلاک شدہ ICMP مشاہدات، حقیقی مقامی HTTP/1.1 اور TLS h2، ری ڈائریکٹس/مواد کی حدود/ٹائم آؤٹس/دوبارہ استعمال، کمپریشن فعال/نظرانداز، HTTP3 صلاحیتیں/کامیاب نتیجے کی پارسنگ/واپسی کا انکار، مقامی CA اعتماد/عدم مطابقت/میعاد ختم ہونا اور حقیقی IPv6 HTTP/HTTPS، TCP کنکشن/انکار/فرضی ٹائم آؤٹ، حقیقی WebSocket اور تصدیق سے پہلے SSH ہینڈ شیکس، منسوخی/صفائی/جزوی نتائج، آف لائن حالت، نجی تاریخ کا محفوظ کر کے دوبارہ پڑھنا/امپورٹ کا انکار/ایکسپورٹس، قابلِ اعتماد IPC اور preload سبسکرپشنز۔
npm test عوامی ٹیسٹ سرورز کے بغیر قطعی ٹیسٹس چلاتا ہے۔ npm run test:diagnostics:ui گرافیکل Electron ڈیسک ٹاپ میں پروڈکشن UI/preload/IPC اور حقیقی مقامی HTTP/کمپریشن جانچوں کے ساتھ scripts/smokeDiagnostics.js چلاتا ہے۔ غیر متعلقہ سروسز صرف اس ٹیسٹ ہارنیس میں فرضی/آف لائن ہوتی ہیں۔ یہ نیویگیشن کی ترتیب، پروٹوکول نتائج، استقلال، CZ/DE/EN، دونوں تھیمز، تنگ ونڈو میں اوور فلو اور sandbox ترجیحات چیک کرتا ہے۔ اگر شیل ELECTRON_RUN_AS_NODE سیٹ کرتا ہے تو اس کمانڈ کے لیے اسے ہٹا دیں۔
موجودہ رن ٹائم تصدیق کنٹرول شدہ QUIC منتقلیاں، IPv4/IPv6، غیر پہلے سے طے شدہ پورٹ پر HTTPS، 404 جوابات، TLS ناکامیاں اور Alt-Svc کا اعلان کرنے والی صرف TCP سروس کا احاطہ کرتی ہے۔ ہر بلڈ کے نتائج ہر ریلیز کے ساتھ فراہم کیے جاتے ہیں۔
واضح اختیاری حدود: کوئی آزاد DNSSEC توثیق نہیں (مکمل توثیقی ریزولور/trust anchor لائف سائیکل درکار ہے)، کوئی Lighthouse آڈٹ نہیں (صرف سرور/نیٹ ورک کے اوقات)، کوئی فرسودہ TLS آڈٹ یا منسوخی/CT سروس نہیں، HTTP3 warm دوبارہ استعمال کا کوئی دعویٰ نہیں، اور HTTP/3 warm دوبارہ استعمال کی کوئی پیمائش نہیں۔ غیر معاون صلاحیتیں فرضی بنانے کی بجائے دکھائی جاتی ہیں۔
اس تبدیلی کی فائلیں
بنائی گئیں: src/main/diagnostics/ میں سات سروس فائلیں؛ src/renderer/diagnostics.js، diagnosticsI18n.js، diagnostics.css؛ چار test/diagnostics*.test.js فائلیں؛ test/fixtures/diagnostics/ کے تحت پانچ فائلیں؛ scripts/smokeDiagnostics.js؛ یہ دستاویز۔
شامل/اپ ڈیٹ کی گئیں: src/main/index.js، src/main/ipc/registerCoreIpc.js، src/preload/corePreload.js، src/renderer/index.html، app.js، i18n.js، package.json، app/README.md، روٹ README.md، .gitignore (عوامی فکسچرز کے چار استثنیٰ)، اور روٹ gitleaks اجازت فہرست جو جان بوجھ کر عوامی TLS ٹیسٹ کلید فکسچر کا محدود نام لیتی ہے۔ دستخطی CA کی نجی کلید ضائع کر دی گئی؛ ایپلیکیشن کا رن ٹائم یہ فکسچر کبھی استعمال نہیں کرتا۔