Skip to content

Feature: Sidebar-based lazy Git staging & committing (à la lazygit) #213

@myusuf3

Description

@myusuf3

Add lightweight Git controls to the sidebar that enable staging, unstaging, and committing changes in a fast, keyboard-friendly workflow similar to lazygit—without leaving the current review/editing context.

Motivation
While fixing review comments, switching between diff views and external Git tools breaks flow. A built-in, minimal interface for common Git actions would streamline iteration and reduce context switching.

Proposed Solution
Introduce a sidebar panel with core Git actions:

  • File list with status (modified, added, deleted, renamed)
  • Stage/unstage controls
    • Toggle per file
    • Optional hunk-level staging
  • Diff preview
    • Inline or split view
    • Navigate by file/hunk
  • Commit box
    • Message input with validation
    • Support for amend
  • Quick actions
    • Stage all / unstage all
    • Discard changes (with confirmation)
    • Commit & push (optional toggle)

Interaction Model

  • Keyboard-first navigation (up/down, enter, space to toggle stage)
  • Persistent selection and scroll position
  • Non-blocking updates as files change

Expected Behavior

  • Staged state persists during navigation and diff reloads
  • No loss of in-progress selections or commit message
  • Works seamlessly alongside review annotations

Actual Gap Today

  • No integrated, low-friction Git workflow in the sidebar
  • Requires switching tools or panels to stage/commit

Impact

  • Faster iteration when addressing review comments
  • Reduced cognitive load and context switching
  • Closer parity with efficient terminal workflows (e.g., lazygit)

Nice-to-haves

  • Hunk splitting/editing before staging
  • Commit templates / linting (e.g., Conventional Commits)
  • Inline conflict resolution indicators
  • Optional autosave of commit message drafts

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