fix: rebase auto-resolve banner staleness + AI-resolve feedback/icon consistency - #145
Merged
Conversation
added 3 commits
August 10, 2026 12:58
…tion locale drift (#133) - App.vue: advanceToNextConflictOrFinalize() now also calls refreshRepoState() after repoRefresh(), matching the sibling rebase banner handlers. Without it, resolving a hunk/file during a rebase left the RebaseProgressBanner's Continue button disabled and the conflict hint shown even though the conflict had actually been resolved and staged. - MergeEditor.vue: the per-hunk AI-suggest button now renders the shared AiSparkle icon (bound to the hunk's own loading state) instead of a bespoke inline SVG with only a subtle opacity pulse, fixing both the "too subtle" loading feedback and the icon inconsistency with the rest of the app. - useHunkExplanation.ts: best-effort mitigation for occasional wrong-language AI explanations — repeat the language directive at the end of the user-facing prompt (in addition to the existing system-prompt instruction), since end-of-prompt instructions tend to be followed more reliably by some providers. Tests: apps/desktop/src/components/__tests__/MergeEditor-ai-sparkle.test.ts, apps/desktop/src/composables/__tests__/useHunkExplanation.test.ts. disabled
# Conflicts: # CHANGELOG.md
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.
Summary
advanceToNextConflictOrFinalize()refreshed repo status but never re-polledrepoOperationState, which is whatRebaseProgressBannerreads for its Continue button / conflict hint. The conflict was actually resolved and staged; the banner just never found out. Now callsrefreshRepoState()alongsiderepoRefresh(), matching the sibling handlers that already did this correctly.AiSparklecomponent (already used in 13+ places) with itsanimatedprop bound to the in-flight state for that hunk.Test plan
AiSparkleswap and the prompt-language directive: 7/7 passpnpm dev:web: trigger a rebase conflict, click "Résoudre auto", confirm the banner/Continue button updates immediately (no existing test harness coversApp.vuedirectly — recommend a manual pass here)Addresses #133