-
Notifications
You must be signed in to change notification settings - Fork 2
Description
lib.rs is doing too much. It holds 23 #[tauri::command] handlers, timeline-building logic, diff computation, helper structs, and app setup. The project has already started extracting commands into focused modules (project_commands.rs, session_commands.rs, actions/commands.rs), but the majority still live in lib.rs. Natural extraction targets:
Timeline commands & logic → timeline_commands.rs — build_branch_timeline, get_branch_timeline, and the BranchTimeline/*TimelineItem structs
Diff commands & helpers → diff_commands.rs — BranchDiffContext, resolve_branch_context, build_diff_spec, build_remote_diff_refs, parse_name_status_z, get_diff_files, get_file_diff, get_file_at_ref
Review commands → review_commands.rs — review CRUD, mark/unmark reviewed, comment/reference management
Git utility commands → could live in git/commands.rs — list_branches, detect_default_branch, prune_refs, list_prs, list_issues
"Open In" / misc utility commands → utility_commands.rs — open_url, open_directory_in_app, check_sq_available, read_text_file
This follows the pattern already established by the existing extracted modules and aligns with the project hint: "Keep src/lib code files smaller and organized by responsibility."