# Rayburst Contributing Guide Maintained by [@AnInsomniacy](https://github.com/AnInsomniacy). PRs and issues are welcome! Before you start contributing, make sure you understand [GitHub flow](https://guides.github.com/introduction/flow/). ## ๐Ÿ›  Development Setup ### Prerequisites - [Rust](https://rustup.rs/) (latest stable) - [Node.js](https://nodejs.org/) >= 22 - [pnpm](https://pnpm.io/) 10.x, managed by the `packageManager` field in `package.json` ### Getting Started ```bash git clone https://github.com/AnInsomniacy/rayburst.git cd rayburst pnpm install pnpm tauri dev # Start dev server (Tauri + Vite) ``` Development mode does not register Native Messaging hosts or change URL protocol associations. Start the desktop manually when testing the extension API. Test browser activation with an installed build; development must not replace its system registrations. This uses Tauri's development mode, not the Rust debug profile. Rust backend (standalone): ```bash pnpm build:native-launcher cd src-tauri cargo check --workspace --all-targets cargo test --workspace --all-targets ``` ## โœ… Code Quality CI runs the checks below. Run the relevant subset locally before PR review: ```bash pnpm lint # ESLint pnpm format:check # Prettier formatting pnpm test # Vitest pnpm check:repo # Locale structure and placeholders pnpm build # TypeScript check and frontend bundle cd src-tauri && cargo fmt --all -- --check # Rust formatting cd src-tauri && cargo clippy --workspace --all-targets -- -D warnings cd src-tauri && cargo test --workspace --all-targets ``` Pre-commit hooks (husky + lint-staged) auto-run `eslint --fix` and `prettier --write` on staged files. ## ๐Ÿ“ Component Guidelines - **Keep `