Fixes the script completely breaking on Firefox due to Firefox's sandboxing blocking ChatGPT web from using this script's fetch override.
Temporary Chat throws a ton of errors in the console log still, but Temporary Chat still seems functional. Might be something to do with the script. Temporary export on Firefox seems borked even with this fix.
The portalled Radix popper wrapper has z-index auto, so the chat
content and composer painted over the open menu. Scoped with :has so
ChatGPT's own Radix poppers are unaffected
Cancelling an export used to stop() the idle archive/delete queues too,
whose done handlers then alerted that conversations were archived and
deleted when nothing had happened. A queue now only emits done on stop
when it was actually running
The project selector, batch progress, and load-more strings shipped
with en-only entries, so every locale fell back to English. The other
15 en-only keys (a removed date-filter UI and stale batch-export
strings) have no references in code and are removed from every locale.
Locale files now follow en.json key order
The select-all label, dropdown, and counter never shrink or wrap; the
hint collapses first, then the loading indicator truncates. A fixed
dropdown width with chevron padding stops verbose placeholders from
overflowing, and the toolbar gap keeps a minimum spacing once the
ml-auto margin collapses
Both were manual workarounds for the 100-per-batch limit. Select Not
Exported now covers resuming precisely (it tracks actual successful
exports instead of list positions), and shift+click range selection
already exists for everything else
Options name their object so they read as complete phrases; the
collapsed placeholder stays short in every locale because the control
has a fixed width
Persistent 429s used to abort the queue after 5 pauses and emit done with
partial results, which were written out as a full zip while the next batch
started. The abort is removed: each batch now retries with exponential
backoff (60s base, doubling, capped at 5 min), honouring a server
Retry-After in full. stop() and clear() invalidate suspended queue runs so
Cancel works reliably during a rate-limit pause, and empty batches no
longer write an empty zip.
Fixes#366.
---------
Co-authored-by: Pionxzh <hi@pionxzh.com>
Temporary chats are served by the regular conversation API but are hidden
from the history list and never put their id in the URL. Capture the id from
the /backend-api/f/conversation stream, then export through the existing API
path. Export is blocked with a clear alert until the id has been observed.
---------
Co-authored-by: Pascal Perle <17356275+pperle@users.noreply.github.com>
Co-authored-by: Pionxzh <hi@pionxzh.com>
The star history chart was broken due to GitHub stargazer API restrictions, leaving the README without a working stargazer graph. Update the chart to point to a reliable replacement so the star history renders correctly again.
Co-authored-by: Dessalines39394 <245616256+Dessalines39394@users.noreply.github.com>
- Render the sidebar trigger as an icon-only button when collapsed
- Insert outside the profile trigger wrapper to avoid native tooltip overlap
- Add an accessible label while hiding collapsed trigger text
- Add .ce-card class with shadow and rounded corners to match native ChatGPT popup
- Remove Tailwind border/rounded/shadow from menu popup in favor of .ce-card
- Strengthen --ce-border-light fallbacks for visible menu item borders
- Fix Select dropdown: auto width with right padding for arrow clearance
- Add ._export variant for export dialog background
Closes#357
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Hide updated column on mobile (header + data cells)
- Wrap action bar buttons to second line on mobile
- Hide batch selection controls (Last 100, offset, → 100) on mobile
- Fix Select dropdown right padding to prevent arrow overlapping text
- Prevent "Test API" button text from wrapping
- Expand dialog to 90vh on mobile
- Move Cancel button inline next to progress counter
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Re-add the project selector dropdown that was removed in the batch
export refactor (#348), allowing users to export conversations from a
specific project. The dialog now uses a flex column layout so the
conversation list fills available space while keeping action buttons
always visible.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When thinking models produce commentary + final response messages,
mergeContinuationNodes was only keeping the first message's metadata.
The content_references (mapping citeturn markers to URLs) on the final
message were lost, causing raw citation text in exports.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a new "Export Thinking Process" setting that includes the model's
thinking/reasoning content in Markdown and HTML exports. Supports
multiple thinking formats across model generations (gpt-5-2, gpt-5-4,
gpt-5-5) including thought content, search activities, and duration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>