ऑप्ट-इन Diagnostics और Phantom Wing

PayCal में एक वैकल्पिक diagnostics layer है जिसे आप नियंत्रित करते हैं। यहां बताया गया है कि यह क्या collect करती है, क्या आपके device पर रहता है, और उसका उपयोग कैसे होता है।

अवलोकन

PayCal में Phantom Wing नाम की built-in diagnostics layer है। Default रूप से यह लगभग पूरी तरह शांत रहती है: यह केवल गंभीर unhandled errors capture करती है और आपकी स्पष्ट opt-in के बिना कुछ भी नहीं भेजती।

अगर आपको समस्या आती है और support के साथ अधिक context share करना है, तो आप Settings - Debugging (Optional) में अतिरिक्त diagnostics enable कर सकते हैं। हर setting independent है; आप केवल relevant setting चालू कर सकते हैं। तीनों default रूप से Off हैं।

तीन opt-in controls

हर control आपकी Settings page के नीचे Debugging (Optional) panel में होता है। ये केवल troubleshooting के लिए हैं; इन्हें चालू करने से browser में extra work होता है और interactions थोड़े धीमे हो सकते हैं।

Setting यह क्या enable करता है कौन देखता है
Console Messages Browser developer console में warnings, informational logs और performance markers लिखता है। Self-diagnosis के लिए DevTools खोलें और [PayCal] prefix वाले messages देखें। केवल आप: browser console, कभी transmit नहीं होता।
Detailed Diagnostics Step-by-step internal event logging enable करता है। Phantom Wing operations के lifecycle को in-memory log में capture करता है जो केवल आपके share किए गए support report में शामिल होता है। केवल आप, जब तक आप support report share न करें।
Network Insights API request timing, response sizes, और batching या caching लागू हुई या नहीं, log करता है। Specific operations की slowness diagnose करने में मदद करता है। केवल आप: browser console, कभी transmit नहीं होता।

Phantom Wing default रूप से क्या करता है

तीनों controls off होने पर भी Phantom Wing एक lightweight baseline monitor चलाता है जो केवल गंभीर failures capture करता है:

  • Uncaught JavaScript exceptions (window.onerror)
  • Unhandled promise rejections
  • Network error से fail होने वाली fetch calls, feature-level handled HTTP errors नहीं

यह baseline data पूरी तरह memory में रहता है और कहीं transmit नहीं होता। Page load पर browser console में एक second की summary दिखती है, फिर discard हो जाती है।

// Baseline output when all clear (console, diagnostics off):
[PHANTOM WING] All clear - no errors or warnings detected.

// Baseline output when issues exist:
[PHANTOM WING] Error Summary
Total issues: 2 across 2 grouped location(s).
WARN 1: FormSubmit timed out after 8000ms
ERROR 1: Uncaught TypeError in calendar renderer

Phantom Wing और telemetry

Phantom Wing में एक lightweight telemetry channel है जो aggregate रूप से feature reliability मापता है, जैसे platform पर किसी operation की unusual failure rate detect करना।

Telemetry क्या भेजती है

  • प्रति घंटे bucket किए गए anonymized event counts, जैसे pw.performance.metrics: count=1, bucket_hour=2026030914
  • Error category और type, पूरा error message या stack trace कभी नहीं
  • कोई user identifiers, session tokens या IP addresses नहीं

Telemetry क्या कभी नहीं भेजती

  • आपका नाम, email या account details
  • Earnings, pay period या financial data
  • Full error messages या stack traces
  • URL paths या query strings
  • Keystrokes या form field values

Rate limiting और back-off

Telemetry submissions server-side per user per minute rate-limited हैं। Client threshold पार करे तो server silently acknowledge करके excess discard करता है; कुछ store नहीं होता। Client exponential back-off भी लगाता है: दो लगातार server-side failures के बाद telemetry submission दस minutes के लिए automatically disable हो जाती है।

// Telemetry payload shape (no personal data):
{
  "type": "pw.performance.metrics",
  "fields": {
    "count": 1,
    "bucket_hour": 2026030914,
    "flush_reason": "timer"
  }
}

Data Redaction

कोई value memory में store या telemetry से transmit होने से पहले Phantom Wing automatic redaction pass लगाता है। Known sensitive patterns match करने वाली values [REDACTED] से replace होती हैं:

  • Email addresses
  • Bearer tokens और authorization header values
  • CSRF tokens
  • Cryptographic keys या minimum length से ऊपर base64 blobs जैसी strings

Redaction intercepted console methods के सभी arguments और queue से पहले सभी telemetry field values पर लागू होती है। Diagnostic settings enable करके इसे bypass नहीं किया जा सकता।

Scope guards: जहां diagnostics suppress होते हैं

Authentication pages (/auth/) पर telemetry submission पूरी तरह suppress होती है। इसका मतलब Network Insights on हो तब भी sign-in, sign-up या recovery flows में telemetry flush नहीं होती। यह defense-in-depth measure credential-adjacent data को diagnostic channels में आने से रोकता है।

आपका control

तीनों diagnostic settings account preferences के रूप में store होती हैं, browser cookies नहीं। वे devices और sessions में आपके account के साथ चलती हैं और हर account, नए accounts सहित, default रूप से Off रहती हैं। आप इन्हें कभी भी Settings - Debugging (Optional) में बदल सकते हैं।

Setting off करने का असर next page load पर तुरंत होता है। Sessions के बीच diagnostic data retain नहीं होता: page छोड़ने या tab बंद करने पर Phantom Wing का in-memory log clear हो जाता है।

सारांश

  1. तीनों debug controls default रूप से Off हैं और आपको उन्हें explicitly enable करना होता है
  2. Console Messages और Network Insights आपके device से बाहर नहीं जाते
  3. Detailed Diagnostics memory में रहता है और केवल support report share करने पर share होता है
  4. Telemetry केवल anonymized aggregate event counts भेजती है: zero personal data
  5. Storage या transmission से पहले सभी values redact होती हैं, settings चाहे जो हों
  6. सभी authentication pages पर telemetry पूरी तरह suppress होती है
  7. Rate limiting और automatic client back-off accidental over-reporting रोकते हैं

Phantom Wing ऐसा बनाया गया है कि आप सभी diagnostics अनिश्चितकाल तक off रख सकें। Opt-in controls इसलिए हैं ताकि कुछ गलत होने पर आप और support team shared language में बात कर सकें, default रूप से data collect करने के लिए नहीं।