Skip to content

tui 8/8: split — line-level interactive selector, two-way repeated #9

Description

@freshtonic

Parent

#1 — git queue tui — interactive queue/history editor (TUI)

What to build

Split one commit into several via an interactive, line-level selector. (Runs parallel to delete/squash; needs the conflict machinery.)

  • The diff pane gains an interactive line-selection mode for the selected commit: toggle individual added/removed lines (keyboard and mouse) into "this piece" vs "the rest".
  • Two-way primitive, repeated: each split produces two commits; repeat on the remainder to reach N pieces.
  • Identity (follow jj): the older resulting piece keeps the original Stable-Commit-Id and message; each peeled piece gets a freshly minted id and a message the user writes. Any commit the TUI creates is auto-stamped so the queue never leaves with untracked commits.

Acceptance criteria

  • The diff pane enters a line-level selection mode; lines can be toggled by keyboard and mouse.
  • Closing the selection splits the commit into two, with the selected content in one and the rest in the other.
  • Repeating on the remainder yields three or more pieces.
  • The older piece keeps the original id + message; peeled pieces get fresh ids and written messages; all new commits are stamped.
  • Split is undoable.
  • Engine integration tests cover a two-way split (content division + id/message assignment) and a repeated split producing three pieces.

Blocked by

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

    ready-for-agentSpec is ready to be picked up by an implementing agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions