- Remove Flutter app and egui placeholder crate, commit to Tauri as sole GUI - Update PLAN.md to replace egui with Tauri across all phases (v4.0) - Redesign task screen: sliding drawer for list picker, floating FAB for new tasks, bottom sheet toast for task creation with title + description fields - Add description support to create_task Tauri command - Lighten dark theme to GNOME-style neutral grays, shift primary to cyan-blue - Fix Wayland compatibility (dev port change) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.4 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Bevy Tasks is a local-first, cross-platform task management app built in Rust. Tasks are stored as markdown files with YAML frontmatter in user-selected folders. The GUI uses Tauri v2 (Svelte 5 + Tailwind CSS 4) in apps/tauri/.
Build & Test Commands
cargo build # Build all crates
cargo build -p bevy-tasks-cli # Build CLI only
cargo test # Run all tests
cargo test -p bevy-tasks-core # Run core library tests only
cargo run -p bevy-tasks-cli -- <args> # Run CLI with arguments
# Tauri GUI
cd apps/tauri && npm install # Install frontend dependencies
npm run tauri dev # Run Tauri in dev mode
npm run tauri build # Build for production
The CLI binary is named bevy-tasks (from the bevy-tasks-cli crate).
Architecture
Two-crate workspace (resolver = "2", edition 2021) plus a Tauri app:
- bevy-tasks-core — Pure Rust library. Storage trait with
FileSystemStorageimplementation,TaskRepository(main API), data models, config, error types. No CLI/UI dependencies. - bevy-tasks-cli — CLI frontend using clap. Commands are in
src/commands/(init, workspace, list, task, group). Output formatting insrc/output.rs. - apps/tauri/ — Tauri v2 GUI. Svelte 5 frontend in
src/, Rust backend insrc-tauri/with Tauri commands that call intobevy-tasks-core.
Key patterns
- Storage trait (
storage.rs): Strategy pattern for task persistence.FileSystemStoragereads/writes markdown files with YAML frontmatter and JSON metadata files. - Repository (
repository.rs):TaskRepositorywraps aStorageimpl and provides the public API for task/list CRUD, ordering, and grouping. Tests live here. - Config (
config.rs):AppConfigmanages named workspaces with paths. Stored in platform-specific config dirs via thedirectoriescrate.
On-disk format
Workspaces are plain folders. Each task list is a subfolder containing .listdata.json (metadata/ordering) and one .md file per task. The workspace root has .metadata.json for list ordering.
Roadmap
See PLAN.md for the 7-phase roadmap. Phase 1 is complete. Detailed API docs in docs/API.md, development practices in docs/DEVELOPMENT.md.