Commit triage marks from the toolbar, not just from the deck - #49
Merged
Conversation
Marks are made in the list with K/X/U as often as in the deck, but the only thing the main window could do with them was throw them away: the pending-marks pill carried a Discard link and nothing else. Committing meant clicking Triage, landing on a card deck you didn't want (Open starts at the first *unmarked* file), then Review, then Commit — three clicks and a mode switch to reach the productive action, one to destroy the work. The cause was ownership: Commit_Click lived on TriageView, a control that has nothing to do with committing. CommitDialog was already independent of the deck — it takes a per-folder summary and a totals callback and knows nothing else — so only the call site was trapped. TriageCommitFlow now owns the dialog, the issue #1 preview-handle release and the commit itself; the deck and the toolbar both go through it, so neither can drift from the other or forget the handle release before files start moving. The pill becomes the staging control it was already halfway to being: the keep/reject split, Review (which opens the overlay straight onto the piles, skipping the deck), a primary Commit, and Discard demoted into the overflow — destructive actions shouldn't outrank productive ones. Ctrl+Enter commits from anywhere in the window rather than FileList_KeyDown, so it still works from the filter box, and it gets a chip in the status-bar hint row next to K / X and U. Also drops the trailing ellipsis from the commit labels. "Commit…" is the Windows convention for "opens a dialog", but at 12px it reads as truncated text, which is the opposite of reassuring on the button that touches the disk. MainViewModel.TotalsFor replaces the InScope filtering the commit dialog's caller was doing over the piles, which duplicated TriageSession.Pending. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The problem
Marks are made in the list with
K/X/Uas often as in the card deck, but the main window could only discard them. The pending-marks pill carried a Discard link and nothing else; committing meantTriage→ a deck you didn't ask for (Openstarts on the first unmarked file) →Review→Commit. Three clicks and a mode switch to reach the productive action, one click to destroy the work.Why it was shaped that way
Commit_Clicklived onTriageView— a control that has nothing to do with committing.CommitDialogwas already independent of the deck (it takes a per-folder summary and a totals callback, nothing else), so only the call site was trapped in the overlay.What changed
TriageCommitFlow(new) owns the dialog, the issue [BUG] There is significant lag when deleting a video #1 preview-handle release, and the commit. The deck and the toolbar both call it, so neither can drift from the other or skip the handle release before files start moving.TriageView.Commit_Clickis now three lines.✓ n · ✗ n, an optionalin N folders, Review, a primary Commit, and Discard demoted into a⋯overflow — a destructive action shouldn't outrank the productive one.TriageView.Open(vm, startInReview: true)opens onto the piles, skipping the deck. Previously the review screen could only be reached through the deck.Ctrl+Entercommits, registered as a windowInputBindingrather than inFileList_KeyDownso it works from the filter box and rename bar too. Added to the status-bar hint chips next toK / XandU.MainViewModel.TotalsFor(bool)replaces theInScopefiltering the dialog's caller did over the piles, which duplicatedTriageSession.Pending.Commit…is the Windows convention for "opens a dialog", but at 12px it reads as truncated text — not what you want on the button that touches the disk.Reviewer notes
CommitTriage's behaviour is untouched: same scoping, same undo entry, same partial-failure handling. This PR only changes who can reach it.Previewand re-shows it after the folder reload, mirroring whatTriageViewdoes withCardPreview.Padding="14,4"/CornerRadius="12"for that reason, noted in a comment.K/X, pill renders the split counts, commit dialog opens from the toolbar.🤖 Generated with Claude Code