|
| 1 | +# Repository Guidelines |
| 2 | + |
| 3 | +## Project Structure & Module Organization |
| 4 | +- `src/` contains the React + TypeScript frontend, organized by feature slices: `features/`, `shared/`, `layouts/`, `router/`, `i18n/`, `services/`, `types/`, `constants/`. |
| 5 | +- `src-tauri/` contains the Rust backend and Tauri configuration. |
| 6 | +- `public/` holds static assets used by the web view (icons, etc.). |
| 7 | +- `docs/` contains user documentation (see `docs/USAGE.md`). |
| 8 | +- `scripts/` includes maintenance utilities such as `scripts/bump-version.sh`. |
| 9 | +- Build outputs land in `dist/` (frontend) and `src-tauri/target/` (Tauri). |
| 10 | + |
| 11 | +## Build, Test, and Development Commands |
| 12 | +- `pnpm install` installs dependencies (Node >= 20, pnpm 10). |
| 13 | +- `pnpm run dev` starts the Vite dev server for the frontend only. |
| 14 | +- `pnpm run build` runs TypeScript checks and builds the frontend bundle. |
| 15 | +- `pnpm run preview` serves the built frontend for local verification. |
| 16 | +- `pnpm run tauri dev` runs the full desktop app in development mode. |
| 17 | +- `pnpm run tauri build` builds the production desktop application. |
| 18 | + |
| 19 | +## Coding Style & Naming Conventions |
| 20 | +- Indentation: 2 spaces, LF line endings, UTF-8, trim trailing whitespace (see `.editorconfig`). |
| 21 | +- Formatting: Prettier with Tailwind plugin, no semicolons, single quotes (see `.prettierrc`). |
| 22 | +- Prefer clear, descriptive names; keep React components in `PascalCase` and hooks in `camelCase` (e.g., `useQuotaStore`). |
| 23 | + |
| 24 | +## Testing Guidelines |
| 25 | +- There is no dedicated automated test suite yet. |
| 26 | +- Before submitting changes, run `pnpm run build` and perform a manual smoke test via `pnpm run tauri dev`. |
| 27 | +- If you add tests, co-locate them near the feature and use a `*.test.ts(x)` naming pattern. |
| 28 | + |
| 29 | +## Commit & Pull Request Guidelines |
| 30 | +- Commit messages follow a Conventional Commit style seen in history: `feat(scope): ...`, `fix: ...`, `docs(README): ...`, `build(release): ...`. |
| 31 | +- Keep commits focused and scoped; prefer multiple small commits over a single large one. |
| 32 | +- Pull requests should include a concise summary, steps to verify, and screenshots for UI changes. |
| 33 | +- Link related issues or discussions when applicable. |
| 34 | + |
| 35 | +## Security & Configuration Notes |
| 36 | +- The app depends on CLIProxyAPI and external provider auth; avoid committing secrets or tokens. |
| 37 | +- If you touch OAuth flows or updater logic, test on all supported platforms where possible. |
0 commit comments