Changelog

v2.22.12 (2026-06-08)

TTS semantic symbols: &, %, +, =, ×, <, >, @, and common currency symbols are converted to natural words before speech; other punctuation and decorative symbols are used only for pauses, not spoken.

v2.22.11 (2026-06-08)

TTS reading rhythm pauses restored: Fixed weaker pauses after symbol stripping. Punctuation still drives segmentation and pause timing, but spoken text excludes punctuation and symbols.

v2.22.10 (2026-06-08)

Image reply auto-scroll: When stickers or Markdown images load and change message height, auto-follow mode scrolls to the bottom again so the last text is not hidden behind the input area.

v2.22.9 (2026-06-08)

TTS skips symbols: Playback and Preview remove Unicode punctuation and symbols, keeping only letters, numbers, and spaces; punctuation still drives segment pauses.

v2.22.8 (2026-06-08)

TTS curly quotes fix: Prevents Chinese TTS from reading curly quotes “” / ‘’ as spoken punctuation names.

v2.22.7 (2026-06-08)

Dynamic UI i18n refresh: Language switches now refresh JS-generated labels, fixing cases where the default badge still showed 預設 in English UI.

v2.22.6 (2026-06-08)

More prompt suggestions: Defaults now include Continue writing and Outline; upgrades backfill missing default suggestions.

v2.22.5 (2026-06-08)

Config section i18n: Config backup block fully follows system language; Traditional and Simplified Chinese strings for import / export added.

v2.22.4 (2026-06-07)

Suggestions use input text: When the input box has text, clicking a suggestion sends the suggestion as the instruction and your input as the content.

v2.22.3 (2026-06-07)

MoMo active by default: The default MoMo system prompt is now active; upgrades restore a hidden default MoMo to visible.

v2.22.2 (2026-06-07)

MoMo default prompt: Updated to a more general, concise assistant persona with warm tone and basic guidelines.

v2.22.1 (2026-06-07)

Fewer built-in prompts: Only MoMo remains as a built-in default; legacy Assistant, Copywriter, Email Pro, and Translator presets removed. Custom prompts are kept.

v2.22.0 (2026-06-07)

Default prompt suggestions: Built-in suggestions are now Translate, Summarize, and Improve writing with English titles; default titles are no longer auto-translated to Chinese.

v2.21.97 (2026-06-07)

Localized prompt suggestion titles: Traditional and Simplified Chinese interfaces now label the section as 快捷提示. Default prompt suggestions include localized Chinese titles such as 冷知識, 聽起來很厲害, and 深度金句. Saved default suggestions are backfilled with localized titles automatically; custom suggestions are not overwritten.

v2.21.96 (2026-06-07)

Config import / export: Added a Config section at the bottom of Settings with JSON config export and import for backups or sharing. Exports include providers, models, prompts, prompt suggestions, TTS, page capture, web search, appearance, and behavior settings; chat history and image attachments are not included. Exported config may include API keys, so avoid sharing it publicly.

v2.21.95 (2026-06-07)

Prompt suggestion page-reference timing: Fixed a race where clicking a Prompt Suggestion immediately after Reference Page could send the user message before page capture finished, so the referenced page content was not attached. Sending now waits for page capture to finish before checking and attaching pending page context.

v2.21.94 (2026-06-07)

System prompts hidden by default: Default system prompts are no longer shown in the chat window by default, so general users can start from Prompt Suggestions instead. When no system prompt is visible, the sidepanel hides the prompt selector and removes any existing system message from the current session. Existing default prompts are migrated to hidden on upgrade; custom prompts are not changed.

v2.21.93 (2026-06-07)

Custom prompt suggestions: Quick-start prompts on a new chat can now be customized below System Prompts. Each suggestion has a separate title and full prompt; the chat window shows only the title and sends the full prompt when clicked. Long suggestion lists now scroll in both the welcome screen and settings.

v2.21.92 (2026-06-07)

TTS voice availability filtering: The voice dropdown now defaults to showing only more reliable Chrome/Google voices (Google* or localService === false) to avoid macOS system voices that are listed but fall back to the system default Cantonese voice during playback. If no reliable voices are available, it falls back to showing all voices; saved voices that are filtered out are cleared automatically.

v2.21.91 (2026-06-07)

TTS voice sync conflict: Added ttsVoiceUpdatedAt. When reading voice settings, the sidepanel compares local / sync timestamps and uses the latest selected voice. This fixes cases where options shows the new voice but the sidepanel is still overridden by stale local settings and keeps using the system Cantonese voice.

v2.21.90 (2026-06-07)

Manual TTS voice priority: Strengthened the "manual voice first" strategy. If a saved voice object cannot be matched in the sidepanel temporarily, playback no longer falls straight back to a Chinese/Cantonese voice. It reads the language code from the saved composite voice id and sets utterance.lang, so the browser at least falls back using the language the user selected.

v2.21.89 (2026-06-07)

TTS voice selection matching: Fixed TTS voice selection only saving voiceURI, which could match the wrong macOS / Chrome multilingual system voice or fall back to the system default Cantonese voice. Voice settings now save a name + lang + voiceURI composite id; sidepanel and preview use the same matching rule and set utterance.lang to the selected voice language.

v2.21.88 (2026-06-07)

TTS reading rhythm pauses: Reworked the reading rhythm implementation. Short and normal pause settings now merge multiple sentences into longer utterances and keep common punctuation for natural system-voice prosody, avoiding the browser's uncontrolled utterance-boundary pause after every sentence. Long-pause mode still uses shorter segments with extra delay. Preview and sidepanel playback now share the same rhythm strategy.

v2.21.87 (2026-06-07)

TTS setting updates during playback: TTS now listens for local setting changes while speaking. Speed and pitch slider changes are applied from the next segment. Due to Web Speech limits, an already-started utterance cannot change speed mid-segment, but the next segment uses the new setting.

v2.21.86 (2026-06-07)

Immediate TTS setting updates: Fixed sidepanel playback only reading chrome.storage.sync, which could keep using stale speed, pitch, or reading rhythm values right after slider changes. The sidepanel now reads local + sync and prefers the latest local settings so TTS sliders affect real playback immediately.

v2.21.85 (2026-06-07)

Page context limit copy: Simplified the Page Content Character Limit explanation, removed the site-specific example, and made it clearer that the setting controls how much page text the AI can read and how many tokens it may use.

v2.21.84 (2026-06-07)

Smart Capture Chinese translation: Fixed Smart Capture still appearing in English in Page Content Capture settings. Traditional Chinese now shows 「智能擷取(推薦)」 and Simplified Chinese shows 「智能抓取(推荐)」. Also added captureSmart / captureVisible fallback translations in i18n.js.

v2.21.83 (2026-06-07)

Language dropdown vertical centering: Fine-tuned the Language dropdown selector position so the selector center aligns with the Language title text center.

v2.21.82 (2026-06-07)

TTS preview button alignment: Fixed the Text-to-Speech Play Preview button being stretched across the full grid row. The button now keeps its natural width and aligns to the left.

v2.21.81 (2026-06-07)

Language dropdown alignment: Fixed the Language dropdown selector text being too large and vertically too low. The selector now uses smaller text, a lower control height, and aligns with the Language title row.

v2.21.80 (2026-06-07)

Language settings dropdown: The General page Language control changed from a three-option segmented control to a dropdown selector using a settings row layout with the label and description on the left and the selector on the right. The existing zhVariant storage and live translation refresh flow is preserved, including Provider hints, Thinking hints, OpenClaw session placeholder, and TTS voice groups after language changes.

v2.21.79 (2026-06-07)

TTS reading rhythm: Text-to-Speech no longer sends punctuation directly to the system voice, but punctuation is still used as pause boundaries so speech does not become flat and continuous. Added a "Reading rhythm" slider in settings to tune comma, sentence, and line-break pauses; preview and real chat playback use the same segmentation rhythm.

v2.21.78 (2026-06-07)

Custom provider icon: Custom provider now uses a settings gear icon inspired by the Icons8 Apple SF Regular Settings style, implemented as an original SVG instead of directly importing third-party licensed assets.

v2.21.77 (2026-06-07)

AI provider icons: Replaced generic placeholder icons for the newly added providers with LobeHub @lobehub/icons-static-svg assets. Anthropic, xAI, Vercel, Together AI, Hugging Face, Mistral, Novita AI, and BigModel (Zhipu) now use matching brand SVGs. Chutes uses its official favicon. Custom now uses a generic chip icon, and dark mode preserves colored provider icons.

v2.21.76 (2026-06-06)

User guide: Updated the site/ manual with the product name Hii~ Momo: AI Assist, 20+ AI provider list, auto-generated chat titles, TTS auto-read, and settings-page notes. Traditional Chinese and English pages were updated together.

v2.21.75 (2026-06-06)

AI Providers: Added Custom, Anthropic (Claude), xAI, Vercel AI Gateway, Together AI, Hugging Face, Mistral, Novita AI, Chutes, and BigModel (Zhipu). Added default Base URLs, common models, test models, and API key links. Custom supports user-defined Base URLs and model names. Anthropic uses a Messages API adapter; the other new providers use OpenAI-compatible chat completions.

v2.21.74 (2026-06-06)

Auto-generated chat titles: Added an instant fallback plus background AI naming flow for chat history titles. The first user message creates a clean fallback title immediately, then the first completed AI reply can rename it to a short summary. A new settings toggle is enabled by default. Manual renames are never overwritten, and Hermes / OpenClaw fixed local sessions skip auto-title generation.

v2.21.73 (2026-06-06)

Text-to-Speech settings: Fixed the "Auto-read AI replies" setting layout in narrow windows so the label stays on the left and the switch stays on the right. The auto-read label now uses the smaller settings subtitle size instead of matching the main Text-to-Speech title. Updated the UI-SPEC toggle section guidance accordingly.

v2.21.72 (2026-06-06)

Text-to-Speech: Added an "Auto-read AI replies" setting, off by default. When enabled, AI replies are read aloud after they finish. Speech text now removes Markdown, emoji, decorative symbols, and Chinese / English punctuation before playback so system voices do not read quotes, commas, periods, and similar symbols aloud. Preview text is cleaned the same way.

v2.21.70 (2026-06-06)

Model switching: Fixed standard AI model switches incorrectly starting a fresh sidebar chat, which made chat history look cleared. Hermes still uses its fixed local session, and OpenClaw now uses an isolated momo-openclaw-main session so Agent history does not overwrite standard model conversations. Switching back from Hermes / OpenClaw restores the previous standard Momo conversation first.

v2.21.61 (2026-05-25)

OpenClaw connection: WebSocket handshake now supports protocol v3–v4, fixing protocol mismatch (expected=4) on newer gateways that blocked Connect / session load. Gateway URL accepts http(s):// and ws(s)://; http(s) is auto-converted to ws(s).

v2.21.60 (2026-05-25)

Product name: Updated the extension display name from Momo AI Bud to Hii~ Momo: AI Assist. This also updates the manifest, sidebar / settings titles, localized document titles, float ball tooltip, web search marker, and README.

v2.21.59 (2026-05-25)

Page reference icon: Fixed the assistant action bar showing the reference page icon on later replies whenever the session had ever used a page reference. The icon now appears only when the user message immediately before that assistant reply has Page Referenced, and it opens only the page context bound to that turn.

v2.21.58 (2026-05-25)

Page reference token cost: Fixed an issue where referenced page content could be injected again in later turns because it was stored on an earlier user message that remained in chat history. Page content is now injected into the API payload only when the latest user message itself has Page Referenced; follow-up turns no longer resend the full page.

v2.21.57 (2026-05-25)

Smart Capture: Added Smart Capture (Recommended) and Visible Text page reference modes. Smart Capture chooses a token-saving strategy by page type: article / documentation pages use Markdown Smart Extraction, while product pages, pricing pages, dashboards, settings pages, and table / card / button-heavy pages use visible text extraction. Visible Text collects and deduplicates visible headings, paragraphs, lists, tables, buttons, and price / plan / feature blocks.

v2.21.56 (2026-05-25)

Markdown Smart Extraction: Fixed a Readability misclassification on product / SPA pages where the referenced URL was correct but the captured content came from hidden template content or an unrelated article fragment. Extraction results are now checked against the current page title / H1 keywords; mismatches fall back to an untouched fallback DOM plus the page's visible document.body.innerText.

v2.21.55 (2026-05-25)

Page reference delivery: Fixed an issue where the UI showed Page Referenced, but some OpenAI-compatible providers, such as Qwen-style models, still answered as if the page content was missing. Referenced page content is now attached directly to the current user message API payload instead of relying on a mid-conversation system message. Web-search detection also uses the original user input so the full referenced page is not mistaken for a search query.

v2.21.54 (2026-05-24)

Hermes / OpenClaw connection state: After refreshing the settings page or switching appearance theme, Hermes / OpenClaw Connect state and the model toggle restore correctly without requiring reconnect. Connection state is matched by Base URL, API key, and OpenClaw session key; manual Disconnect still clears it. The sidebar also syncs model selection from settings.

v2.21.53 (2026-05-24)

Agent edit scroll: After editing and resending a message on Hermes / OpenClaw, the chat scrolls reliably to the latest user / assistant messages without bouncing back.

v2.21.52 (2026-05-24)

Agent edit behavior: When editing a user message on Hermes or OpenClaw, Momo appends the edited content as a new message and resends it to the agent instead of truncating local history (remote agent sessions cannot be rolled back by Momo). Standard OpenAI-compatible providers keep the original replace-and-truncate behavior.

v2.21.51 (2026-05-24)

AI reply image dedup: Fixed duplicate images when Hermes / ComfyUI returned both a full MEDIA: URL and a bare image URL from the query string. MEDIA: lines now take only the full URL; ComfyUI /view links are normalized for deduplication.

v2.21.50 (2026-05-24)

AI reply images: When an AI reply contains MEDIA:<url>, Markdown images, or HTTP/HTTPS image URLs, Momo automatically downloads and displays them inline. Successfully cached images are stored locally in IndexedDB, not just as external links. HTTP image replies from Hermes / OpenClaw (including OpenClaw image / image_url content parts) are supported. See Image Upload — Images in AI Replies.

v2.21.24 (2026-05-07)

Sidebar input startup: Fixed an issue where opening the Momo AI Bud sidepanel could clear text typed immediately after the UI appeared, making it feel like users had to wait before typing. The composer reset now runs before model, language, and history initialization, so the input is ready right away.

v2.21.23 (2026-05-05)

Hermes Setup Guide i18n: Hermes Setup Guide now uses i18n keys with Traditional Chinese, Simplified Chinese, and English text. The Hermes .env example now renders as a real multi-line code block instead of collapsing into one line. README and AI Providers docs also include the Hermes Agent overview and usage guidance.

v2.21.22 (2026-05-05)

Hermes Setup Guide: Hermes (beta) now shows the same Setup Guide button as OpenClaw (beta) in the Connect row. The modal switches content based on the current provider; Hermes shows the .env example and Hermes gateway restart steps, including API_SERVER_CORS_ORIGINS=* and the placeholder API_SERVER_KEY=<your-secret-key>.

v2.21.21 (2026-05-05)

Hermes .env guidance: Settings and AI Providers docs now include a Hermes Agent .env example, explaining that Hermes needs API_SERVER_ENABLED, API_SERVER_HOST, API_SERVER_PORT, API_SERVER_KEY, and API_SERVER_CORS_ORIGINS configured like an OpenClaw gateway. The sample key uses <your-secret-key>, and API_SERVER_CORS_ORIGINS=* is documented as the simplest working setting for Chrome extension / remote access.

v2.21.20 (2026-05-05)

Hermes Chat 403: Hermes chat requests now go through the background proxy_fetch path to avoid browser Origin / CORS / preflight differences from direct sidepanel fetch calls. Hermes /v1/chat/completions now uses a minimal OpenAI-compatible payload: model: "hermes-agent", messages, and stream: false.

v2.21.19 (2026-05-05)

Hermes connection and switching: Hermes HTTP 401/403 and browser fetch failures now show the current Chrome extension origin so the Hermes host can set API_SERVER_CORS_ORIGINS=chrome-extension://<extension-id> and restart the gateway. Switching from another model to Hermes now starts a fresh visible chat and clears stale images/page references. Agent provider requests also filter out local system messages so custom system prompts are not sent.

v2.21.18 (2026-05-05)

OpenClaw response stability: Fixed an issue where sending a message could first repeat the previous assistant response. OpenClaw chat.send now uses deliver: true, and streaming/history fallback is filtered by the current runId plus a pre-send history snapshot so only new assistant replies after the current user message are accepted.

v2.21.17 (2026-05-05)

Hermes Provider: Added Hermes (beta) as an AI service provider. The default Base URL is http://127.0.0.1:8642/v1, and the default model is hermes-agent. This provider connects through Hermes' official OpenAI-compatible API Server, reusing the existing Chat Completions streaming path instead of OpenClaw WebSocket RPC. Settings now include a Hermes (beta) option, official favicon-style icon, API Server hints, and documentation link. Hermes now follows the same connect-first flow as OpenClaw, and the sidebar disables custom system prompt, chat history/new chat, web search, and reference page while Hermes is selected.

v2.21.16 (2026-05-05)

Streaming replies: Fixed Enter or Cmd/Ctrl+Enter in the input box stopping an in-progress AI response and causing BodyStreamBuffer was aborted. While a response is streaming, input send shortcuts are ignored; stopping generation remains available through the send button's stop state.

v2.21.15 (2026-05-05)

Screenshot selection: Added instructions to the screenshot overlay. Users can drag to select, double-click for the full visible page, or press Esc to cancel. Single clicks and tiny drags no longer cancel immediately, reducing accidental exits.

v2.21.14 (2026-05-05)

Screenshot upload: Screenshot upload now shows a selection overlay first, crops only the selected region, and sends it automatically. Esc and right-click cancel selection, and coordinates are mapped against the actual screenshot size for high-DPI displays.

v2.21.13 (2026-05-05)

Auto-send screenshot upload: Added a screenshot upload button to the input toolbar. It captures the visible area of the active Chrome tab, attaches it as an image message, and sends it automatically. First use requests the required permission; oversized PNGs are compressed or rejected with a resize-window hint.

v2.21.12 (2026-05-05)

Page references: Fixed the Readability capture path mutating the source website DOM. The extension now clones the page first, then adds <base> and removes hidden/script/style elements only inside the clone. This prevents sites such as linux.do / Discourse-based pages from losing their normal styling after capture.

v2.21.11 (2026-05-05)

Chat stability and web search: Fixed UI shaking while typing and while AI responses stream. The chat area now keeps a stable scrollbar gutter, and streaming auto-scroll runs at most once per animation frame. Web search keeps smart triggering: when enabled, it searches only when the message appears to need fresh web information; when disabled, explicit “search the web” style requests can still auto-trigger search. Search context is injected into both the system prompt and the latest user message to reduce “I cannot access the internet” answers. Brave / Tavily failures or zero-result responses fall back to DuckDuckGo, and OpenRouter :online is used only as a fallback.

v2.21.10 (2026-05-04)

Page references: Refined the LM Studio compatibility fix. Empty page-reference sends now add the default user query only while building the API payload, so it is not stored in chat history or shown in the conversation. The UI keeps showing only the page-reference label while still avoiding Qwen Jinja template errors.

v2.21.9 (2026-05-04)

LM Studio page references: Fixed an issue where sending only a referenced page with an empty input created an empty user message, causing LM Studio / Qwen Jinja prompt templates to fail with No user query found in messages. Empty page-reference sends now add a default user query, and the send button only enables for pending page references.

v2.21.8 (2026-04-12)

Web search: When web search is enabled in the sidebar, searches now run on smart triggers only (signals like news, prices, weather, explicit "search the web", URLs in the message), not on every user message. The "current/previous year" trigger is evaluated after creative/translation skip rules so prompts like "write a story set in 2026" no longer force a search. Copy and i18n updated accordingly.

v2.21.7 (2026-04-12)

Web search — short follow-ups and conversation context: Search keywords used to be built only from the last user message, so follow-ups like "price in China" after discussing iPhone could become overly generic queries. The extension now extracts topic hints (e.g. product/model names) from earlier turns and, when appropriate, merges them into the actual search string. For API requests, a one-line English context prefix may be added before the last plain-text user message so server-side search (e.g. OpenRouter :online) stays aligned with the ongoing topic.

v2.21.6 (2026-04-08)

Renamed the design-system preview doc from ui-preview.html to design-system-preview.html; in-doc version label updated to v2.21.6.

v2.21.5 (2026-04-08)

design-system-preview.html: expanded button interaction notes (Primary / Outline / Danger / Disabled, segmented controls and theme mapping); version label v2.21.5.

v2.21.4 (2026-04-06)

Product name unified to Momo AI Bud (manifest, toolbar, float ball, default sidebar/settings titles). Settings tab title now follows UI language (e.g. English Settings - Momo AI Bud) instead of a fixed Chinese string.

v2.21.3 (2026-04-06)

README intro aligned with the feature list (Groq, OpenClaw, system TTS, adjustable typography, multi-language UI, float ball, etc.); removed outdated "think deeper" pitch.

v2.21.2 (2026-04-06)

Duplicate model names in the dropdown no longer show a provider text suffix (e.g. (Ollama)); provider icons distinguish entries instead.

v2.21.1 (2026-04-06)

Fixed local providers (Ollama / LM Studio, etc.) incorrectly removing manually added models when the name matched a cloud default.

v2.21.0 (2026-04-06)

Added Groq AI provider; default models openai/gpt-oss-120b and meta-llama/llama-4-scout-17b-16e-instruct; API keys at console.groq.com/keys; settings page shows free-tier notes; host_permissions includes api.groq.com.

v2.20.1 (2026-04-06)

Google AI default models updated to gemini-3.1-flash-lite-preview and gemini-3-flash-preview.

v2.20.0 (2026-04-06)

Fixed duplicate model names across providers: model identity now uses a provider::name uid; same display name on different providers can both be enabled; the dropdown adds a provider name suffix for duplicates; legacy selections migrate to the new uid format.

v2.19.5 (2026-04-06)

Fix test connection permission popup: added all built-in AI provider API domains (DeepSeek, Google AI, MiniMax, Moonshot, NVIDIA, OpenRouter, Qwen) to host_permissions, so clicking Start Test no longer triggers Chrome's permission request dialog.

v2.15.0 (2026-04-04)

OpenRouter server-side web search (:online + Exa), OpenRouter url_citation annotations, auto-trigger search ("查一下", "搜尋", "search for"), DDG proxy fallback; search context budget increased from 2,000 to 6,000 characters.

v2.14.x (2026-04-04)

Prompt display toggle, smaller toggle size, redesigned settings page navigation bar (7 items + SVG icons), scroll fixes.

v2.13.0 (2026-04-04)

Google HTML search (new default), DDG HTML search, simple search mode, search result count 1–20, auto URL visit, search enabled by default, SearXNG support.

v2.10.0 (2026-04-04)

Web search feature, search source viewer, default DDG / optional Tavily.

v2.9.x (2026-03-29 – 30)

Global thinking mode toggle, three model states (toggleable / always_on / unsupported), settings sync via chrome.storage.sync, OpenClaw (Beta), Google AI, image upload, enhanced page capture, i18n system, modular refactoring.

Earlier Versions

Core feature set.