Skip to content

Commit 4415502

Browse files
authored
Merge branch 'master' into auto-fix/issue-22-chatgpt-turn-fallback
2 parents a2f657f + c1cbb42 commit 4415502

3 files changed

Lines changed: 41 additions & 163 deletions

File tree

.github/workflows/codex-gate.yml

Lines changed: 0 additions & 127 deletions
This file was deleted.

README.md

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1+
<div align="center">
2+
13
# Chat Branch Visualizer
24

35
**Visualize your ChatGPT and Claude conversation branches as an interactive tree — in Chrome's native side panel.**
46

5-
[![Chrome Web Store](https://img.shields.io/badge/Chrome%20Web%20Store-v0.2.0-blue?logo=googlechrome&logoColor=white)](https://chromewebstore.google.com/detail/chat-branch-visualizer/mahknjdihdpeceompocgcclnmjikmncb)
7+
[![Chrome Web Store](https://img.shields.io/badge/Chrome%20Web%20Store-v0.3.1-blue?logo=googlechrome&logoColor=white)](https://chromewebstore.google.com/detail/chat-branch-visualizer/mahknjdihdpeceompocgcclnmjikmncb)
68
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
79

10+
</div>
11+
812
---
913

1014
## What it does
1115

1216
Every time you regenerate a response or edit a message in ChatGPT or Claude, the conversation splits into a new branch. These branches are invisible by default — Chat Branch Visualizer makes them a navigable tree.
1317

14-
- **Branch tree** — renders every user and assistant turn as a node graph
15-
- **Build full tree** — auto-traverses all branches to build a complete map
16-
- **Navigate** — click any node to jump to that point in the conversation
17-
- **Fit / Zoom / Locate** — pan and zoom freely; jump to your current position
18-
- **Snapshot** — restores your last tree when you reopen a tab
19-
- **Standalone viewer** — pop the tree out into a full tab
18+
| Feature | Description |
19+
|---------|-------------|
20+
| **Branch tree** | Renders every user and assistant turn as an interactive node graph |
21+
| **Build full tree** | Auto-traverses all branches to build a complete map |
22+
| **Navigate** | Click any node to jump to that point in the conversation |
23+
| **Fit / Zoom / Locate** | Pan and zoom freely; jump to your current position with one click |
24+
| **Snapshot** | Restores your last tree when you reopen a tab |
2025

2126
Supports **ChatGPT** (chatgpt.com) and **Claude** (claude.ai).
2227

@@ -25,15 +30,19 @@ Supports **ChatGPT** (chatgpt.com) and **Claude** (claude.ai).
2530
## Install
2631

2732
**From the Chrome Web Store (recommended)**
33+
2834
[Add to Chrome](https://chromewebstore.google.com/detail/chat-branch-visualizer/mahknjdihdpeceompocgcclnmjikmncb)
2935

3036
**Load unpacked (development)**
3137

32-
1. Clone this repo
33-
2. Open `chrome://extensions`
34-
3. Enable **Developer mode**
35-
4. Click **Load unpacked** and select the repo folder
36-
5. Open a ChatGPT or Claude conversation
38+
```bash
39+
git clone https://github.com/FuugaMo/chat-branch-visualizer.git
40+
```
41+
42+
1. Open `chrome://extensions`
43+
2. Enable **Developer mode**
44+
3. Click **Load unpacked** and select the repo folder
45+
4. Open a ChatGPT or Claude conversation
3746

3847
---
3948

@@ -47,10 +56,9 @@ Supports **ChatGPT** (chatgpt.com) and **Claude** (claude.ai).
4756
├── selectors.json CSS selector registry for both platforms
4857
├── background.js Service worker — message routing + auto-reporting
4958
├── sidepanel.html/js/css Side panel UI
50-
├── viewer.html/js/css Standalone tree viewer
5159
├── api/ Vercel serverless functions (reporting backend)
5260
├── scripts/ Local automation scripts
53-
└── .github/workflows/ Scheduled probe + report intake automation
61+
└── .github/workflows/ CI/CD automation
5462
```
5563

5664
---
@@ -64,37 +72,33 @@ When the parser can't read the page (e.g. after a platform update changes the DO
6472

6573
Users control reporting via the **⋯ menu → Send diagnostics** toggle. It is **off by default**.
6674

67-
Privacy policy: https://chat-branch-visualizer.vercel.app/privacy
75+
[Privacy policy](https://chat-branch-visualizer.vercel.app/privacy)
6876

6977
### Reporting pipeline
7078

79+
When breakage is detected and the user has opted in, a report flows through:
80+
7181
```
72-
Extension (content.js)
73-
└─ PROBE_RESULT message
74-
└─ background.js ──[POST]──▶ api/reports.js (Vercel)
75-
└─ GitHub repository_dispatch
76-
└─ report-intake.yml (creates/updates issue)
82+
content.js detects selector breakage / build error
83+
└─ PROBE_RESULT → background.js
84+
├─ Consent check (cbv_consent.autoSend must be true)
85+
├─ Deduplication (same platform+reason+broken selectors+url within 30 min → skip)
86+
└─ POST ──▶ api/reports.js (Vercel)
87+
└─ repository_dispatch: extension_breakage_report
88+
└─ report-intake.yml
89+
└─ Buffer: 3 identical reports → promoted to visible issue
90+
└─ OpenClaw opens fix PR (auto-fix label)
91+
└─ Codex reviews → human approves → auto-merge
7792
```
7893

79-
### Backend setup (Vercel)
80-
81-
Required environment variables:
82-
83-
| Variable | Description |
84-
|---|---|
85-
| `GITHUB_TOKEN` | PAT with `repo` scope |
86-
| `GITHUB_REPOSITORY` | e.g. `NogaUwU/chat-branch-visualizer` |
87-
| `REPORT_PUBLIC_KEY` | Optional — low-trust key checked against extension requests |
88-
8994
### GitHub Actions workflows
9095

9196
| Workflow | Trigger | Purpose |
92-
|---|---|---|
93-
| `probe.yml` | Daily / manual | Runs Playwright against ChatGPT & Claude; opens issue on selector drift |
94-
| `report-intake.yml` | `repository_dispatch` | Creates or updates an issue from incoming extension reports |
95-
| `review.yml` | PR | Adds structural review comment on auto-fix PRs |
96-
97-
Secrets used by `probe.yml`: `TEST_CHATGPT_URL`, `TEST_CLAUDE_URL`, `CHATGPT_SESSION_COOKIE`, `CLAUDE_SESSION_COOKIE`
97+
|----------|---------|---------|
98+
| `report-intake.yml` | `repository_dispatch` | Aggregates extension reports into issues (buffer → 3 reports → visible) |
99+
| `review.yml` | PR opened | Structural review comment on auto-fix PRs |
100+
| `codex-trigger.yml` | PR opened | Posts `@codex` mention to trigger AI review on auto-fix PRs |
101+
| `auto-merge.yml` | PR approved | Squash merges auto-fix PRs after human approval |
98102

99103
---
100104

reporting-config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
manualReports: false,
1010
requestTimeoutMs: 8000,
1111
dedupeWindowMs: 30 * 60 * 1000,
12+
// Issue #11 follow-up: keep report settings explicit for auto-probe maintenance runs.
1213
};
1314

1415
global.CBV_REPORTING_CONFIG = Object.freeze(config);

0 commit comments

Comments
 (0)