[Bug]: chatgpt history/ask broken — chatgpt.com sidebar no longer renders conversations as <a href="/c/..."> anchors
- Dominant language
- JavaScript
- Stars
- 29.5k
- Forks
- 2.9k
- Avg merge
- 15h 36m
- Merged PRs (30d)
- 70
Description
### Description
The `chatgpt` web adapter's conversation discovery is broken against the current chatgpt.com frontend (observed 2026-08-29, logged-in home page, zh-CN UI).
ChatGPT's web app no longer renders sidebar conversation items as `` anchors — they are now bare, attribute-less `
Result:
- `opencli chatgpt history` → `EMPTY_RESULT` / exit 66 ("No ChatGPT conversation links were visible in the sidebar")
- `opencli chatgpt ask ""` → `TIMEOUT` after 120s (no response detected)
The page itself is healthy: logged in, composer mounted (1 `textarea` + 1 `[contenteditable=true]`, 13 buttons), and the sidebar clearly shows a recent conversation title. The adapter simply can't see it anymore.
### Steps to Reproduce
1. `opencli chatgpt status` → reports `Connected`, `Login: 'Yes'`
2. `opencli chatgpt history --limit 3` → `EMPTY_RESULT`
3. Inspect the live bound tab:
```
opencli browser eval "document.querySelectorAll('a[href*=\"/c/\"]').length"
→ 0
opencli browser eval "document.querySelectorAll('a[href]').length"
→ 0–1 (the whole page has essentially no anchors left; earlier snapshot had exactly one: `#main`)
```
4. A sidebar conversation entry (e.g. "Update the OpenCLI Doubao PR") is a bare `
### Expected Behavior
- `chatgpt history` should list visible conversations
- `chatgpt ask` should send the prompt and wait for the response successfully
Suggestion: conversation-list discovery probably needs to stop keying on `a[href*="/c/"]`. The new sidebar items expose no stable attributes at all (bare `
### Environment
- OpenCLI: **1.8.7** (npm global). Verified current: `npm view @jackwener/opencli version` → 1.8.7; `git ls-remote --tags` → newest tag v1.8.7; `git rev-list --count v1.8.7..upstream/main -- clis/chatgpt` → 0; installed adapter files sha256-identical to the `v1.8.7` tag.
- No local overrides: `~/.opencli/clis/` contains no `chatgpt/` copy (unrelated doubao overrides exist, chatgpt loads the packaged adapter).
- Node.js: v24.18.0 (Other)
- OS: Windows 11 Pro (Chrome desktop, UA `Windows NT 10.0; Win64; x64`, Browser Bridge extension connected, daemon v1.8.7)
### Logs
```
$ opencli chatgpt ask "1+1等于几?"
ok: false
error:
code: TIMEOUT
message: chatgpt ask timed out after 120s
help: No ChatGPT response appeared before timeout. Re-run with a higher --timeout if it is still generating.
exitCode: 75
$ opencli chatgpt history --limit 3
ok: false
error:
code: EMPTY_RESULT
message: chatgpt history returned no data
help: No ChatGPT conversation links were visible in the sidebar.
exitCode: 66
$ opencli chatgpt status
- Status: Connected
Login: 'Yes'
Url: https://chatgpt.com/
# live page diagnostics (logged-in chatgpt.com home)
{"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)",
"anchors":0,"convAnchors":0,"loggedIn":true}
# body text confirms logged-in home: composer present ("你今天在想些什么?"),
# sidebar contains a real conversation title rendered as an attribute-less
```
Contributor guide
Research direction
Start in clis/chatgpt/utils.js at extractConversationLinks(), then reproduce the live-page diagnostics and the history/ask commands against chatgpt.com. Determine a reliable way to discover visible conversations without the former anchor selector; done means history lists conversations and ask sends a prompt and receives a response.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- cli, web-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100