A click on a branch switches to it, the wheel moves the selection, a click
outside closes the popup. The popup is hit-tested by its own position, as it
is drawn after zone.Scan.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
b opens a centered popup with a search line and the local and remote
branches of the selection. Enter stages the branch tip as the pin of a
submodule, restores it (and everything below) to it, and puts HEAD on the
branch; a remote branch gets a local tracking branch unless one exists
elsewhere. Works on the superproject too. Losses are asked like restore.
The backdrop behind the popup is dimmed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Staged pins survive a restore at every depth and are the targets of the
submodules below. For a submodule with a staged pin, x asks whether to
restore to the staged or the committed pin, the latter unstaging it.
Staged pins of a repository that moves count as a loss.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Restores the selection and all submodules below it recursively, asking
only if work would be lost. May clone/fetch missing objects (D23).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`!` reduces the tree to submodules with issues (or unknown state) plus
their ancestors, reusing the filter's reduction. Adds docs/actions.md as
a draft spec for restore and stage pin.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>