Skip to content

Building from Source

gwebos edited this page Oct 25, 2026 · 2 revisions

Polygluttony is a Tauri 2 app: a Rust engine (src-tauri/) with a React 19 + TypeScript interface (src/).

Requirements

On Debian or Ubuntu, these are the packages the release build installs:

sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev \
  librsvg2-dev patchelf build-essential curl wget file libxdo-dev libssl-dev

Build and run

git clone https://github.com/blyat-uk/polygluttony.git
cd polygluttony
bun install
bun tauri dev      # run with hot reload
bun tauri build    # build an installable bundle for this OS

The bundle lands in src-tauri/target/release/bundle/. To build only one format, pass it along, for example bun tauri build --bundles appimage.

There's no release build for Intel Macs. Building on one is untested.

Tests and checks

cargo test --manifest-path src-tauri/Cargo.toml   # the Rust test suite
bun run build                                     # type-checks the interface, then builds it

Generated code

  • TypeScript types in src/types/generated/ are generated from the Rust types by ts-rs and committed. After changing a Rust type that crosses into the interface, run bun gen:bindings and commit the result.
  • The route tree (src/routeTree.gen.ts) is generated on every dev run and build, and isn't committed.

Where things are

Path What's there
src-tauri/src/ass/ Reading and writing .ass files, tag handling
src-tauri/src/translation/ Batching, the translation pipeline, clean-up, Verify, Review and stored results
src-tauri/src/validation/ Line markers, alignment and the line-by-line checks
src-tauri/src/glossary/ Building the glossary, Tidy up, Look up names online, imported terms, version history
src-tauri/src/llm/ The Anthropic, OpenAI and Gemini clients
src-tauri/src/config/ Settings, the model library, setup export and import
src-tauri/prompts/ The built-in prompts
src/features/ The pages of the app (connections is the Models page), plus shared pieces
src/episode/ The episode window: watching a run, reviewing an episode

Releases

Pushing a v* tag runs .github/workflows/release.yml. It builds Windows, macOS (Apple Silicon) and Linux, and publishes the release once all three succeed.

Clone this wiki locally