Skip to content

Releases: Grailward/agent

v0.6.0 — Linux & Steam Deck support

Choose a tag to compare

@filipealc filipealc released this 20 Jul 13:07
  • Linux and Steam Deck support. The agent now runs on Linux, including the Steam
    Deck's Desktop Mode. On first run it auto-detects your Diablo II: Resurrected saves
    folder inside the usual Steam/Proton prefixes (including a prefix on the Deck's
    microSD card), Lutris, or a plain Wine install, so you rarely have to pick it by
    hand. Native prompts and confirmations use kdialog (KDE) with a zenity (GNOME)
    fallback, and "Start with system" registers a standard XDG autostart entry.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

d977ed4bbf7887af9db430e0315ce1301fefe51a250fb31d9f325ceccb3c5e36  grailward-agent-darwin
4bb8f55d0483278e3a64e15104f077f370b75b1a28293be7fcde228721241695  grailward-agent-macos.zip
776c7ab450a2f71dae8e71d6757fd04b68b53b22539f1a0a7074d33f5ccd89b3  grailward-agent-linux-amd64
29b6cbfcc56e7620eff5d9b8b37332f4d2f35ded1db37ff31d9383db4520922d  grailward-agent-windows-amd64.exe

v0.5.2 — Check for updates on demand

Choose a tag to compare

@filipealc filipealc released this 20 Jul 13:07
  • "Check for updates…" in the menu. A new, always-visible menu item lets you
    check for a newer version on demand instead of waiting for the periodic check. It
    reports the result in a dialog: it offers to update when a newer version is out
    (the same confirm-and-apply flow, with the game-open and checksum safeguards),
    tells you when you're already on the latest version, or points you to the log when
    the check couldn't complete.
  • Update checks are written to the log. Every check now records one line — up to
    date, a newer version found and offered, or skipped on a development build — so a
    glance at the log shows whether the last check ran and what it decided.
  • Native dialogs show the grailward shield. On macOS the dialogs (About, the
    token prompt, the pull and update confirmations, and the new update check) now
    display the grailward app icon instead of a generic system icon. The saves-folder
    picker keeps the standard Finder chooser, which has no icon slot.
  • Handles macOS "translocation" gracefully. When macOS runs the app from a
    temporary read-only location (which happens when you open it straight from the
    download without moving it first), the agent now detects this and asks you to move
    Grailward Agent to your Applications folder — instead of failing an update or
    registering a broken "Start with system" entry that points at a path that
    disappears on the next launch.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

d91ad248105846d6be78f53bfa349fe3b5b5c220bb3cdc88df183113ddd008c8  grailward-agent-darwin
2e6ed42dd25b62f5ab46c7310b59eae7882f8825d8c25a61c0b1768404b8fd27  grailward-agent-macos.zip
07a589848624a19941b6c9dfd6086af5eba3310823473a90933ad97dea0533a5  grailward-agent-windows-amd64.exe

v0.5.1 — preference logging, Login Items fix

Choose a tag to compare

@filipealc filipealc released this 20 Jul 13:07
  • Preference changes are written to the log. Turning Start with system on
    or off, switching sync mode, changing the poll interval, and toggling map-
    exploration sync each record one line in the agent log — so the log is a complete
    audit trail of what changed and when. The "Start with system" line now names the
    exact login item it created (or removed).
  • macOS Login Items attribution. The macOS login item now advertises the app it
    belongs to, which helps macOS associate the entry in Login Items & Extensions
    with Grailward Agent. Older login items are refreshed automatically on the next
    start.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

251ff63aaf84cc0152879639911d072f1df5888a3491b9606854d098328c0f09  grailward-agent-darwin
6a3386c7a568586fef5d9b854ad735f55ad640c579c65b66ffb0f28fe1f853b4  grailward-agent-macos.zip
805d3d45e6197325a741cc027e1c3eb17db98b534e45c99b5ad15d27130928ab  grailward-agent-windows-amd64.exe

v0.5.0 — automatic updates, Start with system

Choose a tag to compare

@filipealc filipealc released this 20 Jul 13:07
  • Automatic updates. The agent now checks for a newer version on startup and
    every few hours. When one is out, a Update to vX.Y.Z… item appears in the
    menu — no pop-ups, no red icon. Choose it and, after a confirmation, the agent
    downloads the new build, verifies its SHA-256 checksum, replaces itself and
    restarts. It never updates while Diablo II: Resurrected is running, keeps the
    previous version as a one-time backup, and a failed download or checksum mismatch
    is reported as Update failed — see log without touching your saves. Update
    checks are silent when they fail — an update hiccup is never shown as a sync
    error.
  • Transfer activity indicator. While the agent is actively sending or
    receiving a save (or its map-exploration files), the menu-bar / tray icon shows
    a circle of arrows, distinct from the steady "watching" icon — so an in-progress
    transfer reads differently from the idle watch state at a glance. It shows only
    for real transfers: a routine folder scan that finds nothing to sync never
    flickers it, and an error still wins (the icon returns to red when a transfer
    ends on a failure).
  • Start with system. A new tray toggle, Start with system (off by
    default), launches the agent automatically when you log in — a per-user login
    item on both macOS and Windows, needing no administrator privileges. If the app
    is later moved or replaced by an update, it repairs the login item on the next
    start; turning the toggle off removes it.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

27217fc2a728211a278d8b83856f255abbb158587ce39bbb7bb967f9cf877be7  grailward-agent-darwin
6304a8b4a3bf519a554f42d2a6c6e247cd1ef71eb6dfda6e7876c41650caae1d  grailward-agent-macos.zip
931e40abcd242dafe3f30546471c9fa7676d34200acfda98aee1ba4855624703  grailward-agent-windows-amd64.exe

v0.4.1 — sticky sync errors, game-guard fix

Choose a tag to compare

@filipealc filipealc released this 20 Jul 13:07
  • Sync errors now stay visible. A failed download — the sync manifest, a save
    pull, or map-reveal files — turns the tray red and keeps it red until that same
    operation succeeds. Routine healthy scans no longer clear the error silently,
    and a failure on one character is never masked by another character syncing
    fine right after. With several pending errors the tooltip shows a count
    ("N pending sync errors — see log").
  • Every applied pull now writes a log line with the file's short checksum, so
    repeated pulls of the same character are always visible in the log (previously
    an identical success line could be deduplicated away).
  • macOS: the "game open" write guard now matches the real game process
    (D2R.exe) and ignores leftover CrossOver/Wine engine processes that could
    block writes unnecessarily. Writes are still refused whenever a real game
    session looks active.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

19c86e00f8db4f661d8a75c243e19dc5b2ac56cc48ac8b7dd7b6a4fcd25d2668  grailward-agent-darwin
22329c8078f56b89c41222ffe776bdb4e50b049abe7085f09c553afc3fc8fd07  grailward-agent-macos.zip
b1c15cb8d9195ef28dec5c19795b87e4445294e79cc89ee188e5c325da748631  grailward-agent-windows-amd64.exe

v0.4.0

Choose a tag to compare

@filipealc filipealc released this 11 Jul 00:44
  • Map exploration sync. The fog-of-war "reveal" files that Diablo II:
    Resurrected keeps beside each character save (<Name>.map and <Name>.ma0…)
    now travel between your machines along with the character. A new tray toggle,
    Sync map exploration (on by default), governs the whole trail — turn it off
    and no map file is ever sent, downloaded, or written.
  • The map files ride the character save: they are pushed right after a successful
    .d2s upload and pulled right after a .d2s is written in two-way mode. They
    are not a save — losing a slice only re-reveals a bit of map — so there is no
    conflict dialog: the server copy wins (last-writer-wins), and reveal files are
    never versioned. A push that fails is retried silently on the next scan and
    never holds up the save upload.
  • Same safety discipline as saves for every map write: filenames from the server
    are strictly sanitized (only <character>.map / <character>.ma<digit>),
    payloads are SHA-256-verified, the previous file is backed up first, writes are
    atomic, and nothing is written while a game session looks active. .key/.ctl
    files stay out of scope entirely.

Downloads

Binaries are distributed from downloads.grailward.com
(canonical source; nothing is attached to this release):

SHA-256 checksums

6ef302741bbd24bb9ed4b0717e98187b853a0a25df00f7702b6a0a939afa3268  grailward-agent-darwin
4342f174c2c6afd80dd4e7c540b33fd2cac1464d3cbd6b7e9c2627e39b51588d  grailward-agent-macos.zip
7a76b2ab45da59f2fe5a109c3ea20401e03eaa7ba0fdb92a301fef1bfb409aca  grailward-agent-windows-amd64.exe

v0.3.2 — file icons, Change folder

Choose a tag to compare

@filipealc filipealc released this 08 Jul 16:15
  • Embedded file icons: the Windows .exe now carries the grailward shield as a PE icon resource (plus version metadata in file properties), and the macOS .app bundle ships an .icns — no more generic file icons in Explorer/Finder.
  • Tray menu regrouped: Reset token and About Grailward Agent share one section, and Saves folder became a submenu with Open folder and Change folder — the latter re-points the watcher at a different folder live, without restarting the app or re-running setup.

Downloads

SHA-256

d6592a2345412da938e818e10a06b71615bc5d0cf14b05c58e3e7317962d7c55  grailward-agent-darwin
874dbd9d92e47808428cbcddfee2aa634f57b316174c8e7d5bbb40a879c44184  grailward-agent-macos.zip
5f29cbb29a94a36e71abbc73df4a4bb386d8158560828df3db0130aabe1975eb  grailward-agent-windows-amd64.exe

v0.3.1 — Windows fixes, About

Choose a tag to compare

@filipealc filipealc released this 08 Jul 16:02
  • Fixed: empty agent.log on Windows. The log tee wrote to stderr first, and a windowed (no-console) Windows binary has a dead stderr handle, which starved the file writer — the log file stayed empty. The file now comes first and stderr is best-effort; the log is also armed before configuration loads, so setup errors are diagnosable on a GUI-only app.
  • Fixed: blank tray icon on Windows. The Win32 tray requires ICO-format icons; the agent now wraps its PNG icons in an ICO container on Windows (macOS/Linux unchanged).
  • New About Grailward Agent menu item: version, server, saves folder, sync mode, config/log location.
  • The tray tooltip now shows the agent version.

Downloads

SHA-256

4880795663feb37e6e28b718893e59ef0419bdb521d7dd6bc7fb22478da15438  grailward-agent-darwin
8e92c3cda1c0a0b80db32d60b4e3f10e6c73c8d896bd23048a7b5b8fb36b42f8  grailward-agent-macos.zip
d96eaf54d967468cb53c6e90813686d9630df16ec6c18bb9e18c96ed7086e17a  grailward-agent-windows-amd64.exe

v0.3.0 — two-way sync (opt-in)

Choose a tag to compare

@filipealc filipealc released this 08 Jul 16:02
  • Two-way sync (opt-in). For players who use more than one machine: when the server has a newer save (you played elsewhere), the agent offers to pull it and write it to your saves folder. Push-only remains the default and never writes.
  • Every write requires explicit confirmation — offers appear at startup, when switching the mode to Two-way, and via the new Pull latest now menu item. A periodic check (~5 min) only signals (menu label shows a count); it never writes.
  • Safety model: your current local file is guaranteed in the account history before any overwrite (in a conflict it is uploaded first, as a backup that does not become the server's current version); a local backup copy is kept; writes are atomic (temp file + rename) and SHA-256-verified against the server manifest; filenames from the server are strictly sanitized; the agent never deletes files.
  • Conflict resolution dialog (Keep local / Use server / Skip) when both the local file and the server changed since the last sync — no version is ever lost.
  • Best-effort game-detection guard: the agent refuses to write while Diablo II: Resurrected appears to be running or the saves folder shows recent activity.
  • New protocol endpoints: GET /api/v1/sync (account manifest) and per-save current-version downloads; uploads gained an optional set_current flag for backup-only ingestion. See the README's protocol section.

Downloads

SHA-256

c9674c375bc8be908174b6eccb9874f0440ce072e4d5a491657e85b3310e9cf9  grailward-agent-darwin
5ff76db6f3daed053eb4e4dbbc64f9fd742611e09ad407f97de7a6be00fb8819  grailward-agent-macos.zip
4e66bb7d6cea793ffbe4228646194ed6dedc774d8a60ed9e7e9fa2e7dc276b68  grailward-agent-windows-amd64.exe

v0.2.1 — tray app, log noise fix

Choose a tag to compare

@filipealc filipealc released this 08 Jul 16:02
  • Fixed agent.log spam: a per-file status line is logged only when it changes (a persistent condition logs once instead of flooding every scan).
  • First version with this public source mirror.

Downloads

Binaries are distributed at grailward.com/download (canonical: downloads.grailward.com, immutable versioned paths).

SHA-256

62f84741ef82dfdd04a322b037b9371e1b21256c094c84dbbb684d33a02bf6ea  grailward-agent-darwin
8a8e16d40a3b68e342f31dd588f3d1f0e78c193e1eb572174e088325b5b63175  grailward-agent-macos.zip
d786f522df1b6e2cf192757f4ae6e246ebfc6c83af670bba24e7e37edd53b87e  grailward-agent-windows-amd64.exe