Opt-in Diagnostics at Phantom Wing

May optional diagnostics layer ang PayCal na ikaw ang kumokontrol. Narito kung ano ang kinokolekta nito, ano ang nananatili sa device mo, at paano ito ginagamit.

Overview

May built-in diagnostics layer ang PayCal na tinatawag na Phantom Wing. Bilang default, halos tahimik ito: kinukuha lang nito ang malulubhang unhandled errors at hindi nagpapadala ng anuman nang wala ang malinaw mong opt-in.

Kung may problema ka at gusto mong magbahagi ng mas maraming context sa support, maaari mong i-enable ang extra diagnostics sa Settings - Debugging (Optional). Independent ang bawat setting; maaari mong i-on ang relevant lang. Default na Off ang tatlo.

Ang tatlong opt-in controls

Nasa Debugging (Optional) panel sa ibaba ng Settings page ang bawat control. Para lang ito sa troubleshooting; maaaring bahagyang bumagal ang interactions dahil may dagdag na trabaho sa browser.

Setting Ano ang ine-enable Sino ang nakakakita
Console Messages Naglalabas ng warnings, informational logs, at performance markers sa browser developer console. Para sa self-diagnosis, buksan ang DevTools at hanapin ang messages na may [PayCal]. Ikaw lang: browser console, hindi kailanman transmitted.
Detailed Diagnostics Nag-e-enable ng step-by-step internal event logging. Kinukuha ng Phantom Wing ang operation lifecycles sa in-memory log na kasama lang sa support report na pipiliin mong i-share. Ikaw lang, maliban kung mag-share ka ng support report.
Network Insights Naglo-log ng API request timing, response sizes, at kung ginamit ang batching o caching. Tumutulong mag-diagnose ng slowness sa specific operations. Ikaw lang: browser console, hindi kailanman transmitted.

Ano ang ginagawa ng Phantom Wing bilang default

Kahit off ang tatlong controls, nagpapatakbo ang Phantom Wing ng lightweight baseline monitor na kumukuha lang ng severe failures:

  • Uncaught JavaScript exceptions (window.onerror)
  • Unhandled promise rejections
  • Fetch calls na nag-fail dahil sa network error, hindi HTTP errors na handled per feature

Ang baseline data na ito ay nananatili lang sa memory at hindi ipinapadala. Ipinapakita ito bilang one-second summary sa browser console sa page load, pagkatapos ay dini-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 at telemetry

May lightweight telemetry channel ang Phantom Wing para sukatin ang feature reliability in aggregate, halimbawa kung may operation na unusually mataas ang failure rate sa platform.

Ano ang ipinapadala ng telemetry

  • Anonymized event counts na naka-bucket kada oras, halimbawa pw.performance.metrics: count=1, bucket_hour=2026030914
  • Error category at type, hindi kailanman full error message o stack trace
  • Walang user identifiers, session tokens, o IP addresses

Ano ang hindi kailanman ipinapadala ng telemetry

  • Pangalan, email, o account details mo
  • Earnings, pay period, o financial data
  • Full error messages o stack traces
  • URL paths o query strings
  • Keystrokes o form field values

Rate limiting at back-off

Rate-limited server-side per user per minute ang telemetry submissions. Kapag lumampas ang client sa threshold, tahimik na ina-acknowledge ng server at dini-discard ang excess; walang naka-store. May exponential back-off din ang client: pagkatapos ng dalawang sunod na server-side failures, awtomatikong dini-disable ang telemetry sa loob ng sampung minuto.

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

Data Redaction

Bago ma-store sa memory o ma-transmit sa telemetry ang anumang value, nag-a-apply ang Phantom Wing ng automatic redaction pass. Ang values na tumutugma sa known sensitive patterns ay pinapalitan ng [REDACTED]:

  • Email addresses
  • Bearer tokens at authorization header values
  • CSRF tokens
  • Strings na mukhang cryptographic keys o mahahabang base64 blobs

Gumagana ang redaction sa lahat ng arguments ng intercepted console methods at lahat ng telemetry field values bago ma-queue. Hindi ito maaaring i-bypass sa pamamagitan ng pag-enable ng diagnostics.

Scope guards: mga page kung saan suppressed ang diagnostics

Ganap na suppressed ang telemetry submission sa authentication pages (/auth/). Kahit naka-on ang Network Insights, walang telemetry na ipinapadala habang nasa sign-in, sign-up, o recovery flows ka. Pinipigilan nitong lumitaw ang credential-adjacent data sa diagnostic channels.

Kontrol mo

Ang tatlong diagnostic settings ay naka-store bilang account preferences, hindi browser cookies. Sumusunod ang mga ito sa account mo across devices at sessions at default na Off para sa bawat account, pati bagong accounts. Maaari mo itong baguhin anumang oras sa Settings - Debugging (Optional).

Agad na e-epekto ang pag-off ng setting sa susunod na page load. Walang diagnostic data na nire-retain between sessions: nililinis ang in-memory log ng Phantom Wing kapag umalis ka sa page o isinara ang tab.

Summary

  1. Default na Off ang tatlong debug controls at kailangan mong i-enable nang malinaw
  2. Hindi umaalis sa device mo ang Console Messages at Network Insights
  3. Nananatili sa memory ang Detailed Diagnostics at na-share lang kung pipiliin mong mag-share ng support report
  4. Anonymized aggregate event counts lang ang ipinapadala ng telemetry: zero personal data
  5. Redacted ang lahat ng values bago storage o transmission, anuman ang diagnostic settings
  6. Ganap na suppressed ang telemetry sa lahat ng authentication pages
  7. Pinipigilan ng rate limiting at automatic client back-off ang accidental over-reporting

Dinisenyo ang Phantom Wing para ligtas mong maiwang off ang lahat ng diagnostics nang walang hanggan. Ang opt-in controls ay para magkaroon kayo ng support team ng shared language kapag may mali, hindi para mangolekta ng data by default.