Skip to content

Conversation

@ashwinvaidya17
Copy link
Contributor

@ashwinvaidya17 ashwinvaidya17 commented Dec 19, 2025

πŸ“ Description

  • Initial tauri application

TODO

  • Start up time for pyinstaller build is very high. Optimize it so that it loads quicker

✨ Changes

Select what type of change your PR is:

  • πŸš€ New feature (non-breaking change which adds functionality)
  • 🐞 Bug fix (non-breaking change which fixes an issue)
  • πŸ”„ Refactor (non-breaking change which refactors the code base)
  • ⚑ Performance improvements
  • 🎨 Style changes (code style/formatting)
  • πŸ§ͺ Tests (adding/modifying tests)
  • πŸ“š Documentation update
  • πŸ“¦ Build system changes
  • 🚧 CI/CD configuration
  • πŸ”§ Chore (general maintenance)
  • πŸ”’ Security update
  • πŸ’₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)

βœ… Checklist

Before you submit your pull request, please make sure you have completed the following steps:

  • πŸ“š I have made the necessary updates to the documentation (if applicable).
  • πŸ§ͺ I have written tests that support my changes and prove that my fix is effective or my feature works (if applicable).
  • 🏷️ My PR title follows conventional commit format.

For more information about code review checklists, see the Code Review Checklist.

Copilot AI review requested due to automatic review settings December 19, 2025 11:04
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces an initial Tauri-based desktop application that packages the Geti Inspect backend as a PyInstaller binary sidecar. The main changes include:

  • Setting up a Tauri application with React frontend scaffolding
  • Configuring PyInstaller to bundle the Python backend with necessary dependencies
  • Adding runtime hooks for environment configuration in frozen applications
  • Removing TrackioLogger from training service to simplify dependencies

Reviewed changes

Copilot reviewed 23 out of 47 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
application/binary/tauri/vite.config.ts Vite configuration for Tauri development with HMR support
application/binary/tauri/tsconfig.json TypeScript configuration for the React frontend
application/binary/tauri/tsconfig.node.json TypeScript configuration for Node.js tooling
application/binary/tauri/src/main.tsx React application entry point
application/binary/tauri/src/App.tsx Placeholder React component with Tauri demo functionality
application/binary/tauri/src/App.css Styling for the demo React application
application/binary/tauri/src-tauri/tauri.conf.json Tauri configuration specifying build commands and sidecar integration
application/binary/tauri/src-tauri/src/main.rs Rust backend managing sidecar lifecycle with start/stop commands
application/binary/tauri/src-tauri/src/lib.rs Unused library with demo greet command
application/binary/tauri/src-tauri/capabilities/default.json Tauri permissions for shell execution and sidecar management
application/binary/tauri/src-tauri/build.rs Standard Tauri build script
application/binary/tauri/src-tauri/Cargo.toml Rust dependencies for Tauri application
application/binary/tauri/src-tauri/.tauriignore Files to exclude from Tauri builds
application/binary/tauri/src-tauri/.gitignore Git ignore patterns for Rust builds and generated files
application/binary/tauri/package.json NPM dependencies and build scripts
application/binary/tauri/index.html HTML entry point for the Tauri application
application/binary/tauri/.gitignore Git ignore patterns for Node.js and build artifacts
application/binary/sidecar/hook-setup.py PyInstaller runtime hook for environment and path configuration
application/binary/sidecar/geti_inspect_cpu.spec PyInstaller spec file collecting dependencies and configuring binary
application/binary/README.md Documentation explaining architecture and folder structure
application/backend/src/settings.py Updated to support environment-based alembic configuration
application/backend/src/services/training_service.py Removed TrackioLogger dependency
application/backend/src/main.py Refactored to support PyInstaller with freeze_support
Files not reviewed (1)
  • application/binary/tauri/package-lock.json: Language not supported

πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Building the sidecar

```bash
uv run No newline at end of file
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The 'Building the sidecar' section has an incomplete command. The uv run command should specify what script or target to run for building the sidecar.

Suggested change
uv run
uv run pyinstaller path/to/your_specfile.spec

Copilot uses AI. Check for mistakes.
Signed-off-by: Ashwin Vaidya <[email protected]>
Signed-off-by: Ashwin Vaidya <[email protected]>
Copilot AI review requested due to automatic review settings December 19, 2025 11:56
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 23 out of 47 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • application/binary/tauri/package-lock.json: Language not supported

πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -0,0 +1,26 @@
[package]
name = "Geti Inspect"
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

Package name contains spaces which is not allowed in Cargo.toml. Use a hyphenated or underscored name like 'geti-inspect' or 'geti_inspect'.

Suggested change
name = "Geti Inspect"
name = "geti-inspect"

Copilot uses AI. Check for mistakes.
@@ -0,0 +1 @@

Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

Empty library file should either be removed if not needed, or contain a module-level doc comment explaining its purpose. If it's required by the Tauri build system, add a comment explaining that.

Suggested change
//! Library crate required by the Tauri build system.
//!
//! This file is intentionally left empty because all application logic
//! is defined in other modules/binaries. It is kept to satisfy project
//! and tooling expectations.

Copilot uses AI. Check for mistakes.
## Building the sidecar

```bash
uv run No newline at end of file
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

Documentation is incomplete. The command 'uv run' is truncated and doesn't provide complete instructions for building the sidecar.

Copilot uses AI. Check for mistakes.
}

#[tauri::command]
async fn start_server(app: AppHandle, state: State<'_, APIManagerState>) -> Result<String, String> {
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The start_server and stop_server commands are defined but never invoked from the Tauri command system. These functions need to be registered in the tauri::Builder with .invoke_handler() to be callable from the frontend.

Copilot uses AI. Check for mistakes.
}

#[tauri::command]
async fn stop_server(state: State<'_, APIManagerState>) -> Result<String, String> {
Copy link

Copilot AI Dec 19, 2025

Choose a reason for hiding this comment

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

The start_server and stop_server commands are defined but never invoked from the Tauri command system. These functions need to be registered in the tauri::Builder with .invoke_handler() to be callable from the frontend.

Copilot uses AI. Check for mistakes.
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