DebugPilot Privacy Policy

Version: 1.4.0 release source, revised September 9, 2026; not deployed.
Contact: sanjkakkoi@gmail.com

Release review remains open: ENCRYPTION_AT_REST_REVIEW_REQUIRED. No encryption or key-management change has been implemented. A separate technical review and final Store Privacy Audit are required before publication.

DebugPilot records debugging evidence for a page explicitly selected by the user. Clicking Start begins a local session; Stop ends it. It does not continuously monitor every tab or collect browser history outside an active session.

Standard debugging

During an active session, DebugPilot may process and store:

DebugPilot does not intentionally read form values, password fields, cookies, authorization headers, request/response bodies, or clipboard contents in Standard debugging mode. It does not collect full request headers or fetch RemoteObject deep properties. Click capture does not read input/textarea/select values, placeholders, field names, autocomplete attributes, contenteditable content, or aggregate general page text.

Runtime diagnostics retain at most 20 bounded runtime stack frames per exception. Console logs and browser diagnostics may themselves contain sensitive information printed by the website. Full URL values may contain usernames, identifiers, credentials or tokens. Screenshots may contain visible page content, including personal or sensitive information currently visible on the page. These exclusions describe capture mechanisms, not a guarantee that captured text or images can never contain sensitive information.

Advanced Deep Trace

Deep Trace is explicitly enabled by the user and off by default. When off, Start does not inject its agent, install wrappers, discover targets or retrieve source code. When enabled, the same Start first creates ordinary recording and then traces the supplied target. A failed trace start leaves ordinary recording active. Stop ends both.

Deep Trace records target/method names, call relationships, synchronous timing and duration, return type, exceptions, and Call Stack with function names, script/source URLs and line/column positions. DebugPilot 1.4 does not record function arguments or return values. Runtime configuration, page capture and ingestion enforce this even if old settings contain enabled flags. Previously stored development evidence remains viewable locally; it is not rewritten or migrated.

Exception snapshots do not traverse arbitrary thrown value properties. A natively identified Error retains only bounded own data name/message fields and the existing Call Stack; stack accessors and custom properties are not read. A primitive Error cause may be retained; object, array and function causes are summarized without traversal. Thrown strings, numbers and booleans are bounded. Other thrown objects, arrays and functions are recorded only as [Object thrown], [Array thrown] or [Function thrown]. Getters and Proxy internal fields are not read. On engines without native Error branding, objects are conservatively summarized. Legacy development snapshots remain viewable without migration. Error text, ordinary logs, full URLs, screenshots and requested source may still contain sensitive website content; these limits are not a guarantee that financial, health, personal communications or other sensitive text can never appear in evidence.

Call Stack captures at most 20 structured frames per CALL, with a bounded parser fallback of at most 16 KiB inside the 64 KiB event limit. Custom Error.prepareStackTrace formatters are not invoked. A safe writable stackTraceLimit may be temporarily set to 30. The old descriptor is restored only if the current descriptor still matches DebugPilot's temporary definition; a page mutation is preserved. Promise settlement and asynchronous stack stitching are not observed.

Target discovery uses bounded descriptor-safe global paths and exposed loaded module registries. It does not scan all script source or private closures, inject synthetic chunks, or execute speculative modules. Resolving the exact module explicitly named by the user may initialize that module. Not every application's internal functions are accessible.

Detailed Deep Trace evidence stays in local IndexedDB and the local Report, including retained historical traces. It is not included in Copy Context, Issue Package or Full Session HTML exports in 1.4. Source code is not exported.

Source Preview

Source Preview is user initiated by clicking a recorded stack location. It reads JavaScript source available from the attached page through Chrome DevTools Protocol, not by fetching the source URL. It may reveal application/internal code, hardcoded credentials or other sensitive website content.

Only requested source is retrieved. It is not uploaded, automatically shared, written to IndexedDB/session storage, or included in exports. Source uses an ephemeral local cache: at most 16 MiB of full-source string storage, 32 sources and 64 bounded previews. Eviction, service-worker suspension/restart or extension reload can remove it. After a session ends, only previously cached source is available; DebugPilot does not reattach to retrieve missing source. Copy Location copies URL/line/column, not source code.

Local-only use and sharing

There is no backend, cloud storage, account, analytics, telemetry or advertising. Debugging data is not automatically uploaded to the developer or shared with third parties. Data supports only user-initiated debugging, Deep Trace, Source Preview and local reports, not profiling or sale.

Copy Context, Export Issue, Console/Network JSON and offline HTML exports are initiated by the user and may include full captured URLs and sensitive Standard evidence. This report may contain sensitive URL parameters. Share it only with people you trust. Review captured text and screenshots before sharing as well.

The use of information received from Google APIs will adhere to the Chrome Web Store User Data Policy, including the Limited Use requirements. Local-only processing is not an exemption from disclosure or secure-handling requirements.

Retention and deletion

Recent Trace Targets are stored locally per site. Settings and up to five successfully started targets are kept in chrome.storage.local per website origin. Clearing recents affects only the current site's recent targets, not evidence.

The latest 10 terminal sessions (completed or disconnected) are retained locally. Older terminal sessions are pruned with their associated IndexedDB data. Deep Trace retains up to 500 records per session without rolling deletion, within the 200 MB estimated session budget.

Sessions warn at 1 hour 50 minutes and stop at 2 hours. The estimated 200 MB session limit also stops recording; the 100 MB screenshot budget pauses screenshots. Console, Network and Timeline retention limits preserve existing evidence and can reject later records. Limits, dropped counts and stop reasons remain local metadata. Source Preview uses temporary memory rather than session retention.

Removing the extension removes extension-owned local data according to Chrome behavior. Files a user previously exported remain under the user's control.

Changes and contact

Data-practice changes must be reflected in product disclosures, the Store listing and this policy before publication. Questions: sanjkakkoi@gmail.com.