Privacy Policy

Chat Branch Visualizer

How we handle data when the extension encounters a problem.
Last updated: March 11, 2026

TL;DR

1. What we collect

Chat Branch Visualizer does not collect data during normal operation. Data is only transmitted when the extension's parser fails to read the page (for example, after a platform update changes the page structure). In that case, the following diagnostic fields are sent:

Fields included in a diagnostic report
  • platform — "chatgpt" or "claude"
  • extensionVersion / selectorVersion — version strings
  • url — the page URL, truncated to 240 characters
  • reason — why parsing failed (e.g. no_turns_detected)
  • probe.hits / probe.broken — which CSS selectors matched or failed
  • domSummary — a compact list of tag names, test-IDs, and class names (no text content)
  • activePath / visiblePath — up to 4 turn objects containing: turn index, branch index, role ("user"/"assistant"), and a 120-character text signature (first characters of a message, used only to identify which turn failed)
  • turnCount — total number of turns detected
  • ts — Unix timestamp of the report
What is never collected
  • Full conversation content or chat history
  • Your name, email address, or account information
  • Authentication tokens or cookies
  • Browsing history outside of ChatGPT / Claude pages
  • Any data from pages other than chatgpt.com and claude.ai

2. How we use diagnostic data

Diagnostic reports are used exclusively to detect when a platform update has broken the extension's DOM parser, and to create or update a GitHub issue so a fix can be released. Reports are not used for advertising, profiling, or any commercial purpose.

To prevent duplicate noise, the same breakage signature is suppressed from being reported more than once every 30 minutes from the same browser session.

3. Where data goes

When a report is sent, it travels from your browser to our Vercel API endpoint (chat-branch-visualizer.vercel.app/api/reports), which sanitizes and forwards it as a repository_dispatch event to the extension's GitHub repository. A GitHub Actions workflow then creates or updates an issue with the aggregated signal.

No other third parties receive your data.

4. Chrome permissions used

  • sidePanel — opens the branch visualizer in Chrome's native side panel.
  • tabs — routes messages between the content script and the side panel for the active tab; no tab data is stored or transmitted.
  • storage — saves your UI preferences (zoom level, "do not ask again" flag) locally in Chrome.
  • clipboardWrite — lets you copy a diagnostic snapshot to clipboard when you click "Copy Diagnostics".

5. Your control

Automatic diagnostic reporting can be turned off at any time. Open the extension side panel and click the ⋯ More menu. The Send diagnostics toggle shows the current state — click it to switch between On and Off. Setting it to Off stops all outbound network requests from the extension.

Because diagnostic reports contain no personally identifiable information and are processed automatically without persistent user records, there is no individual data to retrieve or delete. If you have concerns about a specific report, contact us (see below) with the approximate timestamp and we will remove the corresponding GitHub issue content.

6. Children's privacy

This extension is not directed at children under 13. We do not knowingly collect any information from children.

7. Changes to this policy

If we make material changes to what data is collected or how it is used, we will update the "Last updated" date above and increment the extension version. Continued use of the extension after an update constitutes acceptance of the revised policy.


Contact

Questions about this policy? Open an issue on the GitHub repository or email lucidpht@gmail.com.