This document captures project-specific conventions and mandates for Gemini CLI.
-
Release Notes: Whenever you perform a version bump or complete a significant set of features/fixes, you MUST create or update a release notes file in the
changelogs/directory.- File format:
changelogs/v<VERSION>.md(e.g.,changelogs/v0.2.2.md). - Content: Bullet points for Features, Improvements, and Bug Fixes.
- This file is automatically read by GitHub Actions during the release process.
- File format:
-
Backend-Only Storage:
- Lanes MUST be managed by the Rust backend only.
- Do NOT add persistent storage logic for lanes in the frontend.
- Use
frontend/src/lib/lane-api.tswhich wraps Tauri commands.
-
External Command Execution:
- On Unix: Use interactive login shells (
-li) viaCommand::new(shell)to ensure user environment (nvm, path, etc.) is loaded. - On Windows: Wrap commands in
cmd /Cto ensure.cmdand.batshims resolve correctly.
- On Unix: Use interactive login shells (
-
Terminal Scrolling:
- Terminal auto-scroll MUST be reactive to user behavior.
- If a user manually scrolls up, auto-scroll MUST be paused.
- A "Scroll to Bottom" button MUST be shown when the user is scrolled up.
- DO NOT create implementation summaries or progress logs as separate files.
- Use NOTES.md for temporary work-in-progress notes and clean it up regularly.
- Update existing files:
README.md,features.md, and this file (GEMINI.md).
- Frontend: SolidJS + TypeScript (Vite)
- Backend: Rust + Tauri 2.x
- Shared: Rust workspace crates under
crates/ - Package Manager: pnpm
- Follow the Zed-inspired theme palette.
- Maintain native-feeling performance (instant UI updates).
- Use platform-agnostic paths wherever possible (backend handles resolution).