Skip to content

Word Hunter 1.0.9

Latest

Choose a tag to compare

@Ironship Ironship released this 02 Aug 14:23

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.yaml with an adjacent image folder. Records merge by their
    updatedAt timestamp, 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.