authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-14 23:02:37-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-14 23:35:48-08:00
log8bbba3d358ae2fcd4ac47a0a9a2c96909f65089a
tree3ba6f6bb4089e7a50c8ea2b25e4a2c2075f10194
parentc0bdd46ddd761a176de23c4ea926737e537fcfa9

Skip commit progress stages when no files changed

- Only include commit-related progress steps for stacked actions when there are working tree changes - Prevents showing "Generating commit message"/"Committing" during pure push or PR flows

1 files changed, 9 insertions(+), 3 deletions(-)

apps/web/src/components/GitActionsControl.tsx+9-3
...@@ -124,10 +124,14 @@ function GitQuickActionIcon({ quickAction }: { quickAction: GitQuickAction }) {...@@ -124,10 +124,14 @@ function GitQuickActionIcon({ quickAction }: { quickAction: GitQuickAction }) {
124function buildGitActionProgressStages(input: {124function buildGitActionProgressStages(input: {
125 action: GitStackedAction;125 action: GitStackedAction;
126 hasCustomCommitMessage: boolean;126 hasCustomCommitMessage: boolean;
127 hasWorkingTreeChanges: boolean;
127}): string[] {128}): string[] {
128 const commitStages = input.hasCustomCommitMessage129 const shouldIncludeCommitStages = input.action === "commit" || input.hasWorkingTreeChanges;
129 ? ["Committing..."]130 const commitStages = !shouldIncludeCommitStages
130 : ["Generating commit message...", "Committing..."];131 ? []
132 : input.hasCustomCommitMessage
133 ? ["Committing..."]
134 : ["Generating commit message...", "Committing..."];
131 if (input.action === "commit") {135 if (input.action === "commit") {
132 return commitStages;136 return commitStages;
133 }137 }
...@@ -229,6 +233,7 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp...@@ -229,6 +233,7 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp
229 const progressStages = buildGitActionProgressStages({233 const progressStages = buildGitActionProgressStages({
230 action,234 action,
231 hasCustomCommitMessage: !!commitMessage?.trim(),235 hasCustomCommitMessage: !!commitMessage?.trim(),
236 hasWorkingTreeChanges: !!gitStatus?.hasWorkingTreeChanges,
232 });237 });
233 const progressToastId = toastManager.add({238 const progressToastId = toastManager.add({
234 type: "loading",239 type: "loading",
...@@ -306,6 +311,7 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp...@@ -306,6 +311,7 @@ export default function GitActionsControl({ api, gitCwd }: GitActionsControlProp
306 },311 },
307 [312 [
308 api,313 api,
314 gitStatus?.hasWorkingTreeChanges,
309 gitStatus?.openPr?.url,315 gitStatus?.openPr?.url,
310 maybeConfirmPushToDefaultBranch,316 maybeConfirmPushToDefaultBranch,
311 runImmediateGitActionMutation,317 runImmediateGitActionMutation,