Word Hunter 1.0.9
Word Hunter 1.0.9 replaces background folder synchronization with explicit,
reviewable ZIP transfer packages and brings a round of reliability, security,
and UX fixes across desktop and Android. Existing vocabulary is migrated
automatically.
What changed
- No more background sync. Syncthing and the shared-JSON merge path are
gone. Transfers are now explicit, portable, and reviewable: export one ZIP
package (books, words, settings, progress, book images) and import it on
another device through a native file picker. - YAML record storage. Every word is its own YAML file, every book is a
book.yamlwith an adjacent image folder. Records merge by their
updatedAttimestamp, so newer changes always win and local data stays
untouched during import. - Legacy data migrates automatically. Existing JSON records are converted
to YAML on first startup; old Syncthing folders are no longer read or
written. A full ZIP backup is required before any destructive clear.
Reliability
- PC startup fix: the app no longer fails to start when the configured
data folder is missing — it falls back to the default folder, and startup
failures now show a native error dialog instead of a silent crash. - HTTP hardening: 60-second socket timeouts, token required on
data-reading GET endpoints, stricter CSP, export enforces the same limits
as import, and poisoned mutex panics recover instead of wedging the app. - Faster shutdown: a redundant full-state save is skipped when nothing
changed, and the final flush no longer blocks on a synchronous XHR. - Export progress bar: desktop package export shows a 0–100% stage-based
progress bar while the ZIP is built in the background. - Large books transfer correctly: the per-record YAML limit was raised
from 8 MB to 64 MB so whole-book OCR texts (verified up to a 141 MB
package with 861 records on a real database) export and import on both PC
and Android.
Android
- TTS fixes: adaptive per-sentence timeouts, no ghost-resuming after
interruptions, readiness-aware fallbacks, a Stop action in the
notification, and the screen stays on while reading aloud. - Word sheet and dialogs (issue #73): the sheet opens expanded, note and
context fields are resizable, the add-word dialog scrolls with the
keyboard, and pull gestures expand/collapse the card. - PDF import: per-page progress, a cancel button, and a render cap keep
the UI responsive. - Faster startup and landscape: the UI renders from cached state
immediately, and phones in landscape keep the Pocket layout. - Chinese (Simplified) interface added.
Downloads
Built and validated by GitHub Actions (8 artifacts).
- Windows:
Word.Hunter.Setup.exe·Word.Hunter.portable.zip - macOS:
WordHunter-1.0.9-aarch64.dmg(ad-hoc signed) - Android:
Word.Hunter.Pocket.debug.apk(version code 100000999) ·Word.Hunter.Pocket.release.aab - Linux:
WordHunter.flatpak·WordHunter-1.0.9-x86_64.AppImage·word-hunter_1.0.9_amd64.deb
Migration notes
- Existing local JSON records are migrated to YAML on startup.
- Old Syncthing folders are no longer read or written; export a ZIP package
on the source device and import it on the target to move data. - Create a full ZIP package before clearing data; the app requires a
successfully saved backup first. - The Android APK uses the same stable update certificate and installs as an
in-place update.
Installing on macOS
The DMG is ad-hoc signed and not notarized. If macOS blocks the first launch,
open System Settings → Privacy & Security, choose Open Anyway, and
confirm the launch.