Ivan's Blog
项目实践

display-ambient-light-desktop

Cross-platform desktop app for ambient lighting control: Tauri backend + a TS/SolidJS frontend, with Rust toolchain pinned. Evidence: src-tauri/, package.json, rust-toolchain.toml.

  • Tauri desktop app
  • Rust application
  • UI version display
  • GitHub Actions scheduling

目录

技术栈

运行与交付

CI 工作流
  • ci.yml
  • dependencies.yml
  • dev-build.yml
  • release.yml
能力标记
  • github_actions
  • package_json
JSON

Basics

Cross-platform desktop app for ambient lighting control: Tauri backend + a TS/SolidJS frontend, with Rust toolchain pinned. Evidence: src-tauri/, package.json, rust-toolchain.toml.

Taxonomy

  • Tags: Tauri desktop app, Rust application, UI version display, GitHub Actions scheduling

Architecture

  • Frontend: Vite-powered TS app under src/, with Tailwind pipeline and static HTML entrypoints. Evidence: vite.config.ts, src/, tailwind.config.js.
  • Backend: Rust Tauri side under src-tauri/ (native integration + device control). Evidence: src-tauri/, rust-toolchain.toml.
  • Version surfacing: an About UI renders the app version fetched from an internal API endpoint. Evidence: src/about.tsx, src-tauri/src/http_server/api/info.rs.

Workflow and quality gates

.github/workflows/release.yml 只由 workflow_dispatch 触发,却以 workflow/ref 作为 concurrency group 并允许取消在途运行。重复手工发布可能因此取消仍在执行的构建;这属于 GitHub Actions scheduling 的后续同步风险,当前 snapshot 不预设外部修复。

Conventions

  • Tooling: lefthook.yml + commitlint.config.cjs used to keep commit and hook workflows consistent. Evidence: lefthook.yml, commitlint.config.cjs.
  • Multi-language lint: repo includes both Rust and TS formatting/lint scripts. Evidence: package.json, rust-toolchain.toml.

Taste notes

Good “hybrid app” structure: clear frontend/backend boundary (src/ vs src-tauri/) plus pinned toolchain improves long-term maintainability.