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

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