• v1.5.1 1236c863ef

    v1.5.1
    All checks were successful
    test / test (push) Successful in 46s
    build-and-release / appimage (push) Successful in 48s
    Stable

    Ghost released this 2026-10-09 18:57:23 +00:00 | 0 commits to main since this release

    Fixed

    • The language switch did nothing. The IPC wrapper consumed Electron's event object before
      calling a listener, but the listeners were written as (event, value) and only six of them
      had it, so their first argument arrived undefined and everything after it shifted by one
      position. The language handler therefore received no value and always stored Arabic, which is
      why switching to English appeared to be ignored.
    • Affected the same way, and now fixed: the general-settings update, copying to the clipboard,
      opening a folder or a log file from the app, and opening links in the browser. Every other
      channel took no argument, or a single object, which is why the rest of the app worked.
    • Added tests/ipcWiring.test.ts, which registers the real IPC layer against a stubbed Electron
      and calls each channel the way the renderer does. Reintroducing the shift fails it.
    Downloads
  • v1.5.0 128cd84224

    v1.5.0
    All checks were successful
    test / test (push) Successful in 36s
    build-and-release / appimage (push) Successful in 43s
    Stable

    Ghost released this 2026-10-09 16:57:00 +00:00 | 2 commits to main since this release

    Added

    • Several backup repositories at once. Hafiza is no longer limited to one destination:
      add as many as you like, give each a name, and point each backup set at the place it should
      write to (photos on one disk, videos on another). A switcher at the top of the sidebar
      chooses which repository the read-only pages - snapshots, browsing, restore and health - are
      looking at, and Manage them from Settings, where each one shows how many sets use it.
      Every repository keeps its own password, and each set always reads and writes its own
      repository, so a scheduled run needs no switching.
    • Automatic migration: an existing single-repository installation is read as a
      one-repository list on first start, so nothing has to be reconfigured.

    Changed

    • Restoring, browsing, exporting, snapshot listing and diffing now accept the repository of
      the snapshot being viewed rather than assuming the active one.
    Downloads
  • v1.4.1 c5086253e8

    v1.4.1
    All checks were successful
    test / test (push) Successful in 39s
    build-and-release / appimage (push) Successful in 53s
    Stable

    Ghost released this 2026-10-09 16:30:15 +00:00 | 4 commits to main since this release

    Fixed

    • The sidebar's Activity entry displayed the raw key nav.history because the label was never
      added to the locale files, and the confirm button on the snapshots page showed
      common.confirm for the same reason. Both are translated now.
    • A test now fails whenever the renderer asks for a key that is missing from either locale, so
      a raw key can no longer reach the UI. It also checks that both languages define the same
      keys, use the same placeholders, and contain no empty or untranslated values.
    Downloads