Skip to content

Break up lib.rs #330

Description

@wesbillman

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."

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions