github mumu-lhl/Ciyue v2.0.0

2 hours ago

Downloads

Android

Architecture Common APK Full APK
Universal (armeabi-v7a, arm64-v8a, x86_64) Download Download
armeabi-v7a (32-bit ARM) Download Download
arm64-v8a (64-bit ARM) Download Download
x86_64 Download Download

Android Common vs Full: Common uses Android's system folder picker and copies selected dictionaries/audio into app-private storage, so it does not require broad storage access. Full requires the "Manage all files" permission on Android 11+ and reads dictionaries/audio directly from the selected external folder, avoiding the extra copy and saving storage.

Windows

Artifact Download
Installer ciyue-installer.exe
Portable bundle ciyue-windows.zip

Linux

Artifact Download
AppImage Ciyue-latest-x86_64.AppImage
Debian package ciyue-x86_64.deb
RPM package ciyue-x86_64.rpm
Portable tarball ciyue-linux.tar.xz
Flatpak ciyue-x86_64.flatpak

macOS

Requires macOS 13 (Ventura) or later. Apple Silicon (arm64).

The app is ad-hoc signed. If Gatekeeper reports the app as damaged or unverified, remove the quarantine flag with (or right-click the app and choose Open) after moving it to Applications.

Artifact Download
Disk image ciyue-macos.dmg
Portable bundle ciyue-macos.zip

What's Changed in 2.0.0

  • chore(release): 2.0.0 by @mumu-lhl
  • fix: refresh manage-dictionaries state when background dictionary load finishes
  • docs: refresh phone screenshots with new mobile captures
  • docs: add post-beta.1 user-facing changes to the in-app changelog by @mumu-lhl
  • chore: update flutter version to 3.47.8 by @mumu-lhl
  • docs: add Ciyue favicon to the docs site
  • docs: mention StarDict dictionary support
  • docs: refresh feature lists, drop emoji prefixes by @mumu-lhl
  • chore(dict): lockfile for the dict_reader .cidx pin by @mumu-lhl
  • feat(dict): switch the index cache to binary .cidx, StarDict single-entry lookup by @mumu-lhl
  • test(word-display): update user-script expectations for the #756 theme marker by @mumu-lhl
  • refactor(dictionaries): drop the interim support-dir cache fallback by @mumu-lhl
  • revert(dictionaries): index cache back in the cache directory by @mumu-lhl
  • perf(floating-window): keep the engine warm for the process lifetime by @mumu-lhl
  • perf(dictionaries): index cache lives in the support directory now by @mumu-lhl
  • fix(word-display): dictionary pages follow the app theme; external .css/.js override .mdd copies by @mumu-lhl
  • feat(ai): structured word explanations rendered natively (default on) by @mumu-lhl
  • feat(ai): structured word explanations rendered natively (default on) by @mumu-lhl
  • feat(ai): structured word explanations rendered natively (default on) by @mumu-lhl
  • feat(changelog): structured dialog — latest version popup, grouped history by @mumu-lhl
  • docs(metadata): keep F-Droid en-US changelog within the 500-char limit by @mumu-lhl
  • fix(changelog): language fallback, 2.0 notes, real F-Droid changelog by @mumu-lhl
  • feat(audio): settings page rebuild and tests by @mumu-lhl
  • feat(audio): pronunciation modes, real TTS controls, labeled pack management by @mumu-lhl
  • feat(audio): pronunciation modes, real TTS controls, labeled pack management by @mumu-lhl
  • test(stardict): native view, structured-fields cache, binary-only and fragment cases by @mumu-lhl
  • feat(stardict): native entry rendering with WebView fallback for HTML entries by @mumu-lhl
  • feat(stardict): format-aware word display and dictionary management UI, plus tests by @mumu-lhl
  • feat(stardict): Stardict dictionary class and format dispatch in the manager and add pipelines by @mumu-lhl
  • feat(stardict): pin dict_reader with StarDictReader, add LoadedDictionary surface and field-to-HTML conversion by @mumu-lhl
  • fix(ci): locate macOS app bundle dynamically instead of assuming Products/Release
  • fix(macos): add -common build configurations for the default flavor by @mumu-lhl
  • fix(macos): add 'common' Xcode scheme so default-flavor builds work by @mumu-lhl
  • fix(settings): learning settings layout/limits and flashcards page consistency by @mumu-lhl
  • fix(android): restore flutter default-flavor so flavorless builds (F-Droid) work by @mumu-lhl
  • fix(chat): keep word context as system turn for prefix-cache stability by @mumu-lhl
  • feat(chat): image input (vision) and image generation by @mumu-lhl
  • feat(chat): image input (vision) and image generation by @mumu-lhl
  • feat(chat): image input (vision) and image generation by @mumu-lhl
  • feat(ai): add Agnes AI provider by @mumu-lhl
  • feat(chat): multiple sessions; loud errors when AI is unconfigured by @mumu-lhl
  • feat(chat): multiple sessions; loud errors when AI is unconfigured by @mumu-lhl
  • feat(ai-settings): dedicated prompt management page by @mumu-lhl
  • feat(ai-settings): dedicated prompt management page by @mumu-lhl
  • feat: free translation sources first; drop mobile group switcher by @mumu-lhl
  • fix(translate): second review round — run control, staleness, CJK joins by @mumu-lhl
  • i18n: complete all missing translations for 15 locales (remaining files)
  • i18n: complete all missing translations for 15 locales by @mumu-lhl
  • i18n: complete all missing translations for 15 locales by @mumu-lhl
  • i18n: complete all missing translations for 15 locales by @mumu-lhl
  • tools: rewrite find_missing_translations for humans and agents
  • feat(learn): mistake review reuses stored questions, works offline
  • fix(translate): fix review findings in multi-source translation by @mumu-lhl
  • fix(learn): harden chat/quiz against crashes and AI format drift (3/3) by @mumu-lhl
  • fix(learn): harden chat/quiz against crashes and AI format drift (2/3) by @mumu-lhl
  • fix(learn): harden chat/quiz against crashes and AI format drift (1/3) by @mumu-lhl
  • docs: remove old zh translation-sources page (renamed to translation) by @mumu-lhl
  • docs: remove old translation-sources page (renamed to translation) by @mumu-lhl
  • docs: reframe translation-sources page as Translation feature page by @mumu-lhl
  • docs: remove meta references to the disclaimer from FAQ entries by @mumu-lhl
  • docs: translation sources guide with disclaimer (EN/ZH) by @mumu-lhl
  • feat: AI providers as individual translation sources by @mumu-lhl
  • feat: multi-source translation with 13 sources (2/2: settings, l10n, prefs, tests) by @mumu-lhl
  • feat: multi-source translation with 13 sources (1/2: sources, UI, view models) by @mumu-lhl
  • feat(learn): mistake review, more question types, TTS, chat persistence
  • feat(learn): make language learning features customizable by @mumu-lhl
  • feat(learn): turn chat into a language learning tool by @mumu-lhl
  • feat(chat): rebuild chat UI and wire up entry points by @mumu-lhl
  • feat(ai): improve prompts, add chat history and stream cancellation by @mumu-lhl
  • feat(ai): stream AI responses token-by-token by @mumu-lhl
  • refactor(ai): migrate LLM providers to Genkit Dart 1.0 by @mumu-lhl
  • fix(settings): wrap mobile settings page in SafeArea by @mumu-lhl
  • fix(stats): group wordbook/open-record counts by local day by @mumu-lhl
  • fix(linux): add GPU sync before releasing EGL buffers (fix hardware rendering corruption) by @mumu-lhl
  • fix(linux): add GPU sync before releasing EGL buffers by @mumu-lhl
  • fix(linux): add GPU sync before releasing EGL buffers (fix hardware rendering corruption) by @mumu-lhl
  • fix(linux): fix WebView buffer synchronization and selection stickiness by @mumu-lhl
  • fix(build): remove integration_test to fix Android release build failure by @mumu-lhl
  • fix(linux): resolve text selection misalignment and sticky selection in WebView by @mumu-lhl
  • perf(search): reduce suggestion debounce from 250ms to 100ms by @mumu-lhl
  • perf(search): reduce suggestion debounce from 250ms to 100ms by @mumu-lhl
  • fix(linux): revert defer-resize-during-drag (caused WPE/Flutter size mismatch)
  • fix(linux): reset modifiers on page navigation by @mumu-lhl
  • fix(linux): reset button state on page navigation by @mumu-lhl
  • fix(linux): reset button state on page navigation by @mumu-lhl
  • fix(linux): cancel pending drag on WebView dispose by @mumu-lhl
  • fix(linux): clear all button state on pointer release by @mumu-lhl
  • fix(linux): defer WPE resize during active drag by @mumu-lhl
  • refactor(linux): remove dead SetTextureOffset code by @mumu-lhl
  • fix(linux): don't drop pointer UP/CANCEL events by @mumu-lhl
  • fix(linux): derive pixel stride from buffer size by @mumu-lhl
  • fix(linux): debounce WPE resize (fixed ifdef placement) by @mumu-lhl
  • Revert "fix(linux): debounce resize and add SHM fallback env var" by @mumu-lhl
  • fix(linux): debounce resize and add SHM fallback env var by @mumu-lhl
  • fix(linux): WebView rendering corruption and scroll jitter by @mumu-lhl
  • fix(webview): retain desktop view across word changes by @mumu-lhl
  • fix(linux): handle WPE frames and pointer cancels by @mumu-lhl
  • fix(linux): harden webview callback lifetimes by @mumu-lhl
  • fix(docs): approve esbuild builds for pnpm 12 by @mumu-lhl
  • chore(ci): install pnpm via npm instead of corepack
  • fix(linux): retain WebView across word lookups by @mumu-lhl
  • chore(docs): drop packageManager field by @mumu-lhl
  • docs: overhaul GitHub Pages site and use pnpm 12 by @mumu-lhl
  • chore: update flutter version to 3.47.7 by @mumu-lhl
  • feat(i18n): add flashcard translations for all 15 locales by @mumu-lhl
  • feat(i18n): localize flashcards pages by @mumu-lhl
  • docs: add Obtainium badge, update F-Droid badge URL and expand features list by @mumu-lhl
  • fix: repair CI test regressions from settings refactor and desktop nav buttons by @mumu-lhl
  • chore(release): v2.0.0-beta.1 by @mumu-lhl
  • fix: remove unnecessary flutter/foundation import in settings.dart
  • feat: update channel selector (Stable / Beta-Alpha / Nightly)
  • fix: sync tab history on search-bar and context-menu navigation
  • feat: add back/forward buttons to desktop word page AppBar
  • fix: avoid deep word page stack when searching from word page
  • fix: settings reactive, hunspell races, tag dangling
  • fix: dictionary page toggle error feedback and ghost row on delete
  • fix: medium/low bugs and dictionary page GroupDialog refresh
  • fix: batch of UI state and data bugs (Riverpod, WebView, sync, DB)
  • fix: refresh dictionary group enabled-count after toggle
  • perf: third batch of performance optimizations (18 items, schema v21→v22)
  • perf: second batch of optimizations (lookup, startup, history import, schema v21 indexes) by @mumu-lhl
  • perf(history): regenerate app.g.dart with idx_history_word (schema v20) by @mumu-lhl
  • test: register schema v20 in migration test helper by @mumu-lhl
  • test: refresh mocks after history model change by @mumu-lhl
  • test: add schema v20 fixture for history word index migration by @mumu-lhl
  • perf(history): upsert with word index and in-memory list update by @mumu-lhl
  • perf(history): add schema v20 migration step for history word index by @mumu-lhl
  • perf: fix WebView height update storms and narrow provider subscriptions by @mumu-lhl
  • perf: debounce search suggestions and parallelize dictionary lookup by @mumu-lhl
  • fix(ci): install enchant, libtasn1 and hyphen for Linux bundle step by @mumu-lhl
  • fix(ci): install libinput for Linux bundle step by @mumu-lhl
  • style(settings): beautify settings subpages with shared M3 card components (2/2) by @mumu-lhl
  • style(settings): beautify settings subpages with shared M3 card components (1/2) by @mumu-lhl
  • fix(linux): make is_disposing_ public for WPE FDO C callbacks by @mumu-lhl
  • fix(linux): resolve WPE display flicker, black screen, and WebProcess lifecycle crash by @mumu-lhl
  • fix: resolve dictionary management bugs and upgrade Linux WPE runtime to 2.54.1 by @mumu-lhl
  • fix(linux): resolve WebView black screen, flickering, and WPE WebProcess crash by @mumu-lhl
  • style(dict): modernize manage dictionaries page UI and action sheet by @mumu-lhl
  • style(ui): modernize Material 3 themes, layouts, and components by @mumu-lhl
  • chore(ci): clean up redundant steps and unused inputs in workflows by @mumu-lhl
  • feat(l10n): add missing Chinese translations for zh, zh_HK, and zh_TW by @mumu-lhl
  • fix(cloud_sync): resolve conflict deadlocks, surface granular errors, and add one-tap sync by @mumu-lhl
  • fix(mobile): isolate search controllers and clear mobile tabs on exit to home by @mumu-lhl
  • feat(mobile): add Chrome-style bottom bar and tab browsing for small screens by @mumu-lhl
  • chore(release): v1.24.0-beta.5 by @mumu-lhl
  • refactor(state): completely unify state management to riverpod and remove provider by @mumu-lhl
  • refactor: migrate Wordbook, Dictionaries, and Audio to Riverpod (Phase 2) by @mumu-lhl
  • refactor: migrate Home and Search to Riverpod (Phase 1) by @mumu-lhl
  • fix(startup): eliminate home screen dictionary flicker and improve initial load experience by @mumu-lhl
  • feat(desktop): support drag-and-drop reordering for word tabs by @mumu-lhl
  • feat(desktop): add GoldenDict-style tabbed word browsing and middle-click open by @mumu-lhl
  • fix(desktop): fix stats calendar material error, remove audio back button and optimize desktop ui by @mumu-lhl
  • feat(desktop): implement nav-detail split view for settings screen by @mumu-lhl
  • fix(translate): use translation placeholder instead of prompt label when output is empty by @mumu-lhl
  • feat(desktop): optimize translation, wordbook split view, and settings layout by @mumu-lhl
  • feat(desktop): add keyboard shortcuts for search, list navigation, and pronunciation by @mumu-lhl
  • feat(desktop): add master-detail split view and integrate toolbar actions by @mumu-lhl
  • chore(release): v1.24.0-beta.4 by @mumu-lhl
  • fix(appimage): keep a single root desktop entry by @mumu-lhl
  • fix(android): extend content behind navigation bar by @mumu-lhl
  • fix(android): hide gesture navigation bar by @mumu-lhl
  • fix: migrate tray manager to native API by @mumu-lhl
  • chore(release): v1.24.0-beta.3 by @mumu-lhl
  • feat: enable Dark Reader on Linux by @mumu-lhl
  • feat: add optional Dark Reader support by @mumu-lhl
  • fix: improve Windows dark-mode dictionary readability by @mumu-lhl
  • refactor: remove duplicate home group switcher by @mumu-lhl
  • fix: refresh custom dictionary background color by @mumu-lhl
  • fix: allow cloud sync preferences by @mumu-lhl
  • feat: customize dictionary background and CSS by @mumu-lhl
  • fix: support gdlookup entry links by @mumu-lhl
  • feat: support SFTP and S3 cloud sync by @mumu-lhl
  • Revert "feat: add Google Drive and OneDrive cloud sync" by @mumu-lhl
  • feat: add Google Drive and OneDrive cloud sync by @mumu-lhl
  • feat: sync selected dictionaries over WebDAV by @mumu-lhl
  • feat: sync selected dictionaries over WebDAV by @mumu-lhl
  • feat: improve search and dictionary group switching UX by @mumu-lhl
  • feat(dict): default to source dictionary on entry jump and lookup by @mumu-lhl
  • chore(release): v1.24.0-beta.2 by @mumu-lhl
  • feat(ai): support fetching models via API and update model catalogs by @mumu-lhl
  • chore(release): fix version to v1.24.0-beta.1 by @mumu-lhl
  • feat(audio): add visual feedback while playing audio pronunciation by @mumu-lhl
  • chore(release): v1.24.0-beta.1 by @mumu-lhl
  • chore: update flutter version to 3.47.5 by @mumu-lhl
  • feat(android): add home screen search widget by @mumu-lhl
  • fix: prevent IME popup when returning from settings sub-pages by @mumu-lhl
  • feat(wordbook): swipe through words in wordbook by @mumu-lhl
  • fix(search): prevent cleared text refill on rebuild and auto-select on open by @mumu-lhl
  • test: prune redundant and tautological test suites by @mumu-lhl

Full Changelog: v1.23.2...v2.0.0

Don't miss a new Ciyue release

NewReleases is sending notifications on new releases.