Skip to content

migrate: add Tauri shell and Rust core#36

Open
boggedbrush wants to merge 13 commits into
mainfrom
migrate/tauri-shell-rust-core
Open

migrate: add Tauri shell and Rust core#36
boggedbrush wants to merge 13 commits into
mainfrom
migrate/tauri-shell-rust-core

Conversation

@boggedbrush
Copy link
Copy Markdown
Owner

Summary

Adds the first Tauri migration slice beside Electron while preserving the React renderer and Python FastAPI backend. Introduces a small Rust local operations core invoked by Python through JSON stdin/stdout.

Changes

  • Add Tauri host under src-tauri with native commands, window controls, dialog bridge, and Python sidecar supervision
  • Add renderer desktop adapter that prefers Tauri and falls back to Electron/web
  • Add patchops-core Rust crate for status, hash, scan-steam, and read-config
  • Add backend core_bridge.py and minimal /api/status integration with Python fallback
  • Add Tauri build/package scripts, sidecar verification, Windows/Linux CI workflows, and release workflow artifact wiring
  • Add Rust, Python, and renderer tests plus README migration docs

Testing

  • bun run test:renderer
  • bun run typecheck
  • cargo test -p patchops-core
  • cargo test -p patchopsiii-tauri
  • .venv\Scripts\python.exe -m unittest backend.test_core_bridge backend.test_api_status_core
  • bun run check:tauri-version
  • bun run verify:tauri-sidecars
  • bun x tauri build --bundles msi
  • Local packaged Windows smoke: /api/health, /api/status, /api/game-directory, Rust-backed status fields, settings write, clean shutdown

Notes

  • Electron remains in place as fallback during migration
  • Python remains the orchestration/API layer; install and uninstall flows are not moved to Rust
  • Tauri workflows are added for native Windows MSI and Linux AppImage validation

@boggedbrush boggedbrush marked this pull request as ready for review May 17, 2026 15:39
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 28f8ece028

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src-tauri/src/commands.rs
.stdin(Stdio::null())
.stdout(Stdio::null())
.stderr(Stdio::null());
command.spawn().map_err(|error| error.to_string())?;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reap spawned URL opener processes

open_external_url spawns rundll32/open/xdg-open and immediately drops the Child handle without waiting or reaping it. On Unix, Rust does not auto-wait dropped children, so each external-link click can leave a zombie until the app exits, which can accumulate in long-running sessions and eventually exhaust process table resources. Please either wait/reap in a background task or use a launch path that does not leave unreaped children.

Useful? React with 👍 / 👎.

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