-
#1279
b88746dThanks @frogGuaGuaGuaGua! - fix(translation): keep reduced-motion spinners visibly active without animation -
#1262
0e98d55Thanks @mengxi-ream! - fix(models): broaden Qwen and Kimi model matching -
#1261
7ea0609Thanks @frogGuaGuaGuaGua! - fix(provider-options): normalize openai-compatible option aliases -
#1258
714e44eThanks @ananaBMaster! - fix(providers): set domestic base URLs for minimax and alibaba -
#1263
e0e78c2Thanks @ananaBMaster! - fix(selection-toolbar): avoid hiding focused triggers behind overlays
- #1215
dc6fe8eThanks @mengxi-ream! - feat(extension): add save to notebase workflow
-
#1242
c253982Thanks @kilidoc! - fix: storage false value reset and backup delete dialog not showing -
#1195
ce61cc9Thanks @taiiiyang! - perf(subtitles): decouple AI smart context summary from translation -
#1253
aacbe36Thanks @pooneyy! - feat(models): update minimax model list and default model -
#1257
8d3baa8Thanks @ananaBMaster! - fix(extension): preserve shared popup close-state behavior in builds -
#1230
b2173e8Thanks @mengxi-ream! - fix(extension): guard notebase beta access
-
#1224
64931e3Thanks @ananaBMaster! - fix(selection-toolbar): ignore overlay text selections -
#1225
8774215Thanks @ananaBMaster! - fix(openai): sync GPT-5.4 model defaults and reasoning floors -
#1217
d97ce8cThanks @frogGuaGuaGuaGua! - fix(selection-toolbar): wrap long text in selection popovers
-
#1207
8df06c3Thanks @ananaBMaster! - fix(i18n): use the UI locale for latest blog content -
#1188
234998aThanks @ananaBMaster! - fix: keep float-wrapped bilingual translations in flow beside floated content -
#1190
f13e50eThanks @mengxi-ream! - fix(url): support caddy localhost URLs in dev mode -
#1185
01b38b5Thanks @mengxi-ream! - fix(selection-toolbar): ignore retargeted interactive clicks -
#1214
7376421Thanks @ananaBMaster! - build(typescript): upgrade to TypeScript 6 compatibility -
#1207
8df06c3Thanks @ananaBMaster! - fix(config-sync): widen the Google Drive conflict resolution dialog for large config diffs
-
#1175
cca465aThanks @frogGuaGuaGuaGua! - fix(translation): skip GitHub PR review diff tables during page translation -
#1180
c430e6eThanks @mengxi-ream! - fix(translation): force block translation for Reddit post text body -
#1183
7119d1bThanks @mengxi-ream! - fix(selection-tooltip): close selection popover tooltips after hover leave -
#1181
940bea1Thanks @taiiiyang! - fix(subtitles): align subtitle style controls in options panel
-
#1171
05f49c1Thanks @ananaBMaster! - feat(context-menu): add selection translation and custom AI action right-click entries. -
#1161
fc167d6Thanks @mengxi-ream! - refactor(chart): migrate the batch request statistics chart to Recharts and remove the old VChart theme provider. -
#1166
eb150b7Thanks @mengxi-ream! - Remove the deprecated Selection Toolbar AI button / Vocabulary Insight feature and keep Dictionary custom actions as the supported replacement. -
#1170
20004edThanks @mengxi-ream! - fix(provider-options): apply runtime defaults and placeholders -
#1164
eb33ec6Thanks @ananaBMaster! - fix(shortcut): migrate page translation hotkeys to TanStack and store them as portable shortcut strings. -
#1172
288cc2cThanks @ananaBMaster! - feat(sidebar): move What's New into a footer popover with blog previews.
- #1099
73a0347Thanks @iykon! - feat: add official DeepL API provider with automatic free/pro endpoint selection
-
#1152
d3dc6bdThanks @mengxi-ream! - fix(provider-options): stop auto applying recommended provider options -
#1158
18c10b6Thanks @frogGuaGuaGuaGua! - fix: fall back to getRandomValues when crypto.randomUUID is unavailable -
#1144
9c32b7bThanks @ishiko732! - feat: add connection options field to provider config, support bedrock region -
#1142
5aeb842Thanks @mengxi-ream! - style: preset FrogToast default position to bottom-left to avoid covering top-page controls
- #1139
341adbaThanks @ananaBMaster! - fix(extension): add required Firefox consent field
- #1136
0decdbaThanks @ananaBMaster! - fix(extension): add Firefox data collection consent metadata
f563623Thanks @ananaBMaster! - chore: release ci fix
- #1126
c533428Thanks @Sufyr! - feat: add an opacity setting for the selection toolbar and its popover UI.
-
#1127
52a70ffThanks @ananaBMaster! - feat: add Alibaba Cloud (Bailian) as AI provider with Qwen, DeepSeek, Kimi, MiniMax, and GLM models -
#1127
52a70ffThanks @ananaBMaster! - feat: add Moonshot AI and Hugging Face as AI providers
-
#1128
c7b7bccThanks @ananaBMaster! - fix: resolve dark mode flash (FOUC) on options and translation-hub pages -
#1121
aad6b5eThanks @mengxi-ream! - ai: improve writing prompt with language detection and diverse examples -
#1125
781180cThanks @ishiko732! - perf: avoid bundling config migrations in content scripts -
#1125
781180cThanks @ishiko732! - refactor: enhance config migration loading to auto-discover scripts
-
#1120
aaa71e1Thanks @mengxi-ream! - refactor: rename prompt tokens for clarity (targetLang→targetLanguage,title→webTitle,summary→webSummary,context→paragraphs) with config migration v064 -
#1117
fe211bdThanks @ananaBMaster! - feat(custom-actions): add drag-and-drop reordering to custom action list and output schema fields -
#1119
91f9a40Thanks @ananaBMaster! - fix(provider-icon): proxy remote logos through background fetch -
#1118
dafb8f2Thanks @ananaBMaster! - fix(selection-popover): keep the popover fixed while the page scrolls -
#1115
3a02d50Thanks @mengxi-ream! - feat(selection-toolbar): add individual toggles for built-in features (translate, speak, vocabulary insight)
-
#1105
fa9ca52Thanks @ananaBMaster! - feat: refactor the selection popover and add pin support for selection toolbar popovers -
#1105
fa9ca52Thanks @ananaBMaster! - feat: add a target language selector to the selection toolbar translation popover -
#1098
0e2b1f6Thanks @ananaBMaster! - feat: translate browser tab title during page translation with automatic tracking and restoration
-
#1105
fa9ca52Thanks @ananaBMaster! - fix: avoid re-fetching vocabulary, dictionary, and translation resources after page navigation (#1064) -
#1108
2fe15c9Thanks @ananaBMaster! - refactor: rename custom ai feature -
#1095
14de454Thanks @mengxi-ream! - perf: optimize content script with sync config cache, lazy selection UI mounting, and proper teardown -
#1111
66d1cf8Thanks @ananaBMaster! - feat: support tts in dictionary -
#1109
1ac2000Thanks @ananaBMaster! - fix: unify inline error handling for selection toolbar translate and custom actions -
#1105
fa9ca52Thanks @ananaBMaster! - refactor: simplify the selection toolbar translation flow and harden stale-request cancellation handling -
#1107
4250c2bThanks @ananaBMaster! - style: add thinking indicator -
#1113
d9af305Thanks @ananaBMaster! - fix: load css before spin -
#1039
8abcd34Thanks @taiiiyang! - fix(subtitles): optimize loading state message position and visual effect -
#1112
0f06a67Thanks @ananaBMaster! - refactor: algorithm to get context
-
#1084
f93dcc2Thanks @mengxi-ream! - Refine selection toolbar styling and fix Firefox stylesheet fallback- Enlarge toolbar button icons and use theme-aware hover/shadow tokens
- Handle Firefox Xray wrapper issues with constructable stylesheets
- Extract host toast into dedicated mount module
- Unify cn helper location under utils/styles
-
#1065
1a4082cThanks @ishiko732! - feat(theme): add manual theme mode switching (system/light/dark) with popup toggle button and options page selector -
#1075
3e14d7eThanks @Sufyr! - feat: add expand and collapse controls to translation hub cards -
#1068
f95f116Thanks @ananaBMaster! - feat: add disable hover translation option in option page -
#1078
bddf26aThanks @ananaBMaster! - fix: restore translation error UI in bilingual and translation-only modes -
#1071
c3a7fe9Thanks @ananaBMaster! - feat: add default ollama base url
-
#1057
72ac190Thanks @taiiiyang! - fix(subtitles): optimize subtitle single-line display by widening container and reducing max word count -
#1058
2e943d2Thanks @taiiiyang! - feat(subtitles): persist subtitle drag position across navigations -
#1060
76f73ecThanks @ananaBMaster! - fix(firefox): icon and image csp restriction
-
#1053
4d27adaThanks @mengxi-ream! - feat: add search command for config -
#1045
77f1e48Thanks @mengxi-ream! - fix: override Firefox MV3 default CSP to prevent HTTP URLs from being upgraded to HTTPS -
#1027
c44864cThanks @taiiiyang! - fix(subtitles): apply short line merge in all processing modes -
#1049
5b4547fThanks @Yukiniro! - fix: fixed flair tag misalignment during Reddit translations. -
#1051
2e58edcThanks @ananaBMaster! - refactor(custom-feature): improve custom ai feature prompt setting
-
#1023
f7b7164Thanks @mengxi-ream! - fix: correct inverted ternary in v055-to-v056 migration -
#1025
666ac3fThanks @ishiko732! - perf: remove redundant ProviderFactoryMap interface in favor of const inference
- #1020
b63f28fThanks @mengxi-ream! - feat: users can define their own custom ai feature
-
#1020
b63f28fThanks @mengxi-ream! - fix: recovery mode when the program crash -
#1012
25d82c4Thanks @mengxi-ream! - fix(floating-button): use button element for close trigger to improve accessibility -
#1018
f6b8712Thanks @mengxi-ream! - fix: reduce frequent storage reads and writes during config init and db cleanup -
#1014
369b3ceThanks @ananaBMaster! - fix: disable Zod JIT to avoid CSP eval violation in MV3 extensions -
#1020
b63f28fThanks @mengxi-ream! - fix: better test connection error message
-
e1943f1Thanks @ananaBMaster! - fix: firefox extension id -
#958
f74d826Thanks @Yukiniro! - fix(extension): fix hidden elements being translated -
#995
59f9bacThanks @cesaryuan! - fix(api-providers): sync provider options editor when switching providers -
#1006
74b8744Thanks @ananaBMaster! - fix(extension): prevent spinner from being distorted into ellipse by host page CSS -
#1009
c942331Thanks @taiiiyang! - fix(subtitles): fix subtitles flickering on Firefox by moving display decisions into Jotai atoms -
#1008
7e822cbThanks @mengxi-ream! - feat: replace agentation dev toolbar with draggable help button -
#1007
5ae4de0Thanks @ananaBMaster! - fix: make comment in youtube as block
-
#993
79827cdThanks @mengxi-ream! - feat(tts): add Edge TTS as free text-to-speech provider with per-language voice config -
#982
d578d6aThanks @mengxi-ream! - refactor: remove read provider and unify per-feature provider model
-
#988
e211d9cThanks @ananaBMaster! - feat(api-providers): add feature provider toggles and badge refactor -
#997
d1ee33dThanks @taiiiyang! - feat(subtitles): enable video subtitles in default config and remove subtitle beta labels in ui/docs -
#957
d2ee3d6Thanks @ishiko732! - fix: update website URL for custom provider to correct path -
#992
52b6bcaThanks @taiiiyang! - fix(subtitles): fast detect no-subtitles before fetching -
#998
a745724Thanks @mengxi-ream! - feat(tts): add offscreen audio playback and LLM language detection mode -
#954
306659fThanks @mengxi-ream! - fix(selection): route selection stream requests through background to bypass CORS restrictions -
#961
6f24070Thanks @taiiiyang! - fix(subtitles): enable text selection and copy in subtitle container -
#962
67b75c6Thanks @taiiiyang! - fix(subtitles): add RTL direction and lang attributes to translation subtitles -
#1004
0126569Thanks @ananaBMaster! - fix: css size escape character -
#989
6c807aeThanks @mengxi-ream! - refactor: merge site control settings into general page -
#1000
1f3fc14Thanks @ananaBMaster! - chore: upgrade deps -
#981
e0d68ddThanks @taiiiyang! - refactor(subtitles): simplify state machine and improve loading display -
#1003
7c99db6Thanks @ananaBMaster! - build: firefox build scripts and remove useless base ui fix -
#990
3df025fThanks @mengxi-ream! - style: refine UI components, extract shared MultiLanguageCombobox, and clean up unused components
-
#951
af2e930Thanks @taiiiyang! - fix(ui): fix slider track collapse on wide screen in video subtitles settings -
#953
e27858dThanks @taiiiyang! - fix(subtitles): fallback to show original subtitle in bilingual mode on translation error
-
#930
a1ec67aThanks @taiiiyang! - feat(subtitles): improve subtitle container positioning and visual effects -
#933
4928469Thanks @taiiiyang! - refactor(subtitles): replace XHR interception with direct fetch for YouTube subtitles -
#932
aa6cc36Thanks @mengxi-ream! - refactor(ui): migrate shadcn components to base-ui
-
#943
d0986d4Thanks @mengxi-ream! - refactor(ui): consolidate UI components under src/components/ui/ -
#923
955dafdThanks @taiiiyang! - feat: add custom prompts support for video subtitles translation -
#945
d721988Thanks @taiiiyang! - feat(subtitles): ensure CC enabled to trigger YouTube BotGuard POT token generation -
#947
011519cThanks @mengxi-ream! - fix(ui): close AlertDialog on action button click -
#939
01f0e95Thanks @taiiiyang! - fix(subtitles): respect user's selected subtitle track on YouTube -
#929
ddbc50dThanks @taiiiyang! - fix(subtitles): prevent navigation events from hiding subtitles unexpectedly and improve AI error messages -
#924
d7e8c23Thanks @sdxdlgz! - fix(subtitles): auto-hide error state and harden YouTube fetcher -
#914
79f8702Thanks @taiiiyang! - fix: handle unknown HTTP error status in YouTube subtitle fetcher -
#922
fa99c8aThanks @flowKKo! - feat: add retry button for translation cards -
#946
1f61823Thanks @mengxi-ream! - feat(ui): replace model selector popover with searchable combobox -
#949
67a9310Thanks @taiiiyang! - refactor(subtitles): replace block-based translation with on-demand strategy -
#936
ef84d44Thanks @ishiko732! - perf(logger): show caller source location in browser console by usingconsole.bindinstead of wrapper functions -
#950
2d6fa6fThanks @taiiiyang! - i18n: shorten survey sidebar text and add gift emoji -
#937
adab0acThanks @taiiiyang! - refactor(subtitles): unify noise filtering to fetcher layer -
#944
6dc3562Thanks @mengxi-ream! - chore: upgrade AI SDK and other dependencies
-
#903
7cbc45fThanks @ananaBMaster! - fix: github translation rule -
#901
e06df1dThanks @mengxi-ream! - fix(ai): configure reasoning effort per GPT-5 model variant- GPT-5.2 and GPT-5.1+ don't support 'minimal', now use 'none'
- gpt-5-pro uses 'high', gpt-5.2-pro uses 'medium'
- gpt-5.x-chat-latest models use 'medium'
- GPT-5 (before 5.1) and o1/o3 models keep 'minimal'
-
#910
6a56694Thanks @taiiiyang! - fix(video): prevent subtitle container unmounting to fix drag becoming unresponsive -
#912
693f1f2Thanks @ananaBMaster! - refactor: improve translation hub -
#907
8292480Thanks @taiiiyang! - feat(ui): add ON/OFF badge to subtitle toggle button -
#896
4f24028Thanks @moxi000! - feat: add support for local HTML file (file://) translation -
#902
77d081fThanks @taiiiyang! - feat: replace feature suggestion survey with subtitle translation survey -
#888
b6ef3c0Thanks @yrom! - fix: add crypto.randomUUID polyfill to support HTTP website translation -
#904
0a35256Thanks @taiiiyang! - fix(ui): improve video subtitle settings cards responsive layout
-
#894
895294dThanks @taiiiyang! - feat(subtitles): add AI-powered intelligent sentence segmentation -
#878
59ea5efThanks @Yukiniro! - feat: add global site whitelist modeAdd a new Site Control feature that allows users to configure the extension to only run on specific whitelisted sites instead of all sites.
-
#882
4839415Thanks @Yukiniro! - feat: add skip languages feature to preserve paragraphs in specified languages -
#886
76aae58Thanks @taiiiyang! - feat(subtitles): add subtitle display mode and custom style settings
-
#895
793aed0Thanks @taiiiyang! - fix(translation): skip usernames, timestamps, and quoted replies on Discord -
#883
5dc9f8cThanks @guoyongchang! - refactor(input-translation): update config fields design and fix truncation issue -
#897
d5e3c2fThanks @taiiiyang! - feat(subtitles): add independent translation rate configuration for video subtitles
-
#871
3786b10Thanks @taiiiyang! - feat: allow drag video subtitles -
#879
f303fa9Thanks @taiiiyang! - fix: prevent node translation from triggering on phantom keyup events -
#881
15a0e38Thanks @taiiiyang! - fix(subtitles): improve YouTube ASR subtitle segmentation -
#877
97f15c5Thanks @taiiiyang! - refactor(subtitles): use separate translation queue for subtitles -
#874
ffe6b37Thanks @taiiiyang! - feat: add auto-start subtitle translation option -
#880
f7d8a82Thanks @taiiiyang! - feat(subtitles): add subtitle display mode settings with bilingual, original-only, translation-only modes and translation position options
-
#859
ed8ed19Thanks @zmrlft! - feat: add click and hold to translate -
#817
db45a88Thanks @guoyongchang! - feat: add triple-space input translation feature -
#856
597ce14Thanks @mengxi-ream! - feat: add minimum characters filter for page translation
-
#868
ff23528Thanks @taiiiyang! - fix: supplement subtitles sentence end pattern with international punctuation -
#869
98e2edfThanks @ananaBMaster! - fix: force to be block in github website -
#856
597ce14Thanks @mengxi-ream! - fix: improve floating button drag smoothness by deferring storage writes -
#862
acc7d8dThanks @taiiiyang! - feat: add minimum words filter for small paragraph translation -
#866
f95cf61Thanks @taiiiyang! - feat: make video subtitles feature available as public beta
-
#853
42f6b2cThanks @mengxi-ream! - chore: migrate atomFamily from jotai/utils to jotai-family -
#851
13ae51eThanks @mengxi-ream! - chore: upgrade dependencies
-
#850
4b3ba80Thanks @mengxi-ream! - fix: normalize whitespace without preserving newlines in translation -
#839
ce49281Thanks @Yukiniro! - chore: replace franc-min with franc -
#839
ce49281Thanks @Yukiniro! - fix: upgrade zod and ai packages to solve memory issue of type check
- #838
dadee30Thanks @taiiiyang! - feat: Improve the speed of subtitle translation through block translation
-
#844
6f0f9faThanks @taiiiyang! - feat: add drag-and-drop sorting for API provider cards -
#841
33acbfcThanks @Yukiniro! - fix: ensure language detection only occurs in the top frame to prevent race conditions with iframes -
#846
35eaa5fThanks @ananaBMaster! - fix: no new line when translating twitter in translation only mode
-
#836
3119bd4Thanks @mengxi-ream! - feat: add MiniMax AI provider support -
#835
f817e81Thanks @mengxi-ream! - feat: add custom provider options and temperature configuration -
#809
aa62e0fThanks @taiiiyang! - feat: implement youtube subtitles -
#834
6eaaa95Thanks @mengxi-ream! - ai: upgrade AI SDK from v5 to v6
-
#827
ab0582eThanks @mengxi-ream! - fix: clear translation state when navigating to a new URL in the same tab -
#825
e259773Thanks @Yukiniro! - perf: don't retry when request queue fail in batch queue -
#830
5ed2c53Thanks @mengxi-ream! - fix: translation styles not applying inside website Shadow DOMs -
#825
e259773Thanks @Yukiniro! - fix: fixed the thinking error of gemini 3 -
#832
aa32739Thanks @Yukiniro! - fix: re-translate page on translation mode change while active -
#806
7d6465fThanks @Yukiniro! - feat: supports automatic toolbar positioning
-
434068dThanks @ananaBMaster! - chore: add prompt sharing discussion links -
#815
282a852Thanks @mengxi-ream! - fix: treat last synced config as null if it is invalid to unlock sync flow
-
#813
a935d9dThanks @mengxi-ream! - feat: add export confirmation dialog for config backup items -
#811
dd0a924Thanks @mengxi-ream! - fix: support page translation in iframes via programmatic injection -
#804
d038ce4Thanks @Yukiniro! - fix: fix the thought process in the translation of the custom model.
- #807
4d98864Thanks @mengxi-ream! - fix: refresh auth data and add email validation in Google Drive sync
-
#802
9de0da8Thanks @ananaBMaster! - feat: update model list -
#802
9de0da8Thanks @ananaBMaster! - feat: allow fetch model list from custom providers
-
#797
7587b9eThanks @mengxi-ream! - refactor: split floating button & toolbar into collapsible overlay tools sidebar -
#799
45f3097Thanks @ananaBMaster! - fix: add custom error type for remote config version too new during Google Drive sync -
#797
7587b9eThanks @mengxi-ream! - feat: add floating button click action configuration
-
#793
20d9c1bThanks @mengxi-ream! - fix: add systemPrompt to translation prompt export -
#796
b6f74fcThanks @ananaBMaster! - build: upgrade packages -
#790
475417bThanks @Yukiniro! - fix: refine selection handling in toolbar to ensure button interactions are valid
-
#788
c58f3d0Thanks @mengxi-ream! - refactor: separate Google Drive remote storage functions into dedicated module -
#780
eb82c74Thanks @Yukiniro! - fix: fix Google Drive sync with last synced config schema version tracking -
#781
d3bb1a1Thanks @Yukiniro! - feat: support logout for google drive sync
-
#775
cb83fcaThanks @mengxi-ream! - style: clean up field description into hint of translation config -
#775
cb83fcaThanks @mengxi-ream! - feat: support preload config -
#777
1fddcc7Thanks @mengxi-ream! - refactor: move detectedCode from config to separate storage location
-
#771
57dcc81Thanks @ananaBMaster! - perf: improve prompt to auto detect language -
#761
2d4bf6cThanks @mengxi-ream! - feat: add engoo.com force block translation rule -
#772
f8de893Thanks @ananaBMaster! - feat: add official volcengine and doubao support
- #758
c444ef7Thanks @mengxi-ream! - feat: add site-specific force block translation support
-
#755
e5b8efaThanks @mengxi-ream! - fix: exclude detectedCode from translation cache hash -
#757
67502f5Thanks @mengxi-ream! - fix: filter don't walk into and don't translate as child elements in unwrapDeepestOnlyHTMLChild function -
#757
67502f5Thanks @mengxi-ream! - fix: variable shadowing bug in translateWalkedElement that caused async translation promises to not be awaited
-
#752
d3db08cThanks @mengxi-ream! - fix: skip aria-hidden elements in translation traversal -
#749
25de809Thanks @mengxi-ream! - feat: add rate us option to popup menu and options sidebar
-
#718
1205620Thanks @guoyongchang! - feat: add context menu translate optionAdd right-click context menu option for translating pages directly from the browser context menu.
Important: This feature requires a new
contextMenuspermission. When upgrading, your browser may prompt you to approve this new permission and temporarily disable the extension until approved. This is normal browser behavior for permission changes.
-
#747
8844a84Thanks @ananaBMaster! - style: update shadcn ghost color -
#747
4f76f7bThanks @ananaBMaster! - style: change more menu icons
-
1859c74Thanks @ananaBMaster! - style: llm status indicator color -
90001a9Thanks @ananaBMaster! - i18n: update i18n for custom translation style -
#742
ed8f173Thanks @ananaBMaster! - style: extension style upgrade -
#741
51d3054Thanks @ananaBMaster! - style: update custom prompt sheet
-
#735
30db212Thanks @mengxi-ream! - feat: add AI smart context translation for improved translation accuracy -
#739
f1fd0c5Thanks @ananaBMaster! - feat: add system prompt support and improve prompt for batching
-
#738
6dce9e1Thanks @ananaBMaster! - chore: change default translation node style to 'textColor' for new installs -
#738
6dce9e1Thanks @ananaBMaster! - feat: detect source language before translation to skip if already in target language -
#719
2fafa2aThanks @lisongkun! - fix: domain patterns matching logic -
#738
6dce9e1Thanks @ananaBMaster! - fix: add fallback values for empty title/summary in translation prompts
-
#730
f06a62cThanks @mengxi-ream! - feat: add LLM language detection toggle with provider status indicator -
#727
2f1cd26Thanks @mengxi-ream! - feat: add superRefine validation for custom prompt configuration integrity -
#727
2f1cd26Thanks @mengxi-ream! - fix: nx config for proper build caching -
#727
2f1cd26Thanks @mengxi-ream! - fix: add prompt into translation hash to invalidate cache when prompt changes -
#730
f06a62cThanks @mengxi-ream! - fix: spinner style not correct on some page -
#727
2f1cd26Thanks @mengxi-ream! - refactor: default prompts no longer stored in storage, only custom prompts persist -
#727
2f1cd26Thanks @mengxi-ream! - refactor: rename promptsConfig to customPromptsConfig and prompt to promptId for clarity
-
#723
4808a82Thanks @mengxi-ream! - fix: skip empty nodes in translation traversal to fix Inoreader style issue -
#721
265e2c7Thanks @mengxi-ream! - refactor: add ts-reset to fix array.includes type narrowing
f6d9b3aThanks @mengxi-ream! - fix: ollama connection test button style
- #713
49b33ccThanks @taiiiyang! - refactor: make the backend part of the package private and extract the extension separately.
-
#715
4d2eb83Thanks @mengxi-ream! - fix: custom translation style preview not matching actual behavior -
#713
49b33ccThanks @taiiiyang! - fix: race condition of dom batch operation
-
#690
377280aThanks @mengxi-ream! - perf: batch insert translation wrapper to improve page translation performance -
#691
b281c14Thanks @mengxi-ream! - style: apply font families to translated content wrapper and all children elements
-
#683
d97b6baThanks @mengxi-ream! - fix(extension): improve select-all behavior to support shadow roots and external apps like Excalidraw -
#669
aee1847Thanks @darmau! - style: set proper font-family for Japanese and Chinese translation, in order to render the right kanjis. -
#681
bfba497Thanks @mengxi-ream! - chore: test changeset
- #663
580549dThanks @ananaBMaster! - feat: user can define custom translation css style
-
#667
4efa7f0Thanks @mengxi-ream! - style: refactor Field component usage for consistent responsive layout -
#659
4c19aa9Thanks @ananaBMaster! - feat: allow jump to specific blog from notification -
#666
e040a4eThanks @mengxi-ream! - refactor: move version comparison logic to backend -
#665
4e22813Thanks @ananaBMaster! - feat: more powerful css for translation style -
#664
d7b6ec8Thanks @ananaBMaster! - feat: add translation mode selector to popup
-
#653
b20c83aThanks @mengxi-ream! - build: upgrade deps -
#655
27a1346Thanks @mengxi-ream! - fix: resolve CSS property conflicts with host pages
-
#649
ba7bc35Thanks @mengxi-ream! - docs(extension): add descriptions to provider groups in add provider dialog -
#648
087104cThanks @mengxi-ream! - feat: add node translation shortcut setting on option page -
#650
052c34eThanks @mengxi-ream! - fix(extension): prevent translation of MathML elements and improve academic content handling -
#647
ab99603Thanks @mengxi-ream! - fix: prevent node translation trigger with key combinations -
#651
637c7eaThanks @mengxi-ream! - fix(extension): prevent double translation on Reddit and improve translation performance -
#645
a9b79e3Thanks @mengxi-ream! - refactor: move auto-translate shortcut to page config
- #633
58529e1Thanks @taiiiyang! - feat(extension): integrate statistics page on options
-
#638
93c78a0Thanks @Yukiniro! - feat(extension): support disabling selection-toolbar for specific websites -
#634
2d39087Thanks @ananaBMaster! - feat: disable floating button or selection toolbar in option page
- #628
b28efbdThanks @mengxi-ream! - refactor(extension): use React Activity API for model selector state preservation
-
#582
ab2aedbThanks @darmau! - feat: refine AI Button prompt structure to ensure more consistent responses -
#623
9f640c2Thanks @ananaBMaster! - feat: add config backup feature
-
#625
ebfa592Thanks @mengxi-ream! - refactor: extract RestoreButton and use ButtonGroup component -
#627
519b5aaThanks @mengxi-ream! - refactor(extension): use session storage for translation state persistenceReplace in-memory Map with chrome.storage.session to ensure translation state survives service worker restarts. Simplifies architecture by removing port-based communication.
-
#626
e3c015aThanks @mengxi-ream! - feat(extension): update Gemini model defaults and remove deprecated models
-
#614
96b04eaThanks @ananaBMaster! - fix(extension): improve floating element detection for large initial letters -
#617
0dbdac8Thanks @ananaBMaster! - feat: add more custom translation style -
#615
a0197ffThanks @ananaBMaster! - chore: change default shortcut based on feedback -
#618
421e9abThanks @ananaBMaster! - fix(extension): disable Google provider in translation-only mode -
#575
46dffffThanks @mercutiojohn! - feat(extension): improve prompt settings UX with enhanced export mode and radio group selection
- #607
ab44be5Thanks @mengxi-ream! - fix(extension): set tts providerId to null in migration and fix selector placeholder
- #606
e9f6cd3Thanks @mengxi-ream! - fix(extension): prevent selection popup from being translated
- #594
179ee34Thanks @mengxi-ream! - fix(extension): translation style for flex parent containers
-
#586
a74666eThanks @Yukiniro! - fix(extension): update custom translation node styles for blockquote and dashed line -
#584
0bcf449Thanks @ananaBMaster! - fix: don't translate code in pre tags -
#592
ae89107Thanks @mengxi-ream! - fix: update DeepLX default API URL -
#586
a74666eThanks @Yukiniro! - fix: style of block node with inline and block children -
#588
f3eed7fThanks @Yukiniro! - refactor: support Activity component
-
#577
5fcf03cThanks @Yukiniro! - fix(extension): fixed behavior when interactive and focus elements differ -
#580
6a1b26aThanks @ananaBMaster! - fix: forceBlock logic to translate blocks inside inline node
- #573
f0565e6Thanks @mengxi-ream! - feat(extension): add survey notification and sidebar i18n support
-
#572
edd167aThanks @mengxi-ream! - fix(style): noc header tailwind css for fumadocs -
#568
3b5c37eThanks @mengxi-ream! - fix: add extension version check for blog notifications
-
#566
184d644Thanks @mengxi-ream! - feat: add blog notification indicator for new posts -
#548
ec5b305Thanks @Yukiniro! - feat(extension): support for batch translation for LLM
- #562
73198f6Thanks @mengxi-ream! - fix(extension): hide batch translation behind beta flag
-
#550
a1a6e85Thanks @ananaBMaster! - docs: add provider config docs -
#554
1cfa6f9Thanks @ananaBMaster! - fix: change default shortcut for translation -
#558
910bc4eThanks @ananaBMaster! - perf: anthropic translation thinking mode disabled -
#558
910bc4eThanks @ananaBMaster! - fix: anthropic api cors bug -
#550
a1a6e85Thanks @ananaBMaster! - fix: update model for tensdaq
-
#545
0da1d19Thanks @ananaBMaster! - fix: ollama stream text and detect api key logic -
#535
3c711eeThanks @sedationh! - fix: enhance extractTextContext to handle edge cases in text selection -
#546
a94f20eThanks @ananaBMaster! - perf: don't translte numbers
-
#536
8e61c09Thanks @sedationh! - feat: add beta experience configuration and UI component -
#541
f7eb724Thanks @ananaBMaster! - feat: add ollama provider -
#539
3625a9bThanks @ananaBMaster! - fix: rename openai compatible provider to custom provider -
#496
3908f22Thanks @sedationh! - feat: implement context extraction for selected text in AI popover -
#532
48fd692Thanks @ananaBMaster! - fix: treat inline node with only one block node child as inline node
- #528
39dd45bThanks @ananaBMaster! - feat: add openrouter provider
-
#521
1234914Thanks @mengxi-ream! - fix(extension): replace guest avatar PNG with SVG and add padding -
#523
9e36470Thanks @ananaBMaster! - style: add hover background to hotkey selector in popup
-
#516
1884fb0Thanks @ananaBMaster! - fix: complete the hash key for translation -
#515
81b0183Thanks @ananaBMaster! - fix: crash when delete the first provider -
#516
1884fb0Thanks @ananaBMaster! - fix: translate code inside a paragraph
- #512
ea6e1a7Thanks @ananaBMaster! - feat: add churn feedback survey
- #509
6928f28Thanks @mengxi-ream! - fix: provider selector in side content
-
#506
5eff186Thanks @mengxi-ream! - fix: static import migrations in service worker -
#508
bf0b7cdThanks @mengxi-ream! - feat: add tensdaq provider
- #504
d48a78dThanks @mengxi-ream! - chore: add 302 ai to default
-
#481
2d9c9a8Thanks @mengxi-ream! - feat: provider option add name, description and enabled settings -
#492
b18e189Thanks @ananaBMaster! - feat: add over 20 more llm providers
-
#491
e3639c2Thanks @Yukiniro! - fix: automatic translation not working correctly -
#478
cf71fa2Thanks @Yukiniro! - refactor: change export type toesmand usejs-sha256replacecrypto-js -
#488
4686166Thanks @ananaBMaster! - test: have to test every migration script -
#501
1d0ca69Thanks @mengxi-ream! - fix: config being reset to the previous version on edge browser -
#497
f2b74acThanks @ananaBMaster! - fix: increase disable menu z-index to prevent overlay issue -
#487
2ac5771Thanks @mengxi-ream! - fix: no error component after bilingual translation error -
#482
afbd4beThanks @ananaBMaster! - style: update select language cells hover color -
#493
dd72ab4Thanks @ananaBMaster! - fix: choose right read or translate provider when delete the previous one -
#486
f20fb67Thanks @ananaBMaster! - fix: translate dom with translate attribute no"
e0e3be5Thanks @mengxi-ream! - fix: remove ai button since the feature is not completed
-
#463
5bbe29eThanks @sedationh! - feat: add drag feature -
#450
b87fa03Thanks @ananaBMaster! - refactor: allow arbitrary number of providers
-
#458
f028439Thanks @sedationh! - feat: optimize selection-toolbar popup logic -
#471
d4512ecThanks @taiiiyang! - feat: implement force don't walk element -
#464
f08001fThanks @Yukiniro! - refactor: usedeepmerge-tsto replacedeepmerge -
#454
ee76a28Thanks @taiiiyang! - style: improve button interaction -
#474
d4f1d80Thanks @ananaBMaster! - test: add more config test and test series -
#460
9de7995Thanks @mengxi-ream! - refactor: migrate provider logos from images to CDN -
#463
5bbe29eThanks @sedationh! - feat: add ai button popover -
#448
e83ceadThanks @Yukiniro! - fix: use color-scheme to support native components -
#468
2876ea8Thanks @ananaBMaster! - fix: don't translate some element which should not be walked -
#469
6fc357cThanks @ananaBMaster! - fix: translate bug for text with spaces
-
#430
bce5170Thanks @Rafacv23! - feat: interactable prompt textarea -
#441
f036a23Thanks @mengxi-ream! - fix: prevent infinite loop in MutationObserver causing browser freeze -
#427
c3995f8Thanks @taiiiyang! - fix: skip empty word when translate
-
#432
d727e1eThanks @ananaBMaster! - fix(extension): add missing v019-to-v020 config migration and schema validation -
#428
d937925Thanks @taiiiyang! - perf: Use requestIdleCallback or requestAnimationFrame to delay the application of smash style to improve the performance of the walk element.
- #411
1c4fa39Thanks @Yukiniro! - feat(extension): support disabling the floating button on specific websites
- #420
bbbea54Thanks @taiiiyang! - fix: reinsert when an internal node is removed.
-
#416
9ae6dc7Thanks @ananaBMaster! - fix: migrate default prompt to the new one -
#414
8f9ef56Thanks @ananaBMaster! - fix(extension): don't retranslate the whole ancestor node when auto translate -
#418
80d0302Thanks @ananaBMaster! - fix: avoid recursive translate on translation only
-
#400
28cdf77Thanks @Yukiniro! - feat(extension): support to clear cache -
#406
d8c3902Thanks @taiiiyang! - feat: implement customize translation shortcut keys
-
#393
3451481Thanks @mengxi-ream! - fix(extension): improve BR tag handling and inline element processing -
#413
625e073Thanks @mengxi-ream! - fix: improve translation algorithm and test descriptions -
#398
19960b9Thanks @Yukiniro! - i18n(extension): update the translation of 'always translate' for options page -
#403
25c25e8Thanks @Yukiniro! - feat(extension): support border style -
#396
91c07c0Thanks @ananaBMaster! - fix(extension): don't label too many inline nodes
- #391
fde3535Thanks @mengxi-ream! - feat(extension): add flexible baseURL support for DeepLX providers
-
#390
55462bdThanks @mengxi-ream! - fix(extension): improve floating element detection in DOM filter -
#388
5846556Thanks @mengxi-ream! - test: enhance Claude Code guidance and standardize test directories
- #386
08d93ddThanks @mengxi-ream! - fix: migrate to new prompt
- #382
9a1d016Thanks @mengxi-ream! - fix: collapse config css
-
#371
e63c568Thanks @sedationh! - feat: add config sync feature -
#381
19e9c3fThanks @ananaBMaster! - feat: add translation only mode
-
#379
6bd176dThanks @mengxi-ream! - fix: await configPromise in ensureConfig -
#377
873dcb3Thanks @ananaBMaster! - fix: provider test deeplx logic -
#379
6bd176dThanks @mengxi-ream! - fix: use query client from trpc for side content -
#363
a7c49ceThanks @flowKKo! - feat: add API providers test feature
-
#367
337abdbThanks @taiiiyang! - fix: unresponsive dropdown when zoom in -
#368
6ddff0fThanks @ananaBMaster! - perf: only check better-auth.session_token
-
#354
f3fc960Thanks @mengxi-ream! - fix: more info and better ui for translation error -
#348
f2e3813Thanks @yiyang-fairy! - feat: add dashed line style -
#361
ad27745Thanks @mengxi-ream! - feat: add translation mode config -
#359
c16ede2Thanks @taiiiyang! - fix: add dontWalkAttr when translate page
35c6d73Thanks @mengxi-ream! - perf: redirect auth endpoint to /api/identity
- #346
1fe2780Thanks @sedationh! - fix: when drag float button, should keep hover state
-
#349
7c0ce5dThanks @ananaBMaster! - fix: host content style missing -
#335
e044745Thanks @ananaBMaster! - fix: try catch readability
- #315
9d378a9Thanks @sedationh! - feat: warn user that the source language is the same as the target language
-
#331
92e855aThanks @ananaBMaster! - fix: reduce concurrent request capacity -
#330
5e75705Thanks @ananaBMaster! - fix: hide floating button when printing web -
#333
f5c2c10Thanks @sedationh! - fix: Shouldn't override Ctrl+Shift+A hotkey #318
-
#324
1d5472eThanks @mengxi-ream! - perf: cache auth client by proxy -
#321
e531adcThanks @taiiiyang! - fix: weird format when translating reddit
-
#308
ac96b1cThanks @taiiiyang! - fix: Language selector text is unreadable in Dark Mode -
#312
5120759Thanks @ananaBMaster! - fix: popup ui -
#319
4dc2106Thanks @ananaBMaster! - fix: custom models in option page -
#319
4dc2106Thanks @ananaBMaster! - perf: improve speed for gemini thinking models
- #275
7d6714fThanks @AnotiaWang! - feat: added new translation styleweakened
-
#295
5e849b3Thanks @ananaBMaster! - fix: can't translate selection text with deeplx -
#290
d392aaeThanks @ananaBMaster! - fix: custom prompt textarea size -
#273
12624beThanks @taiiiyang! - refactor: extract ui, themes and cn to @repo/ui
-
#254
3f9ae9cThanks @shuimu5418! - feat: add DeepLX translation provider -
#281
63986bfThanks @ananaBMaster! - feat: add gemini to read feature and add gpt-5
- #283
04cb32aThanks @ananaBMaster! - fix: deeplx api call
-
#271
5dcce6fThanks @ananaBMaster! - fix: shortcut to full translate -
#276
e3a675aThanks @ananaBMaster! - fix: show scoped block custom style -
#278
cff4fdfThanks @ananaBMaster! - build: upgrade ai package
- #232
c5c062eThanks @ananaBMaster! - feat: integrate trpc
-
#191
31f816fThanks @mengxi-ream! - feat: add selection content -
3c745d2Thanks @mengxi-ream! - feat: save vocabulary -
#231
b213a41Thanks @taiiiyang! - implement custom translation node style -
#201
3ddfc81Thanks @mengxi-ream! - feat: stream translate selected text -
#201
3ddfc81Thanks @mengxi-ream! - ai: deprecate openrouter and ollma provider -
#260
2bbe950Thanks @sedationh! - add blockquote translate style -
#187
0f6d20aThanks @mengxi-ream! - feat: add google oauth login
-
ab2e8afThanks @mengxi-ream! - fix: floating button position range -
#256
b418c79Thanks @ananaBMaster! - perf: increase default translate limit -
#190
adffd4dThanks @taiiiyang! - expose the rate config of translate request -
#218
3d5f791Thanks @taiiiyang! - feat: integrate gemini api -
#228
3e4f885Thanks @mengxi-ream! - style: change more icons to iconify -
#219
f6fd1ebThanks @taiiiyang! - fix: fix style issue for step 2 and 3 -
#220
b3481d7Thanks @mengxi-ream! - style: change ui lib to iconify -
#210
9c583c8Thanks @Andrew-Tan! - feat: added hot key for toggling translation
-
#183
a44530aThanks @mengxi-ream! - feat: add translated cache by dexie -
#181
7072612Thanks @iuhoay! - fix: improve node translation toggle logic to handle translated content
b11a650Thanks @mengxi-ream! - fix: don't warning for pure translate provider
-
#177
7572871Thanks @taiiiyang! - feat: allow export and import custom translate prompts -
#175
6242002Thanks @zmrlft! - fix: use customModel if isCustomModel is true
- #174
8c27264Thanks @taiiiyang! - support personalized translate prompt
- #165
dbf42cdThanks @taiiiyang! - add reset config button
- #163
4db3247Thanks @mengxi-ream! - i18n: add korean to extension ui
-
#157
6f53060Thanks @mengxi-ream! - refactor: clean up translate utils -
#156
c795431Thanks @taiiiyang! - feat: support markdown file export; fix scroll style in side.contentstyle: optimize ui in guide page
-
#149
0ccc7f5Thanks @mengxi-ream! - fix: load config to content script -
#149
0ccc7f5Thanks @mengxi-ream! - refactor: translation control"
-
#146
df733d4Thanks @mengxi-ream! - fix: set target language right after entering guide step 1 -
#144
5d3ac93Thanks @mengxi-ream! - chore: add neat reader url on popup
- #140
63f19d8Thanks @mengxi-ream! - ci: changelog from changeset
- #138
dd1689eThanks @mengxi-ream! - ci: release multiple packages
-
#137
307f672Thanks @mengxi-ream! - chore: move the website code to this monorepo -
#133
31ecd4dThanks @taiiiyang! - fix: flicker of the always translate switch
-
#134
c4af768Thanks @mengxi-ream! - style: update translation error button style -
#130
e48ffdaThanks @mengxi-ream! - refactor: add shadow root for error ui -
#132
034d0b8Thanks @taiiiyang! - fix: disable the translate switch for ignore tabs
-
e819cf1Thanks @mengxi-ream! - fix: don't translate code block -
928c086Thanks @mengxi-ream! - perf: concurrent translation
- #106
e5ead6fThanks @mengxi-ream! - add retry and error ui for translation
-
#120
9805559Thanks @mengxi-ream! - fix: allow auto translation in iframe and shadow roots -
d8a128aThanks @mengxi-ream! - fix: add tab permission to set always translation domain -
#115
281f823Thanks @mengxi-ream! - fix: translate to zh-TW when user select cmn-Hant -
a67ae31Thanks @mengxi-ream! - fix: send message when clicking read button on popup page
- #104
22967a0Thanks @mengxi-ream! - feat: integrate request queue with translation api
-
#97
43ca08fThanks @mengxi-ream! - add request queue without retry mechanism -
#99
0d70375Thanks @mengxi-ream! - feat: retry and timeout mechanism of request queue
-
#89
d103106Thanks @mengxi-ream! - fix(translate): connection race condition to push the port -
#87
ea25cffThanks @mengxi-ream! - fix(traversal): combine consecutive inline nodes together to translate in block-inline-mixed paragraph -
#85
03a8c21Thanks @LixWyk5! - underline anchor elements in translated content
- #82
91bab3eThanks @mengxi-ream! - test ci release action
- #72
2ef529eThanks @mengxi-ream! - feat: enable auto translation for certain url pattern
-
#79
df67a59Thanks @mengxi-ream! - fix: smash style in class by computed style -
#80
1af9574Thanks @mengxi-ream! - fix: detect added container itself for autotranslate
-
#67
0818ad2Thanks @mengxi-ream! - feat: add four finger touch trigger -
#61
cd5e64fThanks @zmrlft! - feat: the feature integrate ollama -
#65
9433dd8Thanks @mengxi-ream! - fix: only select editable area when select all in these elements
-
837fcc6Thanks @mengxi-ream! - fix(traversal): find deepest element from point -
af0da30Thanks @mengxi-ream! - feat: add new user guide -
#58
e5d4107Thanks @mengxi-ream! - allow read frog website to set target language code
- #54
7a5f187Thanks @mengxi-ream! - send isPinned to read frog website
cefe29fThanks @mengxi-ream! - direct url to translation guide after installation
-
#37
60f16ccThanks @missuo! - add base URL configuration for providers -
#40
3db9d83Thanks @mengxi-ream! - improve options page ui
- #34
5de10ceThanks @mengxi-ream! - add support to openrouter and support different model config for reading and translating
d457f8eThanks @mengxi-ream! - fix can't use normal translator when no api key
- #25
054a767Thanks @mengxi-ream! - add normal translation service from google and microsoft
- #27
bf00519Thanks @mengxi-ream! - fix extract old article
487b78fThanks @mengxi-ream! - clean zero-width space in sourcetext for translate
2656a99Thanks @mengxi-ream! - don't read dummy node
59ee40bThanks @mengxi-ream! - don't walk into hidden element
-
60b5f42Thanks @mengxi-ream! - add read floating button -
8162458Thanks @mengxi-ream! - add popup and warning i18n
cd59435Thanks @mengxi-ream! - translate the whole page with button on popup and content script
-
#13
8eb0e9eThanks @mengxi-ream! - import pollute the css in host -
db6fe75Thanks @mengxi-ream! - add ci stuff
- #11
1337030Thanks @mengxi-ream! - import pollute the css in host
- #8
328afd9Thanks @mengxi-ream! - remove ctx
856ca46Thanks @mengxi-ream! - allow tag for private package
c7090e1Thanks @mengxi-ream! - change release script
-
41ffa3cThanks @mengxi-ream! - add github release -
07e79c3Thanks @mengxi-ream! - add changelog-github
- e865d09: add changeset release action
- 58c5af7: install changesets