Skip to content

v1.0.3 Server GUI Edition

Choose a tag to compare

@JEschete JEschete released this 17 May 23:57

Server GUI Edition

First release with a proper desktop launcher. The text-menu launcher from v1.0.1 is still available via launch.cmd --cli, but the GUI is now the default experience on Windows.

New: PyQt6 desktop launcher

  • Server controls - Start / Stop server and Launch browser as one-click buttons; uvicorn is managed in-process, no second console window.
  • Live status indicators - Colored dot + label for both the web server (running / starting / stopped / error) and the SQLite database (ready / empty / error), polled every 800 ms.
  • Workbook ingest - File picker so you can point at any .xlsx instead of dropping it in Spreadsheet/. Ingest output streams into a log pane in real time.
  • Characters panel - Shows every character in the DB with their starting class. Auto-refreshes after each ingest; Open in browser deep-links to /characters.
  • Instructions dialog - Step-by-step walkthrough covering Discord workbook download → ingest → server start → Lodestone scrape → import, with troubleshooting tips. Links rewrite to your live server URL when it's running.
  • Built-in update check - Queries this repo's /releases/latest, compares against _version.py, and offers to download the installer asset with progress.
  • Open Discord button jumps straight to the FFXIV Completionist server.

New: Windows installer

build_installer.py produces a self-contained Inno Setup installer that bundles its own Python runtime - end users no longer need Python on their PATH. Desktop and Start Menu shortcuts launch the GUI via pythonw (no console window) and use the bundled icon.ico. A secondary (Text Menu) Start Menu entry preserves the old CLI workflow for power users.

Bug fixes

  • Server status now probes the actual bind host, not just loopback - fixes a regression where binding to a specific LAN IP (192.168.1.x) made the indicator stay gray even though the server was running.
  • Subprocess log output streams live instead of sitting in pipe buffers for minutes. Uses PYTHONUNBUFFERED, -u, and separate stdout/stderr channels so uvicorn's startup logs (which go to stderr) actually surface in the GUI.
  • Stopping the server no longer flashes a red "error" state - a user-initiated stop is correctly reported as gray "Not running".

For contributors

  • build_icons.py regenerates assets/icon.ico from assets/icon.png at every installer build, so swapping the app icon is a one-file change.
  • updater.py is dependency-free (stdlib only) and reusable outside the GUI.
  • Inno Setup script (FFXIVTracker.iss) is checked in; python build_installer.py is a one-command build.

Assets

  • FFXIVTracker-v1.0.2-Windows-Setup.exe - recommended. Self-contained installer with bundled Python.
  • FFXIVTracker-v1.0.2.zip - source bundle for users who already have Python 3.10+.