v1.1.0
🚀 New Features
- Quick Quote Chains — Prompt chains can now be triggered directly from quick quote actions, with chain icon picker, drag-to-reorder, and embedded quote anchors for reliable reference restoration across page refreshes.
🐛 Bug Fixes
- Outline copy at level 0 — Fixed issue where copying the outline returned empty results when user queries were hidden and expand level was set to 0, even though AI response headings were visible in the panel. Now copies all heading levels (H1-H6) in this scenario to match what’s displayed.
- Prompt queue keyboard shortcuts — Prompt queue input now respects the user’s send shortcut setting (Enter vs Ctrl+Enter) instead of hardcoding Enter behavior. The expanded queue panel uses capture-phase event handling to prevent keyboard events from being blocked by the editable guard, so Enter and Ctrl+Enter shortcuts work correctly on all platforms including Mac.
- Prompt queue text alignment — Queue item text now displays left-aligned instead of center-aligned for better readability.
- ChatGLM generation detection — Fixed false-positive generation status detection caused by historical “answer terminated” messages. The
isGenerating()method now excludes.stop-answer-defaultselector which matches static text from previous responses rather than the current generation state. - ChatGLM stop button — Alt+K shortcut now correctly stops generation by targeting the inner
.enter-icon-containerelement instead of the outer container div. - Qianwen Slate editor sync — Fixed content insertion from prompt queue where inserted text couldn’t be edited or deleted. The editor now properly syncs Slate’s virtual DOM by using
selectAll + delete + insertTextwith complete event chains (beforeinput,input,change) to ensure both DOM and Slate state update correctly. - Launcher peek retention — When the mouse moves from the panel logo to other quick buttons (e.g. toolbox), the launcher peek panel now hides instead of staying open and blocking the toolbox menu. (#653)
v1.0.60
✨ Improvements
- Userscript bundle size — Split Markdown rendering code, Markdown styles, user-query Markdown styles, and site icons into external userscript assets so Greasy Fork sync has less inline code to process while preserving the existing rendering injection path.
- Zen Mode exit button — Added a “Show exit button” setting for Zen Mode, so the on-page exit button can be hidden while keeping the quick button and shortcut exit paths available. (#645)
🐛 Bug Fixes
- AI Studio mobile Enter key — AI Studio on Android and other mobile devices now lets the soft-keyboard Enter key insert a newline instead of triggering an accidental send, while Ophel-driven sends still use the native send button or the safe keyboard fallback. (#646)
- AI Studio mobile history sync — AI Studio conversation sync now recognizes the mobile Library card layout, so mobile pages no longer report that no sidebar conversations were found when history is available.
- Conversation sync loading — Conversation sync now uses each adapter’s own conversation source to decide when sidebar history has finished loading, waits longer for slow lazy-loaded sidebars, and disables sync-delete when a complete load cannot be confirmed. Doubao and Yuanbao now share the safer base loader. (#639)
v1.0.59
🚀 New Features
- Outline copy — The Outline toolbar can now copy the currently selected outline depth as Markdown headings by reusing the export pipeline, so virtual-scroll conversations are loaded and restored safely before headings and user queries are copied. (#539)
- Conversations quick open — Conversation rows can now be opened from the context menu in a new tab, so older sessions can be reopened without replacing the current chat. (#578)
🐛 Bug Fixes
- ChatGPT native TOC outline — ChatGPT outlines now recover the full user-question list when the native TOC only exposes real prompt text after hover, cache the extracted labels per TOC instance, and avoid userscript crashes from cross-realm pointer events. (#642)
- ChatGPT tab status — ChatGPT tabs no longer show
⏳while idle when a sidebar conversation title contains “Stop” or “停止”. The generation detector now only uses visible stop buttons from the composer area. (#630) - Gemini tab renaming — Gemini tabs no longer flicker back to the native page title during active replies when automatic tab renaming is enabled.
- Gemini watermark removal — Replaced the legacy Gemini/Nano Banana remover with the SDK-backed implementation and fixed user-uploaded image handling plus generated-image removal regressions. (#593, #625)
- Prompt imports — Prompt Library import now accepts prompt backup files exported from the Backup page, not just the raw prompt-list JSON format.
- Rendered user-query spacing — Rendered Markdown in user questions now ignores native plain-text whitespace classes, preventing large blank gaps between paragraphs and quoted text on DeepSeek, Doubao, Z.ai, ChatGLM, Qwen, and similar sites.
v1.0.58
🐛 Bug Fixes
- Conversation title isolation — Browser tab renaming now keeps Ophel-managed status/model labels separate from raw conversation titles, preventing exported conversation titles and filenames from inheriting tab status, model names, or repeated
->separators when a page cannot expose its model name. - Doubao share-page export and outline — Doubao share links under
/thread/are now recognized as exportable conversations, and share-page message lists can now feed the Outline tab instead of requiring the regular chat-page virtual list. - Z.ai share-page outline — Z.ai share pages now reuse the same conversation content container detection as export, so Outline extraction works when the share DOM does not include the regular
#chat-containerwrapper. - ChatGLM code-block export — ChatGLM assistant replies split around code blocks now export the full answer instead of stopping at the first rendered Markdown segment.
- Localized untitled exports — Untitled export titles now follow the current UI language even when an older fallback title was saved in another language.
- Qianwen user-query Markdown contrast — Rendered user-query Markdown on Qianwen now uses a dedicated readable bubble style instead of inheriting low-contrast native question-card colors.
- Qianwen/Qwen Studio Outline duplicates — User questions wrapped by nested site containers now appear once in the Outline while preserving the correct export output.
- Custom tab-title formats — Missing model names and previously managed tab titles are now resolved from the configured placeholder structure instead of separator-specific cleanup, preventing recursive title growth with arbitrary custom formats.
v1.0.57
🐛 Bug Fixes
- Claude theme mode sync — Claude theme switching now keeps Claude-specific DOM hints inside the Claude adapter and avoids writing extra page-level
light/data-theme/color-schememarkers that could diverge from Claude’s native theme state. - ChatGPT native TOC bookmark stability — ChatGPT native TOC user-question bookmarks now keep the same identity across virtual-scroll state changes, reducing ghost bookmarks and duplicate matches for the same prompt.
v1.0.56
🚀 New Features
- AI Studio user attachments in exports — AI Studio Markdown exports now include images and files from user prompts; zip packages preserve downloadable user images under
assets/images/, while file-only cards keep their visible filename and token details in Markdown. - ChatGLM attachment, image, and thought export — ChatGLM exports now preserve user-uploaded images and files plus AI-generated images in Markdown and zip packages. Share-page exports also recognize ChatGLM’s current thinking payloads and format included thoughts as
> [Thought]blockquotes when “Include Thoughts in Export” is enabled, while filtering user avatars from exported assets. - ChatGPT generated image export — ChatGPT Markdown exports now include generated image-only assistant turns, preserving generated images in both regular Markdown output and zip asset packages.
- Claude export attachments and thoughts — Claude Markdown exports now preserve images and files from user prompts in both Markdown and zip package modes, and can include expanded Claude thinking blocks when “Include Thoughts in Export” is enabled.
- DeepSeek user attachments in exports — DeepSeek Markdown exports now include images and files from user prompts, including share pages; zip packages resolve downloadable share attachments into
assets/images/andassets/files/with stable Markdown references. - Doubao image and attachment export — Doubao Markdown exports now include images and files from user prompts plus images from assistant replies. Zip packages preserve downloadable resources under
assets/images/andassets/files/, with generated-image fallback handling for pages that keep only placeholder images in the DOM. - Grok image and attachment export — Grok Markdown exports now include generated images from assistant replies plus images and files from user prompts. Zip packages preserve downloadable images under
assets/images/and user files underassets/files/with stable Markdown references. - Gemini Canvas code export — Gemini conversation and share-page exports now open Canvas artifacts, switch to the code tab without relying on localized labels, and include generated Canvas code in Markdown exports.
- Ima attachment, generated image, and thought export — Ima Markdown exports now include user-uploaded images and files, preserve AI-generated images in regular Markdown and zip asset packages, and include visible thinking content when “Include Thoughts in Export” is enabled. Empty attachment containers are ignored so plain user prompts no longer export a phantom
attachmentitem. - Kimi share conversation export — Kimi share pages are now supported in conversation export, outline, and scroll navigation. Exports preserve user-uploaded images in Markdown and zip asset packages, include visible file attachment labels, and keep user prompts aligned with the correct assistant replies.
- Qianwen attachment and generated image export — Qianwen Markdown exports now recognize the current share-page question and answer DOM, include user-uploaded images and file cards, and preserve AI-generated images in both regular Markdown and zip asset packages, avoiding empty-message exports on updated pages.
- Qwen Studio attachment, generated image, and thought export — Qwen Studio Markdown exports now include user-uploaded images and full file-card names, preserve AI-generated images in regular Markdown and zip asset packages, and can export expanded thinking details from regular and share-page conversations when “Include Thoughts in Export” is enabled.
- Yuanbao attachment, generated image, and thought export — Yuanbao Markdown exports now include images and files from user prompts, preserve AI-generated images in regular Markdown and zip asset packages, and include visible thinking content when “Include Thoughts in Export” is enabled.
- Z.ai attachment and thought export — Z.ai conversation and share-page exports now preserve user-uploaded images and files in Markdown and zip packages, deduplicate signed CDN links from API and DOM sources, and include reasoning blocks when “Include Thoughts in Export” is enabled.
✨ Improvements
- Export progress overlay — Long conversation exports now show a full-page progress overlay with the current export stage, blocking accidental clicks, scrolling, and typing while Ophel loads history, extracts content, packages assets, saves files, and restores the page.
v1.0.55
🚀 New Features
- ChatGPT Deep Research export — ChatGPT Markdown zip exports now preserve uploaded images and linked files from user prompts, and include Deep Research reports as a title and link in Markdown. The extension build also allows
oaiusercontent.comassets so shared-page images can be packaged. (#579) - Claude document artifacts and outline — Claude Markdown document artifacts can now be exported as linked files in Markdown zip packages under
assets/documents/, and the Outline tab shows a separate Document source when Claude’s right-side document panel is open. (#588) - Claude user attachments in exports — Claude Markdown zip exports now preserve uploaded images and linked files from user prompts, packaging them under
assets/images/andassets/files/with stable Markdown references. (#588) - Gemini Deep Research document outline — The Outline tab now shows a “Chat / Document” source switch when a Gemini Deep Research report is open, letting you browse and jump through the right-side report outline separately from the left-side conversation outline. (#585)
- Gemini Deep Research report panel Markdown shortcuts — Added Copy Markdown and Download Markdown buttons to the Gemini Deep Research right-side report panel toolbar, exporting only the current report without changing regular conversation exports. (#579)
- Markdown export packages — Markdown exports can now be delivered as a zip package when a site adapter provides assets, including a manifest and stable relative paths for referenced files. Generated Markdown documents are packaged under
assets/documents/, images underassets/images/, and user-uploaded attachments underassets/files/, with uploaded documents resolved the same way as regular Gemini conversations. (#580) - Gemini Deep Research export — Gemini Deep Research exports now cover owned app conversations, conversation share pages, and generated report share pages; closed report panels are opened during export and restored afterward, with uploaded file labels included in exported user prompts. (#573)
🐛 Bug Fixes
- Theme sync regression — Turning off Sync Native Page Colors no longer prevents supported host pages from following Ophel’s light/dark theme toggle. The setting now only controls native color override CSS, while Doubao and Ima remain panel-only because their adapters declare host theme sync unsupported.
- Claude export order and outline cleanup — Claude assistant exports now keep text and artifact links in their original reply order, and page/sidebar headings such as “Recents” are no longer pulled into the conversation outline. (#588)
- Inline bookmark visibility — Page inline bookmark icons now fully respect the hidden setting and no longer depend on the Outline tab’s “show user questions” filter, fixing stale or missing stars on virtual-scroll sites such as ChatGPT, DeepSeek, AI Studio, and Doubao. (#570)
v1.0.54
🚀 New Features
- Prompt queue and library integration — Prompt Library actions can now add prompts to the queue, and the queue batch dialog can add prompts directly from the library. (#547, @mrpops2ko)
✨ Improvements
- Direct row drag sorting — Prompt items and conversation folders can now be reordered by long-press dragging the row itself, matching the existing conversation-item interaction without requiring a dedicated drag handle.
- Clearer outline tab icon — Updated the Outline tab and tab-order settings icon to better communicate the outline hierarchy while keeping the previous document-style icon for empty states.
- Prompt floating controls — Softened the selected-prompt bar styling and aligned it with the prompt queue above the input box.
🐛 Bug Fixes
- Doubao and Ima panel theme switching — Ophel’s panel theme now switches independently on sites that do not support native page theme changes, fixing Doubao getting stuck in dark mode and keeping rendered user-query code blocks readable.
- ChatGPT clean mode sponsored cards — Clean Mode now hides ChatGPT sponsored recommendation cards, including the new ad blocks with “Ad options” menus.
- Doubao outline extraction — Doubao outlines now recognize the newer
md-box-rootanswer DOM, restoring headings for conversations that previously showed an empty outline. (#565) - Conversation folder selector icon spacing — Tightened the sync-folder selector padding and gave folder emoji icons a stable centered box so they no longer look clipped in the Conversations toolbar.
- Attachment-only submit shortcut — Pressing Enter or Ctrl+Enter can now send messages that contain only images or attachments. (#555)
- Temporary panel preview interactions — Dialogs, menus, dropdowns, and Prompt tab popups opened from the temporary Quick Buttons panel preview now keep the preview available while you interact with them, then close the preview automatically once the interaction ends.
- DeepSeek outline navigation — Outline jumps to user questions in long DeepSeek conversations now use DeepSeek’s native timeline when the message is outside the mounted DOM, avoid stale jump results during rapid clicks, and keep only the current outline item highlighted without showing bookmark-missing notices for normal outline jumps.
v1.0.53
🚀 New Features
- Formula copy format setting — Double-click formula copy can now output either LaTeX source or MathML source. LaTeX delimiter wrapping remains available for LaTeX mode, while MathML mode copies the serialized
<math>source when the site exposes one.
🐛 Bug Fixes
- Claude adapter — Adapted to Claude’s recent page redesign: outline no longer picks up screen-reader-only headings, share links with new URL format are now recognized, theme switching works again, model locking and click simulation are compatible with the new UI components.
- Doubao virtual scroll navigation — Adapted Doubao to its new virtual-list chat DOM so outline jumps, return anchors, and top/bottom navigation now use the real
v_list_scrollercontainer. The outline also keeps an in-memory cache of headings and user prompts that have entered the viewport, preventing previously seen outline items from disappearing when Doubao unloads them from the DOM. - Kimi conversation navigation — Fixed the Conversations tab failing to switch Kimi chats when clicking history items from Kimi’s sidebar. Kimi chat links are now matched by parsed conversation ID instead of a broad selector, with an SPA route fallback when the native link is not mounted.
- Ima user prompt extraction — Restored user-question detection for Ima’s updated chat DOM, so prompts inside the new
userBubbleWrap/chatMainBubblestructure are included in outline, export, usage stats, and user-query Markdown rendering again. - Formula copy site compatibility — Added Qwen Studio support for its non-standard formula DOM where LaTeX source is embedded as direct text inside
<math>. Kimi and Yuanbao now explicitly show an unsupported-site message instead of attempting unreliable extraction from visual-only KaTeX HTML. - Gemini Canvas freeze with table Markdown copy — Table copy buttons are no longer injected into Gemini Canvas editor tables, preventing ProseMirror DOM update loops that could freeze or crash the page when a Canvas document contains tables. (#535)
v1.0.52
🚀 New Features
- Hover Ophel logo to temporarily preview the panel — When the panel is collapsed into the Quick Buttons logo, hovering the logo now opens a temporary panel preview anchored beside the Quick Buttons group. The preview does not persist the panel’s expanded state, and clicking the logo still performs the regular panel toggle. (#524)
- Title format token chips — The title format input in Settings now renders
{status},{title}, and{model}placeholders as styled blue chips, making the format template easier to read and edit at a glance. - Tab status indicator: “hide checkmark when read” — A new option keeps the ✅ completion icon visible only until you view the tab, then hides it automatically. (#520)
🐛 Bug Fixes
- Reading history restore scope — Reading history now saves and resumes positions only on owned conversation pages. Shared pages, new-chat pages, and other site routes no longer trigger auto-resume; page eligibility now lives in each site adapter for clearer maintenance.
- Conversation sync cleanup — Manual sync now removes conversations that were deleted on the same site/account and opens Gemini’s recent chats section when needed before syncing.
- Gemini Library page: fix “Open in New Tab” — Adapted to the new
/librarypath (renamed from/mystuff) and adjusted button position to avoid overlap with Gemini’s native delete button. - Zen mode exit button text unreadable due to transparency: Replaced the button background from translucent glass-morphism variables with the theme’s primary background color, preventing underlying page text from bleeding through and making both layers unreadable. (#431)
- Tab title: prevent
->duplication — Fixed a race condition where the auto-rename title format could repeatedly append->to the tab title when the model name was temporarily unavailable, resulting in chains like标题->->->->. - Gemini adapter: adapt to new sidebar structure — Updated selectors and navigation logic to support the new
gem-nav-list-item[data-test-id="conversation"]sidebar items; added a scroll-to-load helper and fixed conversation ID/title extraction and navigation to restore compatibility with the Gemini sidebar redesign.
v1.0.51
🚀 New Features
- Quick Buttons proximity wake radius (
Settings → Quick Buttons): A new slider controls how close the cursor must be before the floating widget auto-expands (default 150 px, matching previous behavior). Set it to 0 for a true dwell-hover mode — the widget only expands after the cursor rests on the water-drop for 300 ms, preventing accidental expansion from the cursor passing through. (#492) - Drag conversations into folders: In the Conversations tab, you can now drag a chat onto any folder to move it there. Thanks @t0ny-peng (#512)
🐛 Bug Fixes
- Floating panel settings UX and positioning preview: Moved the default edge distance margin setting to only display under Floating panel mode, and updated the description across all 10 locales. Also fixed an issue where adjusting default margin/position settings failed to update the panel position in real-time. (#519)
- Fixed ChatGPT outline display and navigation issues: Resolved cases where the outline was incomplete or clicks failed to navigate to the message in long chats, and fixed routing issues where switching conversations caused the outline to lag, display incorrect entries, or show empty headings. (#402)
- Resolved ChatGPT export duplication, scrambling, and truncation issues in long conversations: Re-engineered the export process to handle virtualization, ensuring all turns are fully loaded, ordered correctly, and deduplicated without missing segments or repeating messages.
- AI Studio export missed turns and could loop in long conversations: Rewrote the export collector to iterate the DOM-resident
ms-chat-turnlist directly so every user prompt and assistant reply (including attachments and the separate “thoughts” turn) is captured in a single pass. - Fixed conversation title missing or wrong on shared pages across 12 sites: Added
isSharePage()detection and page-heading fallbacks so the browser tab title and export Markdown heading work correctly on shared (non-owned) conversation pages.
v1.0.50
🐛 Bug Fixes
- Fixed page-width and user-question-width adjustments not working or misaligned on DeepSeek, Kimi, and Qianwen
- Fixed code and math in Qianwen user messages not rendering correctly
- Fixed clean mode not hiding new promotional banners on ChatGLM, Ima, and Kimi
- Fixed code blocks displaying with inconsistent widths when page-width adjustment is enabled on ChatGLM
- Fixed the
Alt+/shortcut reporting “model selector not found” on AI Studio - Fixed the outline only showing nearby messages in long conversations on AI Studio and ChatGPT
- Fixed the copy button disappearing when scrolling inside a code block in user messages
- Fixed code blocks being hard to distinguish from the message bubble background on some sites (Kimi, DeepSeek, etc.)
- Fixed the circular theme-switch animation not appearing on ChatGPT
v1.0.49
🐛 Bug Fixes
- Windows UI font regression after the macOS CJK fallback fix: Restored
system-uipriority on Windows and other non-macOS platforms while keeping CJK fonts beforesystem-uion macOS. Also removed Arial/Roboto local aliases from the Inter fallback so environments without bundled Inter fall back to the native system UI font instead of mixing unrelated fonts. (#489 regression, #491) - macOS CJK font appears too thin (PingFang SC): Changed the macOS CJK font preference from
PingFang SCtoHiragino Sans SC(with PingFang SC as fallback). Hiragino Sans SC has heavier strokes that render more legibly at normal weight on macOS.
v1.0.48
🐛 Bug Fixes
- Settings About page store icons shrink when platform name wraps: Added
flex-shrink: 0to store icon SVGs so they maintain consistent size regardless of the platform name’s length in the “Love Ophel?” rating section. Also shortened the GermanedgeAddonslabel from"Microsoft Edge Add-on"to"Edge Add-on"to match other locales and prevent unnecessary wrapping. - Gemini strips code indentation in user query Markdown: Fixed
extractUserQueryMarkdowntrimming all leading whitespace from eachquery-text-line, which removed meaningful code indentation. Now uses dedent logic to strip only the wrapper spaces Gemini adds, preserving relative indentation inside code blocks. - ChatGPT model lock fails to detect model in non-English locales: Fixed an infinite switch loop where the keyword (e.g.
think) matched the English menu item slug (gpt-5-5-thinking) but not the localized pill label (思考). The adapter now retains the last known model slug after the menu closes, so the lock check passes regardless of display language. - ChatGPT model lock broken after site redesign: The 2025 ChatGPT redesign removed the header model-switcher button. Updated the adapter to target the new Composer area Pill button (
__composer-pill), fix menu item detection (menuitemradiorole +data-testid^=model-switcher-), and extract model name from the pill’sspan.truncatetext node. Removed ~90 lines of now-obsolete state-caching code specific to the old two-step header interaction. - User query code blocks wrap too early near the copy button: Fixed the user query Markdown code copy button participating in code text layout and reducing the first line’s available width. The button now overlays the code block without forcing premature line wraps.
- Gemini font reverts to Times New Roman when using code blocks: Fixed font regression on Gemini when user messages contain backticks or code blocks. The injected markdown container now explicitly applies
font-familyand forced inlinebackground/colorstyles to override Angular’s component-scoped CSS rules, preserving Google Sans/Roboto font. Primarily affects Firefox/Zen Browser users. (#474) - User query bubble background overridden by site theme: Fixed native theme sync on ChatGPT, Kimi, and Gemini incorrectly applying theme colors to the user message bubble background. User bubbles now retain their original platform colors when theme sync is enabled.
- Syntax highlighting broken in user query code blocks: Fixed hljs token colors (keywords, strings, comments, etc.) being overridden by site CSS on some platforms.
- CJK font falls back to Hiragino (Japanese glyphs) on macOS in English locale: Fixed the font-family stack across all UI surfaces placing
system-ui/BlinkMacSystemFontbefore explicit CJK fonts. Blink’s CJK fallback logic would select Hiragino instead of PingFang SC on English-locale macOS, causing mixed glyph shapes and inconsistent character metrics within the same text. CJK fonts (PingFang SC,Hiragino Sans SC, etc.) are now declared beforesystem-uito ensure correct Simplified Chinese rendering. (#486)
v1.0.47
✨ Improvements
- Gemini Markdown Bold Fix now defaults to off: The “Markdown Bold Fix” toggle for Gemini is now disabled by default. It can still be enabled in Settings → Site Settings → Gemini.
- Panel state remembered in auto-snap mode: Both floating and auto-snap modes now remember whether the panel was open or closed across page refreshes.
🐛 Bug Fixes
- Claude reply notifications repeating endlessly: Fixed notifications firing repeatedly after a reply was completed on Claude.ai. (#470)
- Yuanbao theme sync broken: Fixed theme detection failing on Yuanbao after they changed their dark mode implementation.
- Drag-to-sort broken on Yuanbao: Fixed tab order, quick button, and prompt drag sorting failing on Yuanbao.
v1.0.46
🐛 Bug Fixes
- Gemini source tooltips broken after Markdown fix: Fixed source/citation tooltip chips disappearing in Gemini when the Markdown bold fix was enabled. The fixer was rewriting paragraph
innerHTML, destroying Gemini’s native event handlers for source tooltips. Affected paragraphs that contained citation chips are now skipped. (#468)
v1.0.45
✨ Improvements
- Max page width raised to 99%: The maximum percentage for page width and user query width is raised from 94% to 99%. (#447)
- Narrow screen auto-adaptation: On narrow screens like mobile, percentage-width mode automatically expands to 95% to prevent content from being too narrow. (#447)
- Auto-hide quick buttons when panel opens: When the toggle is on, the quick button group auto-collapses when the panel opens and restores when it closes, keeping the interface cleaner.
- Quick button settings layout improvement: The “Hide” toggle and “Opacity” control are grouped separately above the button ordering list, making them easier to find.
🐛 Bug Fixes
- Panel position drift on zoom: Fixed the quick button group and main panel gradually drifting to the center of the screen after using trackpad or browser zoom shortcuts. (#458)
- Quick button settings lost on refresh: Fixed some settings being reset after saving and refreshing the page.
- Untranslated UI strings: Fixed some dialogs and tooltips showing Chinese text in Russian, English, German, and 10 other languages.
- Korean/CJK text rendering broken: Fixed Korean and other CJK characters appearing as boxes or garbled text in the panel for Windows users. (Thanks @Apious #432)
- DeepSeek page width: Aligned AI reply width with the input box width.
v1.0.44
✨ Improvements
- WebDAV provider quick presets: Added server address presets for popular services including Jianguoyun (NutStore), InfiniCloud, Nextcloud, Synology, and Seafile — click to fill in, no manual lookup needed.
- Backup action area redesign: Regrouped buttons for Test Connection, Save Config, Backup Now, and Restore Backup with clearer visual hierarchy.
- Backup file list style improvement: File names now use a scrollable horizontal layout to avoid truncation; Restore and Delete buttons are in separate columns for clearer targeting.
- Settings page description improvements: Rewrote descriptions for word count, Firefox shortcut notes, and AI Studio model sync for greater accuracy.
- Reading history default retention reduced to 3 days: Reduced from 7 days to 3 days to save local storage; existing data is not affected.
- Send shortcut setting moved to Prompts panel: The “Send Shortcut” option moved from general settings to the Prompts tab, grouping it with prompt-related features.
- Global shortcut default changed to Alt+O: Avoids conflict with Chrome’s built-in “Open Gemini” shortcut; displayed as
⌥Oon Mac. - ChatGPT bold fix disabled by default: Reduces interference with ChatGPT’s native page styles; can be enabled manually when needed.
🐛 Bug Fixes
- WebDAV backup list parsing compatibility: Fixed inability to read cloud backup file lists when some WebDAV providers (e.g. pCloud) return XML with namespace prefixes.
- WebDAV operation interrupted after first authorization: Fixed the original operation (backup, restore, or test connection) not resuming after confirming the authorization dialog on first WebDAV use.
- Doubao conversation delete confirmation broken: Adapted to Doubao’s new page structure; fixed the delete confirmation dialog not triggering correctly (also fixed for Traditional Chinese UI).
- Quick button initialization position jump: Fixed the visual jump of quick buttons sliding down from the top to their target position on page refresh.
ℹ️ Notes
- Existing users’ global shortcuts will not change automatically. To use
Alt+O, please update it manually in your browser’s shortcut settings.
v1.0.43
🚀 New Features
- Panel mode toggle shortcut: Added
Alt+M(Mac:⌥M) shortcut to switch between Auto-Snap and Floating modes with one key.
✨ Improvements
- More visible toast messages: Toast notifications are now clearer across all themes (including dark mode), long text is auto-truncated, and the system “Reduce Motion” setting is respected.
- Anchor button click animation: Added a light spring animation when clicking anchor buttons in the main panel footer and floating quick buttons for more responsive feedback.
🐛 Bug Fixes
- Tooltip lingering after tab switch: Fixed tooltips appearing unexpectedly when switching away and back to the browser tab during a hover-triggered countdown.
- Horizontal image carousel blocked: Fixed horizontal image carousels on ChatGPT and similar pages being unable to swipe left/right when “Prevent Auto-Scroll” was enabled.
v1.0.42
⚠️ Breaking Changes
- Double-click title bar behavior changed: The double-click action on the panel title bar changed from “Toggle Privacy Mode” to “Quick switch panel display mode (Floating ↔ Auto-Snap)”.
✨ Improvements
- Double-click title bar to switch panel mode: Double-click the panel’s top title bar (Logo or brand name area) to quickly switch between Floating and Auto-Snap modes without entering settings.
- Hover on Logo/brand name to show advanced guide: Moving the mouse over the panel’s Logo or Ophel brand name automatically shows the advanced shortcut guide (MagicCodex), which closes when the mouse leaves.
- Overall UI refinement: Numerous UI detail improvements.
- Community links in settings page: Added store rating, GitHub, Ko-fi, and Discord quick links in the bottom-left corner, with theme and language switching integrated.
- About page visual polish: Comprehensive refinement of buttons, headings, navigation, and theme cards.
- Feature tip tour: Added feature hint bubbles to the panel and outline tabs to help discover hidden functionality.
- Panel tab icons slightly enlarged: Outline, conversation, and prompt icons enlarged from 14px to 16px for better clarity.
🐛 Bug Fixes
- Update notification showing repeatedly: Fixed the “plugin updated” dialog reappearing shortly after being closed.
- Settings slider reset not persisting: Fixed “Restore Default” taking effect immediately but reverting to old values after page refresh.
- Panel briefly flashing default light theme on refresh: Fixed panels briefly flashing to the default appearance before switching back to the user’s theme on fast-loading sites like Gemini.
v1.0.41
✨ Improvements
- “Tips & Tricks” category in global search: Type
tip:in global search to quickly filter all feature tips; a dedicated tab makes tips easy to discover and review. - Fuzzy search button active state visual improvement: When fuzzy search is enabled, the button shows themed text + bold + solid themed border + light background highlight, clearly indicating the active state with automatic adaptation for dark/light and custom themes.
🐛 Bug Fixes
- Search syntax example clicks not working: Fixed clicking syntax examples (e.g.
type:outline,date:7d) in global search only closing the overlay without inserting into the input. - Toast blocked by backdrop-filter: Fixed toast notifications being blocked and blurred by the backdrop-filter used in global search and the settings page. Moved the mount point from
document.bodyto the top-level Shadow DOM container to avoid stacking context isolation. - AI Studio adapted to new sidebar: Updated adapter for AI Studio’s new sidebar structure.
v1.0.40
✨ Improvements
- Outline scroll sync performance: When scrolling the conversation page, outline highlight indicator switched from full React re-render to direct DOM classList operations — only 2 DOM operations per scroll, eliminating useless reconciles across 1000+ OutlineNodeView components. (#397)
- MutationObserver scope narrowed: Outline auto-update MutationObserver scope narrowed from
document.bodyto the AI reply container level, reducing callbacks triggered by unrelated DOM changes. (#395) - treeKey hash compression: Outline tree keys now use djb2 hash algorithm, compressing long keys to 8-character hex strings, improving string comparison efficiency for large numbers of headings. (#395)
🐛 Bug Fixes
- Sibling headings with same text overwriting collapse state: Fixed two sibling headings with identical text (e.g. two
## Summary) overwriting each other’s collapse/expand state; key generation now prioritizes node ID. (#395) - Outline fallback refresh race condition: Fixed the fallback timer forcing a tree rebuild after treeKey had already updated naturally, preventing unnecessary resets of user collapse state. (#395)
- Outline missing refresh on tab switch: Fixed outline refresh being lost when the outline tab was in the background during AI generation completion; automatically refreshes when switching back to the outline tab. (#395)
- Panel mode switch flash: Fixed panel flashing on the left side of the page for one frame when switching from floating mode to edge-snap mode. (#398)
- Accidental quick button drag: Raised the long-press drag threshold from 150ms to 220ms to reduce accidental drag triggers on quick clicks.
- Position jump on floating mode switch: Panel no longer resets to
defaultEdgeDistancewhen switching to floating mode from settings; it stays in place.defaultEdgeDistanceis now only used as the initial position on page refresh. - Panel not retracting after closing settings/search in snap mode: Fixed settings modal and global search being rendered inside Shadow DOM causing MutationObserver to miss their close events; unified overlay detection scope and synced panel hover state on close.
- No preview when switching to snap mode from settings: Panel now immediately snaps/retracts as a preview when switching to edge-snap mode from settings, instead of staying expanded due to detecting the settings modal still open.
v1.0.39
✨ Improvements
- Panel mode simplified: Panel behavior settings simplified to two modes (Floating / Edge Snap), more intuitive without needing separate toggles.
- One-click mode switch in panel header: Added a pin/snap toggle button in the header for quick mode switching without entering settings.
- Panel header streamlined: Removed infrequently used buttons from the header for a cleaner look.
- Title bar hover tips: Random usage tips shown when hovering the panel title bar to help discover hidden features.
- Navigation buttons always visible in edge-snap mode: Scroll-to-top/bottom and anchor quick buttons no longer hide when panel is not overlapping them.
- Conversation list performance: Large numbers of conversations under a folder no longer cause lag; progressive loading implemented. (#369)
- Global search performance: Reduced redundant re-rendering of search results for smoother search experience.
- Userscript load speed improved: Significantly faster userscript loading after page refresh.
- Theme adaptation refined: Native theme now only colors the sidebar, no longer affecting the main content area of AI platforms.
- Bundled Inter font: Extension version bundles Inter Variable font for improved typography.
🐛 Bug Fixes
- Permissions management page restored: Fixed permissions page stuck in loading state with unresponsive “Allow” button. Root cause was
chrome.notificationsAPI lacking optional permission guard causing Service Worker initialization failure; also changed Options page permission requests to callchrome.permissions.request()directly instead of routing through Service Worker. (#384) - Fixed scrollbar flashing, position jumps, and other interaction issues when switching panel modes.
- Fixed left-side snap animation delay; behavior is now unified on both left and right sides.
- Fixed double-clicking the title causing the panel to accidentally leave snap state.
- Fixed several memory leaks (animation frames and timers not cleaned up).
- Fixed Korean characters appearing as boxes in userscript. (#373)
- Fixed position drift and icon issues after quick button liquid collapse.
- Fixed slider max value label in settings page being displaced below the “Restore Default” button.
v1.0.38
✨ Improvements
- Zen Mode and Clean Mode split: The original “Zen Mode” is now split into “Zen Mode” (hides sidebar and navigation) and “Clean Mode” (hides disclaimers, ads, and other redundant elements) as two independent settings. Clean Mode is enabled by default; Zen Mode automatically includes the clean effect when enabled. (#365)
- Notification click to foreground: Desktop notifications for completed AI generation in the browser extension now support clicking to jump directly to the corresponding tab and focus the window, matching userscript behavior. (#359)
🐛 Bug Fixes
- Firefox outline panel scroll bounce: Fixed the outline panel jumping back to the active item position when scrolling in Firefox (including Zen Browser); debouncing the wheel event to pause auto-positioning. (#360)
- ChatGPT reading position jumping to bottom after restore: Fixed reading progress being successfully restored on page refresh but then immediately pulled to the bottom by ChatGPT’s auto-scroll. Added a DOM attribute-based position lock mechanism for synchronous cross-world communication, replacing the race-prone async postMessage approach; introduced an adaptive timeout strategy (2-second idle release, 15-second max) with support for outline clicks and anchor jumps during the lock period.
- macOS ghost pass-through restored: Fixed the panel occasionally not entering the low-interference ghost pass-through state on macOS when holding the Command key, reducing obstruction of page content and click operations.
📝 Documentation
- User docs fully rewritten: All user guides rewritten in Chinese and English, covering Quick Start, Panel Overview, Quick Buttons, Smart Outline, Conversation Management, Prompt Library, Enhancement Features, Appearance Themes, Backup & Sync, Shortcuts, and FAQ — more complete and easier to follow.
v1.0.37
✨ Improvements
- Main panel and quick button style overhaul: Overall visual refresh of the main panel and quick buttons, further unifying hierarchy, spacing, and hover interactions for a lighter feel.
- Quick button ghost pass-through: Quick buttons enter a low-interference “ghost state” when idle and support mouse event pass-through to the underlying page, reducing obstruction of site content and operations.
v1.0.36
✨ Improvements
- Quick button experience upgrade: Integrated “Zen Mode” and “Global Settings” into the outer quick group with defaults enabled; redesigned intelligent grouping — feature toggles at top, navigation actions fixed at bottom with a separator.
- Zen Mode immersive icon animation: When Zen Mode is enabled, the related icon in quick buttons seamlessly switches to the closed-eye state (EyeClosedIcon) with a minimalist 4-second breathing glow animation, providing visual feedback that matches the “immersive focus” mental model.
- Native page color sync label clarified: “Sync native page theme” labels unified as “Sync native page colors”, clarifying that page light/dark mode always follows Ophel, and this toggle only additionally controls some native element colors; descriptions updated in all 10 languages to reduce confusion.
- Zen Mode exit button visual overhaul: Exit button redesigned as a top-centered floating glassmorphism capsule with smooth entrance animation that seamlessly adapts to the global theme system.
- Global Toast notification upgrade: Replaced heavy gradient color blocks with a premium frosted glass card style; built-in smart avoidance mechanism automatically moves down when Zen Mode is active to prevent overlap.
- Watermark removal indicator repositioned: The loading indicator during Gemini image watermark removal moved to the bottom-right corner of the image, reducing obstruction of the top-right action buttons and image content.
- Zen Mode site adaptation and exit entry improved: Unified Zen Mode configuration across sites, adding default hidden elements for more AI sites; enabling it directly hides sidebar, disclaimers, and distraction areas, with a fixed floating “Exit Zen Mode” entry at the top level of the page.
- Zen Mode shortcut and collapsed state compatibility: Added “Toggle Zen Mode” in “Settings → Shortcuts → Interaction Controls” with default shortcut
Ctrl + Shift + Z; also improved Zen Mode layout behavior on Kimi and other sites with collapsed sidebars. - Qwen Studio site name unified: The display name of
chat.qwen.aiunified toQwen Studioacross adapter display names, settings items, conversation hints, README, and issue templates.
🐛 Bug Fixes
- AI Studio theme fallback conflict: Fixed AI Studio applying a generic fallback on top of already-completed native theme switching when “Sync native page colors” was enabled, causing theme class conflicts and style corruption.
- System theme preference lost on refresh for multiple sites: Fixed DeepSeek, Qwen Studio, and ChatGLM reverting panel theme state to
lighton page refresh after switching to “Follow System” via Ophel, even though thesystempreference had been written to the site. - Zen Mode component i18n disconnect: Fixed the static-injected exit button text not updating when switching plugin language after Zen Mode was enabled.
- Userscript Gemini inline image watermark removal positioning fix: For generated images on Gemini
/appand/sharepages that only haveblob:/data:URLs, the watermark removal process now validates both48pxand96pxwatermark candidates and their adjacent positions, only using a result when confirmed to improve quality. - Userscript inline image result reuse: Auto-display, preview zoom, copy, and download for the same Gemini inline image now reuse the same watermark-removed result to reduce inconsistency across different entry points.
v1.0.35
🚀 New Features
- Native page theme sync toggle: Added “Sync Native Page Theme” toggle in “Appearance & Theme” to independently control whether Ophel theme changes also update the current site’s light/dark mode and native colors; also added to global search index for direct navigation.
✨ Improvements
- Gemini user query image export: Exported conversations now include images uploaded in Gemini user queries, preventing export results that only contain text prompts with missing reference images.
🐛 Bug Fixes
- ChatGPT thinking mode completion timing: Introduced per-round completion detection logic for ChatGPT
thinking_effortrequests; normal replies continue using network monitoring, while standard/advanced thinking waits for the page to actually enter and exit the generating state before signaling completion, avoiding false “conversation complete” detection during thestream_handoffphase. (#343) - Doubao conversation sync restored: Adapted to Doubao’s new sidebar DOM structure, restoring conversation list recognition, current conversation location, and new conversation entry sync, reducing sidebar feature failures caused by the official page update. (#342)
- Doubao outline and export structure adapted: Switched to Doubao’s new chat message area DOM, restoring outline extraction, latest reply extraction, and conversation export functions, preventing empty outlines or missing export content after the official update. (#342)
- Gemini image Markdown export restored: Compatible with Gemini’s new generated image structure, correctly preserving generated images in replies when exporting Markdown, no longer losing images due to wrapper changes or temporary
blob:URLs. (#339) - Gemini watermark removal compatible with new image components: Watermark removal now supports Gemini’s new generated image component structure, compatible with new image cards, copy buttons, and “Download full size image” buttons.
- Gemini conversation image watermark misidentification fix: Adjusted Gemini watermark size detection logic to prioritize
48pxwatermark config when preview image source is detected on/appconversation pages. (#335) - Extension update notification z-index fix: Raised the z-index of the “plugin updated” notification card to prevent it from being covered when the panel or quick overlays are open.
- Grok user query width alignment fix: Fixed Grok user query bubbles being incorrectly centered instead of right-aligned after enabling “User Query Width”.
- Grok content area width abnormal shrinkage: Fixed
--content-max-widthbeing applied redundantly on nested containers during Grok page width adjustment, causing the latest conversation content to be noticeably narrower than older messages.
v1.0.34
🐛 Bug Fixes
- Firefox idle callback compatibility: Fixed errors in Firefox caused by calling
requestIdleCallback/cancelIdleCallbackwithout thewindowcontext, preventingTypeErrorduring outline scroll sync. - Theme sync hydration race condition: Delayed theme callback registration and theme listener startup to ensure theme state writes only happen after settings hydration is complete, reducing the risk of disclaimer dialogs reappearing or settings being overwritten by defaults on Firefox after switching to dark or “Follow System” mode. (#333)
v1.0.33
🐛 Bug Fixes
- Site width toggle not working: Fixed the “Enable Page Width” and “Enable User Query Width” toggles not opening for ChatGPT, Claude, and other sites in “Site Settings”. Width config normalization now preserves already-saved site keys, preventing saved configs for sites not in the default table from being accidentally overwritten. (#330)
v1.0.32
🐛 Bug Fixes
- Userscript settings reverting to defaults: Fixed userscript resetting the entire config to defaults whenever any setting was changed after a page refresh; tightened
settings-storepreview state and hydration persistence timing to prevent temporary state from overwriting saved settings. - Userscript legacy settings format compatibility: Added compatibility for old userscript versions that stored the raw
settingsobject directly in GM storage; upgrades now automatically wrap it in the structure required by Zustandpersist, reducing settings failures caused by the old data format. - Disclaimer false-positive fix: Disclaimer dialog now waits for settings hydration to complete before evaluating display conditions, preventing userscript from incorrectly judging “not agreed” before settings are loaded and showing the dialog repeatedly.
v1.0.31
✨ Improvements
- Doubao page width sync: Page width control now also covers
--content-max-widthrelated containers and variables, fixing the bottom input box not changing when adjusting page width. - Quick button group position memory: The position of the quick button group after dragging is now automatically saved and restored after page refresh, reducing the need to reposition on every page visit. (#293, #3)
- Quick button settings structure consolidation: Quick button order, opacity, toolbox menu, floating toolbar state, and position are unified under
settings.quickButtons, with compatibility for old configs scattered at the top level and old backup files. - Layout settings converted to sliders: Page width, user query width, default margin, panel width, panel height, and snap trigger distance now use slider controls with real-time value display, reducing input complexity.
- Width config unified to percentage: Page width and user query width now use
%config exclusively, with quick preset buttons removed from the bottom; default value restore entry added for consistent settings UX. - Legacy width config auto-migration: Old
pxwidth data from previous versions is automatically converted and migrated to the new percentage config after upgrading.
🐛 Bug Fixes
- Doubao native theme cleanup: Removed native theme override style injection for Doubao to avoid continued reliance on the separately maintained theme adaptation file.
- Quick button group drift on zoom: Improved positioning logic when the browser window is zoomed or resized; quick buttons now better maintain their relative position, reducing cases where they end up in the center of the page.
- Slider preview state lingering: Fixed temporary preview values persisting when switching pages or closing the panel while dragging a slider in settings; unsubmitted preview states are now cleaned up when the component unmounts.
v1.0.30
v1.0.29
✨ Improvements
- Userscript bundle size reduction: Userscript build now loads
reactandreact-domvia CDN, and splits localization strings into external JSON resources, significantly reducingophel.user.jsbundle size, resolving Greasy Fork sync failures due to script length, without affecting the browser extension build. - Userscript i18n load chain optimized: Userscript now prioritizes initializing the current language resource on startup and automatically refreshes UI text when the language is changed, ensuring stable first-screen loading and switching experience with external language packs.
🐛 Bug Fixes
- Theme switch animation origin fix: Fixed theme switch animation in quick buttons always starting from the top-right corner of the page; theme switching in both quick buttons and main panel now consistently radiates from the triggering button’s position.
v1.0.28
🚀 New Features
- AI reply Mermaid fallback rendering: Added Mermaid code block detection and rendering for sites without native support, with code/diagram toggle, zoom, fullscreen, and PNG download. (#285)
✨ Improvements
- KaTeX font size reduction: Extension bundle now only includes
.woff2fonts, reducing bundle size while maintaining Firefox compatibility. - Mermaid toolbar experience: Improved button icons, page and fullscreen viewing experience.
- Panel and outline icon refresh: Upgraded Sparkle icon in panel header/collapsed entry and “Show user queries only” button in outline panel to more consistent SVG icons, with minor button size and hierarchy adjustments for better visibility in dark and light themes.
- Prompt icon system improved: Redrawn prompt-related icons with a separate icon for the prompt queue, reducing visual confusion between different entry points.
- UI improvements: Improved icon display and adjusted About page supported platforms section and related feature descriptions for better visual consistency and readability.
- Extension update notification improved: When the browser extension detects a new version, a custom Ophel refresh notification card now appears at the bottom-right corner of the page, clearly indicating “Plugin Updated” with a one-click refresh entry, reducing confusion when users continue in old context after an update.
🐛 Bug Fixes
- Gemini Enterprise export noise cleanup: Cleaned up unexpected noise content (extra style and status text) appearing in some Gemini Enterprise export results, improving output consistency and readability.
- Input focus stealing on native sites: Fixed an issue where Ophel could steal input focus on native sites like ChatGPT in Firefox, causing the first character typed in the outline search box to lose focus and prevent continuous input. (#304)
- Unified focus protection: Unified input focus protection logic across Settings, Global Search, Prompt Queue, and the main panel, while preserving local keyboard interactions (
Enter,Escape, etc.) inside queue and modal dialogs. - Duplicate update notification: Fixed an issue where after extension updates, multiple notifications appeared simultaneously (Ophel’s own notification, a fallback notice, and Plasmo’s default “Context Invalidated, Press to Reload”), consolidated into a single update notification card.
v1.0.27
🚀 New Features
- User query math formula rendering: User query Markdown rendering now supports detecting and displaying LaTeX math formulas (inline and block formulas). (#299)
✨ Improvements
- Export progress notification enhanced: Unified improved export start toast text clearly reminding “please do not operate the current page during export”, with slightly longer display time; synced in 10 languages to reduce accidental operations during long AI Studio and DeepSeek conversation exports.
- Markdown export header typography improved: Adjusted spacing structure between the title and metadata block at the top of exported documents for better first-screen readability.
🐛 Bug Fixes
- AI Studio virtual scroll export misalignment: Refactored round pairing and ordering logic for AI Studio exports during virtual scrolling, fixing user queries, thinking content, and AI replies being misaligned or stacked at the bottom of the document in long conversations.
- AI Studio export missing content and format issues: Fixed empty off-screen replies, only exporting thinking without body, truncated user queries, and incomplete extraction of lists, quotes, inline code, code blocks, Markdown, and formulas during virtual scrolling.
- Export title polluted by tab renaming: Fixed AI Studio export document title incorrectly using the browser tab title rewritten by the extension, now prioritizing the original conversation title; also added protection for Grok and the general export pipeline to avoid being overwritten by the current page title.
v1.0.26
🚀 New Features
- Gemini Voyager incremental import: Added “Import from Gemini Voyager” in data management, flattening Voyager folder structures into path names and incrementally merging into the current Gemini account for easy migration from Voyager. (#287)
✨ Improvements
- Multi-line block formula delimiter format: Adjusted block-level LaTeX wrapping rules so multi-line formulas use newline-wrapped
$$delimiters when exporting Markdown, reducing adhesion to body text; double-click copy formula base delimiter logic also synchronized. (#296)
🐛 Bug Fixes
- DeepSeek page width sync: Adjusted
chat.deepseek.compage width control logic to unify the message area and bottom input box under the same--message-list-max-widthvariable, so the input box matches the message area when page width is expanded. (#281) - Claude outline and scroll navigation broken: Compatible with Claude’s new chat scroll container structure, fixing empty outline extraction and broken “go to top / go to bottom / return to anchor” navigation based on scroll container. (#291)
- Gemini formula copy losing closing parenthesis: Fixed double-clicking to copy LaTeX formulas on Gemini incorrectly removing
)at the end of formulas; export pipeline not affected. (#292) - Markdown export format fix: Improved general
htmlToMarkdown()conversion logic, fixing code block language titles being merged with content, code content being flattened to one line, and multi-level list first-level indent being lost when exporting/copying Markdown on ChatGPT and similar sites. (#296)
v1.0.25
🚀 New Features
- Yuanbao site support: Added initial compatibility for
yuanbao.tencent.com. (#279)
🐛 Bug Fixes
- Settings modal input focus protection: Changed keyboard event capture interception for input controls in the settings modal to apply to all sites universally, fixing focus being stolen by native input boxes on some sites in Firefox environments in settings items like “Page Width Control”.
v1.0.24
🚀 New Features
- Tencent ima site support: Added initial compatibility for
ima.qq.com. (#275)
🐛 Bug Fixes
- QwenAI international version width control: Fixed “Page Width” and “User Query Width” settings not taking effect on
chat.qwen.ai, now correctly overriding conversation container and user bubble width styles. - DeepSeek width control: Fixed page width control and user query width setting not taking effect on
chat.deepseek.com, switched to overriding virtual list width variable and stable user message structure. (#281)
v1.0.23
🚀 New Features
- QwenAI international version support: Added initial compatibility for
www.qianwen.com. (#240)
🐛 Bug Fixes
- New conversation shortcut compatibility: Fixed new conversation shortcut not working on macOS and some sites, and Doubao falling back to full page refresh.
- Advanced model settings search i18n: Fixed advanced model usage stats related settings titles not being localized in global search results.
v1.0.22
✨ Improvements
- Userscript external resource publishing: Changed userscript styles, notification sounds, and watermark base images to hashed external static resources distributed via a separate
userscript-assetsrelease channel, preventing repeated bundling of the same resources in every GitHub Release. - Tooltip capability consolidation: Extracted a shared tooltip core, unifying styles, positioning, container selection, and hide timing between React panel and site injection scenarios, reducing duplicate implementations.
- Streaming request monitoring precision: Narrowed the generation request matching conditions for ChatGPT, Grok, Kimi, and ChatGLM to reduce misidentifying regular network requests as AI streaming replies.
🐛 Bug Fixes
- Userscript resource loading stability: Userscript now references stable external resource URLs, reducing publish risk from continued script size growth and providing a foundation for future versions to reuse unchanged resources.
- Gemini My Stuff userscript compatibility: Fixed “Open in New Tab” hover button icon not rendering on the Gemini “My Stuff” page in userscript environment due to CSP / Trusted Types restrictions.
- Gemini My Stuff hover state lingering: Fixed hover button and tooltip text still showing after clicking “Open in New Tab” and returning to the original page.
- Gemini Usage panel userscript compatibility: Fixed the advanced model Usage stats panel continuously erroring on the Gemini page in userscript environment due to Trusted Types blocking
innerHTML. - Gemini user query rendering userscript compatibility: Fixed Gemini user query Markdown rendering erroring in userscript environment due to Trusted Types blocking direct
innerHTMLassignment. - Gemini Enterprise Shadow DOM compatibility: Fixed user query Markdown preview failing in Shadow DOM scenario and advanced model Usage stats panel mounting issues causing missing styles and text appearing in the input area.
- Single-line Markdown user query rendering: Relaxed user query Markdown detection to support single-line quotes, headings, lists, bold, inline code, and links triggering rendering normally.
- ThemeManager global singleton reuse: Fixed
Appand core modules creating duplicateThemeManagerinstances on page refresh, causing theme state competition and[App] Global ThemeManager not found, creating fallback instancewarnings in console. - Gemini refresh false positive completion notification: Fixed Gemini standard and Gemini Enterprise occasionally incorrectly judging “AI generation complete” and showing completion notifications and playing sounds on page refresh.
- ChatGPT model lock compatible with new page: Adapted to ChatGPT’s new model selection menu, fixing the model lock repeatedly opening/closing the model dialog, old model names being mistakenly identified as the current model, and model name in tab title being unstable on the new page.
- DeepSeek deep thinking export and outline extraction: Fixed outline, copy Markdown, and export Markdown incorrectly extracting thinking chain content when DeepSeek deep thinking is enabled; export results now respect the “Include thinking chain in export” setting.
- DeepSeek share conversation export: Fixed
chat.deepseek.com/share/*share page export showing “Please open a conversation to export” error, now directly recognizing share conversations and completing export. - DeepSeek virtual scroll outline out of order: Fixed AI reply headings occasionally being sorted before their corresponding user queries in DeepSeek long conversation virtual scroll scenarios.
v1.0.21
🚀 New Features
- Advanced model usage stats and local estimation: Added local conversation counting and estimation panel for advanced models, with a history usage stats chart on the features page that can be viewed by site and hour, day, or month in counts or rough token estimates. (#103, #256) by @KanameMadoka520
🐛 Bug Fixes
- Fixed userscript failing to load due to a name change; rolled back script name
- Fixed DeepSeek virtual scroll causing missing outline and export format loss
- Fixed DeepSeek not refreshing after deletion and Doubao conversation deletion not syncing to the original site
- Fixed Doubao “Copy Latest Reply” having no content; upgraded multi-site “Copy Latest Reply” to Markdown extraction to preserve headings, bold, tables, formulas, and code blocks; compatible with DeepSeek / AI Studio virtual scroll and Gemini Enterprise Shadow DOM scenarios
v1.0.20
🚀 New Features
- Gemini MyStuff open in new tab: Added an “Open in New Tab” button to media cards on the Gemini “My Content” page, supporting direct jump to the original conversation location. (#185)
✨ Improvements
- Shortcut cross-platform compatibility:
- Unified primary and secondary modifier key cross-platform semantics: Windows/Linux uses
Ctrl/Alt, macOS usesCommand/Option, improving consistency for multi-device shared configs. - Shortcut settings page and queue shortcut hints now uniformly display by physical key normalization; recording
Option + letter/number/common symbolon macOS no longer shows abnormal display due to system special character input. - Fixed some shortcuts on macOS saving as
∂,†,¬and other characters due toOptionparticipating in special character input, causing display issues or unstable triggering. - Added compatibility migration for locally saved old shortcut configs, covering extension startup, settings page hydration, cross-page sync, and full settings replacement scenarios to reduce reconfiguration cost for existing users after upgrading.
- Unified primary and secondary modifier key cross-platform semantics: Windows/Linux uses
v1.0.19
🚀 New Features
- Qianwen (Tongyi Qianwen) site support: Added initial compatibility for
www.qianwen.com. (#189) - Prompt queue batch import: Support pasting multiple items at once in the prompt queue, parsed as “split by line” or “custom delimiter” and batch-enqueued; the first item is sent immediately when AI is idle, remaining items auto-queue and send in sequence. (#223)
✨ Improvements
- Completion notification enhanced: Added 3 built-in notification sound presets with configurable play count and interval, automatically stopping repeated playback when the user returns to the page. (#228)
- i18n text completed: Completed missing and residual English text in German, Spanish, French, Japanese, Korean, Portuguese, and Russian, unifying multilingual display experience.
🐛 Bug Fixes
- Fixed unstable go-to-top, go-to-bottom, return-to-anchor, outline scroll follow, and highlight state on DeepSeek and Z.ai in some long conversations. (#241)
- Fixed Gemini page repeatedly resetting tab title to
Google Geminiin the background, causing flickering conflicts with the auto-rename logic. - Fixed shortcut conflict hint falling back to Chinese in non-Chinese languages due to empty text.
- Fixed Korean shortcut list missing
shortcutShowShortcutstext. - Fixed Spanish panel title still containing old brand name
Gemini Helper.
v1.0.18
🚀 New Features
- Z.ai site support: Added initial compatibility for
chat.z.ai. (#218)
✨ Improvements
- Temporarily hidden “Manual Anchor” settings and quick button to reduce user confusion
- Improved Gemini and AI Studio Markdown table rendering styles after enabling page width expansion
- Popup site support list aligned with adapters, quick access now shows all supported sites
🐛 Bug Fixes
- Limit user query image sizes when “User query Markdown rendering” is enabled. (#224) by @tjsky
- Fixed floating toolbar being pushed outside the visible area after dragging to the screen edge and then resizing the window. (#221)
- Fixed Grok conversation sync incorrectly treating command panel Actions as conversations
- Fixed Grok pin recognition logic to prevent all pinned/unpinned anomalies after sync
v1.0.17
v1.0.16
v1.0.15
🚀 New Features
- Global search shortcut customizable: Added
openGlobalSearchconfigurable action, default keyCtrl+K(shown as⌘Kon Mac), configurable in “Shortcuts → Interaction Controls”. - Global search settings direct shortcut: Added “Global Search Shortcut” setting in “Global Search → Search Matching” with a one-click jump to shortcut settings and highlight to the corresponding key row.
- DeepSeek site support: Added initial compatibility for
chat.deepseek.com.
✨ Improvements
- Dynamic trigger hint: The trigger description at the top of the global search page changed from fixed text to dynamically assembled, reflecting the current user config (double Shift / custom key) in real time.
- Delete shortcut scenario compatibility: When user removes the global search shortcut, the trigger description automatically degrades to show available trigger methods; shows “Not set” if all are disabled.
- Conversation sync result diagnostics enhanced: After manual sync, new “scanned/added/updated” result hints are shown; clear guidance is provided when no conversations are detected in the sidebar; and update count calculation and metadata backfill write logic are corrected. by @joevalleyfield
- DeepSeek conversation sync enhanced: Added conversation rename sync, link and CID backfill updates, and pinned conversation recognition with support for distinguishing pinned/normal conversation groups.
- DeepSeek generation state monitoring: Integrated DeepSeek streaming generation request monitoring for more timely generation start/end state, more accurate tab state and completion notification pipeline.
🌍 Internationalization
- 10 language text completed: Completed and synced
globalSearchTriggerHinttemplate text,globalSearchTriggerDoubleShift, and “Global Search Shortcut” jump item (title/description/button) key values in 10 languages.
🐛 Bug Fixes
- Settings search missing items: Added “Shortcuts”, “Global Search”, “Conversation sync delete” and other previously unsearchable config items to settings search, with support for finding by name and keywords.
- Shortcut settings search stability: Shortcut entry index now dynamically generated from metadata; no manual maintenance needed when adding/adjusting shortcuts in the future, reducing miss risk.
- DeepSeek send button misidentification: Fixed send button selector incorrectly matching the attachment button, with added fallback to simulate
Enter/Ctrl+Enterwhen using send shortcut for better compatibility. - ChatGPT Projects export failure: Fixed “Export Markdown / Copy Markdown” failing in Projects conversations with
Conversation not founderror because project conversations weren’t synced to local index; now immediately supplements conversation metadata from the current page before exporting.
v1.0.14
🚀 New Features
- Doubao (ByteDance) support: Ophel now fully supports Doubao, ByteDance’s AI assistant.
🐛 Bug Fixes
- Backup restore data loss: Fixed restored backup data being overwritten by empty data from open AI pages that still had old data in memory after restore. Now automatically notifies all open AI pages to refresh after successful restore and skips the first auto-sync to keep restored data clean.
- Backup export/import data structure errors: Fixed
lastUsedFolderIdand other auxiliary properties being lost on export, and a condition error preventing correct restoration of backups with 2+ conversations on import. - Reading history restore structure compatibility: Fixed
readingHistorybeing incorrectly wrapped as{ readingHistory: ... }during local import and WebDAV restore; now correctly restores as{ history, lastCleanupRun }to prevent reading history loss. - WebDAV restore status writeback fix: Fixed
lastSyncStatusremaining atsyncingafter successful download restore; now correctly writes backlastSyncTimeandlastSyncStatus: success. - Gemini cross-browser import invisible conversations: Upgraded Gemini conversation isolation from numeric
cid(/u/n) to account email priority, with automatic migration from old data (numericcid→ emailcid) on first Gemini open after upgrade, supportingu/0tou/1cross-browser import scenarios. - Import backup module load error: Fixed
Cannot find moduleerror during dynamic import of the validation module in local import and WebDAV restore pipelines; switched to static import for stable availability in build artifacts. - Import failure diagnosis: Added clear console error logs for import parse and write failures, with actual error message shown in Toast for easier issue identification.
- Import confirm dialog and i18n text: Improved “backup time/type” info display style in the import confirm dialog; added and completed “Type” and “Open AI pages will be refreshed” key values in 10 languages.
v1.0.13
🚀 New Features
- Zen Mode: Added Zen Mode setting to hide unnecessary page elements (such as model disclaimers at the bottom) for a purer conversation interface experience.
🐛 Bug Fixes
- Gemini Enterprise prompt queue fix: Fixed prompt queue on Gemini Enterprise after the page update — prompts were not being inserted into the native input box, incorrectly triggering the voice button causing “Could not recognize your speech” error.
- Fixed global Enter key capture listener intercepting Enter events in the queue input box, causing content to be submitted without being inserted.
- Fixed
findTextarea()incorrectly matching the extension’s own queue input (gh-queue-input) instead of the Gemini Enterprise ProseMirror editor. - Fixed submit button selector missing the “Send” label, unable to match the redesigned send button.
- Fixed submission confirmation logic timing out and retrying due to editor placeholder “Continue asking” being mistaken for empty content.
- WebDAV backup display fix: Fixed backup list not showing on non-Jianguoyun WebDAV servers (e.g. Nextcloud, Synology, Aliyun Drive WebDAV) due to XML namespace prefix parsing failure.
v1.0.12
🚀 New Features
-
Prompt Queue: A seamless new interaction experience that keeps your train of thought uninterrupted while AI is generating.
- Smart queue mechanism: When entering prompts via the floating window, if AI is idle the prompt is sent immediately; if AI is generating, the prompt is automatically added to the floating queue and sent in sequence when AI is idle again.
- Immersive floating window (Ghost UI): Floats above the native input box providing a queue overview. Supports external invocation; double-clicking a prompt in the Prompts panel also uses this queue mechanism.
- Full management actions: Supports one-click clear, delete, jump-send (force send), and displays an “Edit” button on hover before sending to support inline editing of multi-line long text.
- Highly customizable and adaptive: Supports globally custom invocation shortcut (default
Alt+J); the floating input box seamlessly expands width and height based on input content; bottom tip for closing guide. - Deep infrastructure integration: Global search (Double Shift) fully covers “Prompt Queue” settings; search and multilingual translation synchronized.
-
Prompt variable advanced usage: Added default value and dropdown selection syntax support for prompt variables.
{{variable:default_value}}: Variable dialog pre-fills the default value on open for quick confirmation.{{variable:option1|option2|option3}}: Variable dialog presents a dropdown selector for precise preset option selection.- Fully backward compatible with basic
{{variable}}syntax; no need to modify existing prompts.
🐛 Bug Fixes
- Prompt variables multilingual support: Fixed prompt variables (
{{variable_name}}) only supporting English letters and numbers; now fully supports Chinese, Japanese, Korean, Russian, and all languages and special characters. - Gemini Enterprise theme switch: Fixed “Settings and Help” button not clickable due to Gemini Enterprise page update, which prevented theme-following-system switching.
v1.0.11
New Features
- Added
Include thinking chain in exporttoggle in export settings (enabled by default), supporting optional inclusion or exclusion of thinking chain content. - Added export lifecycle capability: site adapters can implement pre-export preparation and post-export restoration, providing a unified extension point for future cross-site export enhancements.
Improvements
- Gemini (standard) export now supports auto-expanding thinking chains in conversations and restoring original collapsed state and reading position after export.
- Gemini (standard) thinking chain export now presented as Markdown blockquote (
>), clearly separated from the body and avoiding duplicate content. - Global search settings retrieval now always uses the complete settings set for scoring, improving settings title hit rate in multilingual interfaces.
- Added
export-include-thoughtssettings index and title mapping to global search for direct location by name and keywords. - Conversation list information density improved: title and tags now on the same line, preventing blank second-line placeholder for conversations without tags.
- Removed update time display from conversation list to prioritize title and tag information in the visible space.
- Multi-tag collapse enhanced: continues to show
+Nwhen tags exceed displayable count, with hover support to view full tag list (with tag colors and names). - Narrow panel adaptation: automatically tightens tag display strategy at narrower widths to ensure title readability.
- Conversation action entry improved: right-side action buttons use lighter hover show/hide interaction to reduce interference with main information in default state.
Bug Fixes
- Gemini (standard) outline extraction now filters
cdk-visually-hiddenauxiliary headings, fixing language-related hidden headings like “Gemini says” incorrectly appearing in the outline. - Gemini (standard) export Markdown now cleans
cdk-visually-hiddennodes before export to prevent auxiliary hidden headings from appearing in exported files. - Added 10-language key values for
Include thinking chain in exportrelated text, fixing missing settings text in non-Chinese/English environments.
v1.0.10
New Features
- Conversation management added “Cloud sync delete” capability, supporting batch trigger to also delete conversations from the site cloud after sync.
- Settings page sync delete text and capability description unified to a cross-site model for easier future expansion.
- Allow disabling double Shift global search shortcut.
Improvements
- ChatGPT sync delete pipeline simplified and standardized reason codes, reducing redundant logic and debug branches.
- Claude organization ID parsing switched to environment-based routing with API fallback, improving plugin and script environment compatibility.
- Grok now uses API/UI dual-channel delete strategy; when cloud sync is enabled, page refreshes automatically after delete to keep the list consistent.
Bug Fixes
- Fixed inaccurate remote failure count in conversation batch delete stats.
- Fixed Gemini / Gemini Enterprise UI delete flow stability issues, covering menu trigger, delete click, and completion state detection.
- Fixed Gemini Enterprise cloud delete success not removing local conversation in time.
- Fixed AI Studio cloud delete API instability causing rollback; switched to stable UI delete path.
v1.0.9
🚀 New Features
✨ Improvements
- Create/edit prompt dialog now disallows clicking overlay to close; retains button close and
Escclose, preventing accidental close when releasing mouse outside the dialog after text selection. - Category management dialog and “Rename category” input dialog unified to disallow overlay close for consistent interaction behavior.
ConfirmDialogandInputDialogaddedcloseOnOverlayClickconfig to control whether clicking overlay closes the dialog per scenario.VariableInputDialogintegrated with sharedDialogOverlay, unifying Portal, keyboard close, and overlay interaction behavior.- Fixed
Escclose order for multi-layer dialogs, now always closing the topmost dialog first. - Global search result area refactored to “context bar + non-floating group titles”, keeping main content fully visible during keyboard up/down navigation without group title obstruction.
- Global search keyboard navigation scroll strategy upgraded to “safe zone scroll”, keeping highlighted items stably within the visible safe area, reducing edge jitter and jumpy feel.
- Global search added
combobox / listbox / optionARIA semantics andaria-activedescendantlinkage for improved keyboard and screen reader accessibility. - Global search top-right shortcut label unified to
⌨ Ctrl+K / double shift, withCtrl+Kweak hint added to search input placeholder for better shortcut discoverability. - Added “contextual reminder” light hint: when user opens global search via UI, hints “next time press shortcut to open quickly” with support for dismissal and “don’t show again”.
- Contextual reminder frequency control and auto-convergence strategy: max once per day, total count limit, auto-dismiss, auto-stops reminding after shortcut usage threshold is reached.
- Global search context meta text changed to semantic expression (e.g. “Item X · Showing Y/Z”), reducing new user comprehension cost.
- Global search result area scroll improved: fixed horizontal overflow and beautified vertical scrollbar style for visual consistency.
- Global search hit reason tags completed: conversations (title/folder/tag), outline (title/type/number), prompts (title/category/content/ID), settings (name/keyword/ID/alias).
- Global search sort strategy enhanced: sorted by “exact match > prefix match > contains match > combined score > recent use”, reducing misclicks and improving first-screen relevance.
- Prompts now show a one-line hit snippet preview with “Content hit:” prefix and keyword highlighting when matched by content.
- Fixed hit reason text garbled in multiple languages; unified 10-language text readability.
- Global search added “Fuzzy Search” capability (optional toggle) supporting spell-error-tolerant fallback matching, with “fuzzy match” label in results.
- Fuzzy match results show differentiated highlight style (distinct from exact match) to reduce misidentification cost.
- Global search “Fuzzy Search” default changed to off; users can enable in “Settings → Global Search” as needed.
🐛 Bug Fixes
- Gemini watermark removal (standard): Fixed copy/download pipeline still getting watermarked or non-full-size images in some scenarios; unified to prioritize full-size watermark-removed results with safe fallback for copy pipeline.
- Gemini watermark removal compatibility: Improved extension and userscript interception strategy, cleaned up debug remnants, improved stability and consistency.
- Added
.gh-dialog-overlayrecognition in panel auto-hide and Portal active detection to prevent panel from being incorrectly retracted when dialog is open in Tampermonkey environment. - Fixed global search
ArrowUpnavigation being covered by floating group titles. - Fixed global search result area showing horizontal scrollbar at certain widths.
v1.0.8
🚀 New Features
- Added Search Everywhere global search dialog, triggered by double Shift / Ctrl(Cmd)+K, covering categories: All, Outline, Conversations, Prompts, Settings.
- Settings page added “Site Settings → Global Search” config page with prompt Enter behavior config (Smart/Locate only) and trigger method description.
- Quick button group added “Search” button (enabled by default) below the toolbox button for one-click global search access.
- Supports settings deep link location (page + sub-tab + row highlight) for precise navigation to specific settings.
🎨 UI & Interaction Upgrades
- Global search category bar and results area layout improved with category counts, All group rate limiting, and “Show more”.
- Search results unified hit highlight style; conversation result meta info on one line (site/folder/tag).
- Outline results enhanced user query and AI reply hierarchy distinction for better readability.
- Fixed hover highlight jumping during rapid scroll (short-term hover lock).
🐛 Bug Fixes
- Fixed abnormal search result category height and keyboard up/down navigation not scrolling to visible area.
- Fixed global search text and category display inconsistency in multiple languages.
- Fixed global search results not refreshing in time after conversation switch or outline delayed load.
- Fixed inconsistent prompt search Enter behavior across scenarios (no variable: insert directly; with variable: open fill dialog).
- Fixed folder name emoji double display and dropdown text alignment; extracted shared
SelectDropdowncomponent for unified dropdown style.
🌍 Internationalization
- Completed key values for all new global search text in 10 languages, including categories, empty states, prompt behavior, site names, and in-page hints.
v1.0.7
🚀 New Features
- Added “Settings → Features → Prompts Tab” config:
Double-click prompt to send directly(off by default); when enabled, double-clicking a prompt sends it directly; prompts with variables auto-send after variable confirmation - Support custom send shortcut (Enter / Ctrl+Enter) #59
🎨 UI & Interaction Upgrades
- Outline visual overhaul (Focus Card):
- Card design: Completely refactored “user query” display style in the outline, using a refined card style (Focus Card) to stand out among headings.
- Visual anchor: Added a left-floating “Pill Indicator” for clear visual rhythm in long lists.
- Interaction feedback: Removed old highlight right-side vertical bar; replaced with border color change and subtle glow that better matches the card metaphor for immersive feedback during sync scrolling (Sync) and manual positioning (Locate).
- Dark mode adaptation: All card colors, shadows, and highlight effects are theme-adaptive, perfectly supporting dark/black modes without jarring white backgrounds.
🐛 Bug Fixes
- Outline highlight fix: Fixed AI reply headings showing square corners in manual Locate mode (caused by sync style overriding), all highlight states now maintain perfect rounded rectangles.
- Theme style improvements:
- Dark mode upgrade: Improved brand gradient colors for Classic Dark, Aurora, Cyberpunk, and other dark themes by reducing brightness to minimize glare and improve reading comfort.
- Button visual unification: Refactored “Add Prompt” button style to match the bottom navigation button style (header background + hover shadow) for high UI language consistency.
- Contrast fix: Fixed text contrast in dark mode to ensure bottom navigation buttons and other elements are clearly visible.
- Export filename optimization: Changed export timestamp format from
YYYYMMDD_HHmmssto more readableYYYY-MM-DD_HH-mm-ssfor easier file management.
📜 License & Documentation
- Open source license switch: Project license migrated from
CC BY-NC-SA 4.0toGNU GPLv3, withpackage.jsonSPDX identifier updated toGPL-3.0-only. - License text updated:
LICENSEfile replaced with official GPLv3 text with copyright attribution. - Multilingual docs synced: Main README and multilingual READMEs under
.github/readmesupdated to unified license badge and license description. - Authorization notice cleaned: Removed “contact for commercial license” text from README to avoid ambiguity with GPL terms.
v1.0.6
🚀 New Features
- System theme mode: Added Follow System Theme, keeping panel and page theme in sync (including Gemini Enterprise system theme detection and switching).
- System switch animation: Consistent theme switch animation experience when manually switching to system mode.
- New quick toolbox: Added new entry point in button group operations, improving convenience for certain actions
- Toolbox customization: Added toolbox menu configuration, allowing users to freely customize buttons shown in the toolbox.
- Auto full sync: Changed to trigger based on whether current site/team data is empty, preventing false blocking by other site historical data.
- Full sync stability: Added sidebar ready wait and multi-round scroll sync to improve completeness in lazy-load scenarios.
- Quick button transparency: Added overall quick button group transparency adjustment (40%–100%) to reduce obstruction.
- Quick button drag interaction: Long-press shows progress hint, drag trigger clearer; drag position no longer persisted, switching panel position resets.
- Export enhancements: Support custom export filename (with automatic site prefix), Markdown content starts with H1 heading, and optional filename timestamp suffix.
🐛 Bug Fixes
- Grok manual sync: Fixed shortcut error when closing the “View All” dialog.
- Multilingual sync: Synced and completed missing translations for German, Spanish, French, Japanese, Korean, Portuguese, and Russian.
- Code quality: Fixed type definition issues in the export module.
🔧 Improvements
- Config experience: Moved toolbox settings to the “Basic Settings” page; added “Settings” button inside toolbox to directly open config dialog without navigating to a new tab.
- Internationalization: Toolbox menu and config items fully support 10-language display.
- Export text: Optimized “Export” button text to “Export Markdown” for clearer intent.
- Settings improvements: Improved export settings UI interaction, moved “Convert images to Base64” option to the bottom, improved input box experience.
v1.0.5
🚀 New Features
- Outline word count:
- Reply word count: In the outline panel, each user query shows the word count of the corresponding AI reply (e.g.
1.2k,3.5k) for quick content volume assessment. - Heading word count: Each heading node also shows the word count of its sub-content for content structure analysis.
- Thinking chain excluded: Automatically excludes AI “thinking process” (Thinking/Reasoning) content, counting only actual reply word count.
- Optional toggle: New “Show word count” option in settings panel, enabled by default and can be disabled as needed.
- Format optimization: Large numbers auto-formatted (1000 → 1k) for a clean interface.
- Reply word count: In the outline panel, each user query shows the word count of the corresponding AI reply (e.g.
🔧 Improvements
- AI Studio virtual scroll compatibility: Added word count cache for AI Studio to solve word count loss caused by virtual scrolling.
- Outline highlight flow refactored: Changed to data-driven flow for improved consistency and maintainability.
- Follow mode optimization: Scroll highlight observer only enabled in follow mode, reducing unnecessary listeners.
- Scroll tracking stability: Improved highlight visibility and scroll tracking stability.
- Dev experience: Reduced hooks and logging related lint noise.
- Settings disabled hint: Clicking a setting with unmet dependencies prompts to enable the prerequisite setting first, with hint throttling to prevent frequent popups.
- Quick button group optimization: Improved button grouping and separator logic; anchor hints support localization; manual anchor button off by default.
- Quick button position sync: When panel default position switches to left, quick button group also moves to the left.
🐛 Bug Fixes
- TypeScript type check: Fixed
pnpm typecheckfailure due to missing error variable incatch. - Markdown export: Fixed Markdown structure loss when exporting files and copying to clipboard (headings/lists/code blocks etc. restored).
- Markdown export: Fixed emoji garbled text (using Unicode codepoint + UTF-8 BOM to ensure correct encoding).
- Outline scroll tracking: Fixed unstable scroll tracking in some scenarios.
- Outline navigation hint: Overly long text is cleaned of whitespace and truncated to prevent hint overflow.
⚠️ Known Limitations
- Gemini Enterprise: Due to Shadow DOM limitations, new replies require page refresh to correctly display word count.
v1.0.4
🚀 New Features
-
Outline Favorites System:
- Favorites: Support bookmarking any outline node (click the star on the right side of the node) for quick access to important content.
- Filter mode: New “Favorites Mode” toggle in toolbar; when enabled, only favorited content and its context is shown.
- Smart context: Favorites mode automatically expands the path of favorited nodes and smartly hides irrelevant nodes for a clean view.
-
Inline Bookmarks:
- Instant bookmarking: Bookmark icon shown directly next to user queries and AI reply headings in the main page content without opening the sidebar.
- State sync: Inline bookmark actions fully sync with the outline panel; solid yellow star indicates bookmarked.
- Smart visibility: Unbookmarked icons show semi-transparent, brightening on hover to minimize visual distraction.
-
Global Custom Tooltip System:
- Premium visual: Introduced unified dark semi-transparent glassmorphism style tooltips, replacing native browser hints for a more refined and stable visual effect.
- Smart interaction: Improved tooltip trigger logic for outline action buttons, supporting automatic hint switching when entering sub-buttons, and resolving layout jumps from nested triggers.
- Environment compatibility: Resolved style loss issues for dialogs (Portaled Dialogs) in Shadow DOM environments.
-
UI Visual Upgrade:
- Icon improvements: Redrawn toolbar and list icons using rounder, fuller style for improved refinement.
- Layout improvements: Improved action icon (copy, bookmark) layout and gradient mask to prevent long text from blocking.
- Search box highlight: Unified focus style for prompt and outline search boxes, using theme blue instead of browser default black border for stronger interaction feel.
-
Outline shortcut enhancements:
- New
Alt + C: Quick toggle outline favorites mode. - New
Alt + Shift + 4/5/6: One-click expand outline to deeper levels (4–6). - New
Alt + Shift + Q: One-click show only user queries (auto-enables display and resets expand level).
- New
- Panel width customization: New panel width setting, adjustable from 200px to 600px.
- Panel snap optimization: Improved edge snap hide logic; snap always maintains 10px exposure regardless of panel width.
🔧 Improvements
- All-language text improvement: Ambiguous “Toggle Panel” text unified across all 10 languages to the clearer “Expand/Collapse Panel” for more explicit interaction intent.
-
Tooltip performance: Improved tooltip component measurement and positioning algorithm, supporting
disabledprop for dynamic disabling. - Text truncation: Unified outline text truncation to 200 characters across all site adapters, removing hardcoded ”…” suffix (handled by CSS).
- Full node copy: Enhanced copy functionality to support full text copy of all outline nodes (including regular headings and user queries) with smart full text extraction.
-
Config experience upgrade:
- Introduced
NumberInputcomponent to completely resolve conflicts between settings input boxes and Chinese input methods, and focus loss issues. - Adjusted panel default height to 85vh for a more comfortable visual experience.
- Expanded panel default margin adjustable range to 0–400px.
- Optimized snap trigger threshold default to 18px to reduce accidental triggering.
- Introduced
- Panel interaction: Improved panel behavior when clicking outside in “Edge Snap” mode; now retracts to edge instead of minimizing to floating ball.
- Settings text: “Auto-hide on click outside” description now dynamically updates based on snap state for more accurate interaction feedback.
-
Anchor state unified: Refactored anchor management to use global
anchorStoreinstead of scattered component states, resolving anchor state desync between panel buttons, shortcuts, and QuickButtons.
🐛 Bug Fixes
- UI fix: Fixed missing class name in prompt search box causing focus style failure.
- Outline follow: Enhanced scroll container detection to fix outline not correctly following reading progress on some sites. by @urzeye
- Markdown fix: Resolved Markdown rendering fix compatibility issues in streaming output scenarios. by @urzeye
- Settings sync: Fixed settings page input values potentially being overwritten by background sync during editing. by @urzeye
- Position sync: Fixed snap state being lost or not following correctly when switching panel default position in snap state.
- Init state: Fixed panel not correctly maintaining snap state after page refresh with edge snap enabled.
- Outline navigation: Fixed
Alt + ↑/↓shortcut navigation potentially getting stuck on the same item or inaccurate jumps during continuous key presses; now uses “viewport distance check” to automatically distinguish continuous navigation from manual scrolling. - AI Studio bookmark fix:
- Side-Channel Hydration: Resolved AI Studio virtual scroll/lazy load preventing retrieval of user query text, causing empty or missing outline titles; now intelligently backfills text via sidebar (
ms-prompt-scrollbar).
- Side-Channel Hydration: Resolved AI Studio virtual scroll/lazy load preventing retrieval of user query text, causing empty or missing outline titles; now intelligently backfills text via sidebar (
v1.0.3
🚀 New Features
- ChatGPT Markdown fix: Added ChatGPT bold text rendering fix, resolving Markdown
**bold**not rendering correctly. by @urzeye
🐛 Bug Fixes
- Support Gemini multi-account
/u/<n>URLs (keep single-user/appstyle). #16 by @lanvent - ChatGPT login issue: Fixed ChatGPT not being able to log in normally. by @urzeye
- Release workflow: Fixed missing previous version number in GitHub Release Full Changelog comparison link. by @urzeye
🔧 Improvements
- Adapter refactor: Migrated Markdown fix config to adapter pattern for improved code maintainability. by @urzeye
v1.0.1
🚀 New Features
- Userscript support: Complete build support for Tampermonkey/GreaseMonkey scripts, extending usage beyond browser extensions.
- Multilingual docs: Published and synced detailed README docs in 8 additional languages (Japanese, Korean, Traditional Chinese, German, French, Spanish, Portuguese, Russian).
- Engineering: Added Pull Request template to standardize community contributions.
🐛 Bug Fixes
- CI/CD: Optimized documentation build workflow to avoid triggering unnecessary builds when only updating README files under the
docsdirectory. - Documentation: Fixed missing “Demo”, “Local Build”, and “Star History” sections in multilingual docs.
v1.0.0
🎉 Initial Release
This is the first official release of Ophel, providing comprehensive enhancement experience for Gemini, ChatGPT, Claude, Grok, and AI Studio.✨ Core Features
Smart Outline Navigation
- Automatically parses AI reply content to generate a clickable table of contents outline
- Supports multi-level heading hierarchy
- Quick navigation to specific content positions
Conversation Management
- Organize conversations by folders
- Batch conversation operations
- Conversation search and location
- Sync native sidebar pin state
Prompt Library
- Rich built-in prompt templates
- Support custom creation and editing
- Group management and quick search
- One-click fill to input box
Shortcut System
- Rich keyboard shortcuts
- Support custom key bindings
- Covers common operation scenarios
Themes & Appearance
- 20+ carefully designed themes
- Separate light/dark mode themes
- Support custom page width
Reading History Restore
- Automatically saves reading position
- Restores last reading progress on reopen
- Intelligently distinguishes new content
WebDAV Sync
- Sync settings to personal WebDAV server
- Multi-device config sharing
- Full data control
🌐 Platform Support
- Gemini - Full feature support
- Gemini Business - Full feature support
- ChatGPT - Full feature support
- Claude - Full feature support
- Grok - Full feature support
- AI Studio - Full feature support
🌍 Multilingual Support
- Simplified Chinese
- Traditional Chinese
- English
- Deutsch
- Español
- Français
- 日本語
- 한국어
- Português
- Русский
🔒 Privacy Protection
- All data stored locally
- No remote data collection
- No third-party tracking
- Open source and transparent