Skip to content

Version 0.1.1: Windows installer .exe with bundled llama.cpp - #1

Merged
andrejristic merged 4 commits into
mainfrom
windows-exe
Oct 12, 2026
Merged

andrejristic merged 4 commits into
mainfrom
windows-exe

Conversation

@andrejristic

Copy link
Copy Markdown
Owner

Adds a Windows installer, DivideReader-Setup-<version>.exe, built on GitHub's Windows runner. Linux behaviour is unchanged.

Code (Windows only)

  • paths.py: data goes in %LOCALAPPDATA%\divide-reader, settings in %APPDATA%\divide-reader.
  • download.py: free space comes from shutil.disk_usage, because os.statvfs does not exist on Windows. RAM comes from GlobalMemoryStatusEx instead of /proc/meminfo. replace() is used instead of rename().
  • localserver.py: runs llama-server.exe with no console window. A kill-on-close job object stops it when the program exits, even when the program is killed. This matches what PR_SET_PDEATHSIG does on Linux.

Packaging

  • packaging/build_exe.sh: builds the PyInstaller bundle and adds llama.cpp b11429 cpu and vulkan builds, the same build as the .deb, with SHA-256 pinned.
  • packaging/divide-reader.iss: per-user Inno Setup installer that needs no admin rights. It adds a Start menu entry and an optional desktop icon.
  • packaging/divide-reader.ico: rendered from the existing SVG.

CI: build-exe runs on tags, PRs and manual dispatch

  • Runs the tests on Windows and builds the installer.
  • Installs it silently and checks that the program starts and that the bundled llama-server.exe runs.
  • Checks that a child process attached to the job object dies with its parent.

🤖 Generated with Claude Code

andrejristic and others added 4 commits October 11, 2026 20:16
- paths: data in %LOCALAPPDATA%, settings in %APPDATA% on Windows
- download: free space via shutil.disk_usage, RAM via GlobalMemoryStatusEx,
  replace() so a finished download never fails on an existing file
- localserver: llama-server.exe, no console window, and a kill-on-close job
  object so it stops with the program, as PR_SET_PDEATHSIG does on Linux
- packaging/build_exe.sh + divide-reader.iss: PyInstaller bundle, llama.cpp
  b11429 cpu + vulkan (SHA-256 pinned), per-user Inno Setup installer
- build-exe workflow: tests, build, silent install, start-up and
  llama-server checks on Windows

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@andrejristic andrejristic changed the title Windows build: installer .exe with bundled llama.cpp Version 0.1.1: Windows installer .exe with bundled llama.cpp Oct 12, 2026
@andrejristic
andrejristic marked this pull request as ready for review October 12, 2026 00:25
@andrejristic
andrejristic merged commit 453d14a into main Oct 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant