Skip to content

feat: init Tauri desktop app#26

Merged
BuckyMcYolo merged 1 commit intomainfrom
dev
Mar 23, 2026
Merged

feat: init Tauri desktop app#26
BuckyMcYolo merged 1 commit intomainfrom
dev

Conversation

@BuckyMcYolo
Copy link
Copy Markdown
Owner

@BuckyMcYolo BuckyMcYolo commented Mar 23, 2026

Summary

This PR initializes a Tauri desktop application as part of the monorepo, introducing the apps/desktop/ directory with complete Rust and Node.js configuration.

Key Changes

Desktop App Infrastructure

  • Created apps/desktop/ with Node.js package configuration (package.json) declaring @tauri-apps/cli@^2.10.1 as a dev dependency
  • Added apps/desktop/src-tauri/ with complete Rust/Cargo configuration for the Tauri native layer
    • Cargo.toml defines the app package with Rust 1.77.2+ requirement
    • Library target configured as app_lib with staticlib, cdylib, and rlib crate types
    • Dependencies: tauri@2.10.3, tauri-plugin-log@2, serde, serde_json, log
    • Build dependency: tauri-build@2.5.6

Application Entry Points

  • src/main.rs: Suppresses console window on Windows release builds and delegates to app_lib::run()
  • src/lib.rs: Public run() function that initializes Tauri builder with optional debug logging plugin and generates the application context
  • build.rs: Wires Tauri build script into the Rust build pipeline

Configuration & Assets

  • tauri.conf.json: Desktop app configuration with:
    • Frontend distribution path: ../../apps/web/dist
    • Dev server URL: http://localhost:3000
    • Build commands properly integrated with pnpm to build the web app before development/build
    • Single resizable 800×600 window with fullscreen disabled
    • CSP set to null
    • Bundle configuration for all targets with complete icon set
  • capabilities/default.json: Default capability set granting core permissions to the main window
  • Complete icon set included (32x32, 128x128, icns, ico, PNG variants for Windows Store)
  • .gitignore entries added for Cargo/Rust build artifacts (target/, gen/schemas/)

Minor Updates

  • Updated tooltip text in apps/web/src/components/chat/header.tsx from "Show Members" to "Show Panel"

Architecture

The desktop app is properly integrated with the monorepo:

  • Follows pnpm workspace structure (apps/* pattern)
  • Frontend is built from the web app (apps/web) during desktop build
  • Rust library compiles to multiple formats to support various linkage requirements

Confidence Score: 3/5

Strengths:

  • Complete and functional Tauri boilerplate with all necessary files
  • Proper integration with existing web app frontend via build commands
  • Comprehensive icon assets included for multi-platform distribution
  • Correct dependency versions and proper feature configuration
  • Follows monorepo patterns and pnpm workspace conventions

Minor Issues:

  • Package metadata contains defaults: empty description/keywords/author, generic "ISC" license
  • Tauri identifier is placeholder value (com.tauri.dev) and should be updated
  • No documentation or setup instructions for running the desktop app
  • CSP explicitly set to null—while typical for desktop apps, could be tightened for security
  • No test infrastructure for the Rust code
  • Unrelated change mixed in (header.tsx tooltip update)
  • The generated schema file referenced in capabilities/default.json is not included (expected, as it's generated)

The PR provides a solid foundation for a Tauri desktop application with functional build integration, but placeholder values and missing documentation mean it would benefit from follow-up updates before production use.

@BuckyMcYolo BuckyMcYolo merged commit e61ef3f into main Mar 23, 2026
1 check was pending
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 23, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0c664c74-4938-411a-b225-1cd94a9c2f56

📥 Commits

Reviewing files that changed from the base of the PR and between 78f577b and eaa507a.

⛔ Files ignored due to path filters (17)
  • apps/desktop/src-tauri/Cargo.lock is excluded by !**/*.lock
  • apps/desktop/src-tauri/icons/128x128.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/128x128@2x.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/32x32.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square107x107Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square142x142Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square150x150Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square284x284Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square30x30Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square310x310Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square44x44Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square71x71Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/Square89x89Logo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/StoreLogo.png is excluded by !**/*.png
  • apps/desktop/src-tauri/icons/icon.ico is excluded by !**/*.ico
  • apps/desktop/src-tauri/icons/icon.png is excluded by !**/*.png
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (11)
  • .gitignore
  • apps/desktop/package.json
  • apps/desktop/src-tauri/.gitignore
  • apps/desktop/src-tauri/Cargo.toml
  • apps/desktop/src-tauri/build.rs
  • apps/desktop/src-tauri/capabilities/default.json
  • apps/desktop/src-tauri/icons/icon.icns
  • apps/desktop/src-tauri/src/lib.rs
  • apps/desktop/src-tauri/src/main.rs
  • apps/desktop/src-tauri/tauri.conf.json
  • apps/web/src/components/chat/header.tsx

📝 Walkthrough

Walkthrough

This change introduces a complete Tauri desktop application scaffold including Node.js package configuration, Rust project structure with Cargo manifest, build configuration, capabilities, and Tauri settings. Additionally, a tooltip label in the web app chat header was updated from "Show Members" to "Show Panel".

Changes

Cohort / File(s) Summary
Root build artifacts
.gitignore
Added target/ directory to ignore Rust/Tauri build artifacts.
Desktop Node.js setup
apps/desktop/package.json
New Node package definition with @tauri-apps/cli v2.10.1 as dev dependency and placeholder test script.
Desktop Rust/Tauri foundation
apps/desktop/src-tauri/.gitignore, apps/desktop/src-tauri/Cargo.toml, apps/desktop/src-tauri/build.rs, apps/desktop/src-tauri/src/lib.rs, apps/desktop/src-tauri/src/main.rs
Complete Rust project structure: Cargo manifest with dependencies (tauri v2.10.3, serde, log, tauri-plugin-log), build script entrypoint, library entry point with Tauri initialization and conditional plugin loading, and Windows-specific main entrypoint.
Desktop Tauri configuration
apps/desktop/src-tauri/capabilities/default.json, apps/desktop/src-tauri/tauri.conf.json
Tauri app configuration including capability definitions, window settings (800×600, resizable, fullscreen disabled), security settings (CSP), frontend paths, and bundling directives.
Web UI updates
apps/web/src/components/chat/header.tsx
Updated sidebar toggle tooltip text from "Show Members" to "Show Panel".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A new desktop app takes flight,
With Tauri's magic, strong and bright,
From Rust to Node, the pieces align,
And panels now show—no more "Members" sign!

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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