Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@lkk214
Copy link
Contributor

@lkk214 lkk214 commented May 24, 2025

Description

Generate commit messages based on selected changes in the workflow UI.

  • Analyze selected changes in the workflow UI and generate relevant descriptive commit messages
  • Support switching between different LLMs, using config.modelsByRole.chat as the model list source

Screenshots

demo0524

@lkk214 lkk214 requested a review from a team as a code owner May 24, 2025 15:52
@lkk214 lkk214 requested review from sestinj and removed request for a team May 24, 2025 15:52
@cubic-dev-ai
Copy link
Contributor

cubic-dev-ai bot commented May 24, 2025

Your cubic subscription is currently inactive. Please reactivate your subscription to receive AI reviews and use cubic.

@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label May 24, 2025
@lkk214 lkk214 marked this pull request as draft May 24, 2025 15:52
@netlify
Copy link

netlify bot commented May 24, 2025

👷 Deploy request for continuedev pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 0fcc6ca

@sestinj
Copy link
Contributor

sestinj commented May 26, 2025

@lkk214 I like this a lot! If we add this in IntelliJ, do you think we could add it in VS Code as well? It can be bothersome when there isn't feature parity. Otherwise, I like what you did with the UI and whenever you've got the code in a closer spot I'd be happy to review

@nomagicln
Copy link

This is an incredible feature! I've been looking forward to it for quite some time. Will it be supported in VS Code?

@nomagicln
Copy link

@lkk214 I have a small suggestion: would it be possible to provide a method that allows users to specify the submission format?

@lkk214
Copy link
Contributor Author

lkk214 commented May 27, 2025

IntelliJ offers deeper integration, while VS Code has limited flexibility with its built-in SCM.
For VS Code, I’ll implement a simpler version that only generates commit messages.

demo0527

@lkk214 lkk214 marked this pull request as ready for review June 7, 2025 12:36
@dosubot dosubot bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Jun 7, 2025
@lkk214
Copy link
Contributor Author

lkk214 commented Jun 7, 2025

Hi @sestinj, this PR is now ready for review.

@recurseml
Copy link

recurseml bot commented Jun 13, 2025

⚠️ Only 5 files will be analyzed due to processing limits.

signal,
}: GenerateCommitMessageParams): AsyncGenerator<string> {
if (!diff) {
diff = await ide.getDiff(includeUnstaged ?? false);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The function uses an optional chaining that could result in undefined being passed to getDiff(). The IDE interface requires a boolean parameter for getDiff(), but this line allows undefined to be passed when includeUnstaged is undefined. This will cause a runtime type error. The code should ensure a boolean default value is always provided, like in the original code that used params?.includeUnstaged ?? false.


React with 👍 to tell me that this comment was useful, or 👎 if not (and I'll stop posting more comments like this in the future)

*/
object ContinueIcons {

val CONTINUE = icon("/icons/continue.svg")
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The icon path '/icons/continue.svg' references a resource that does not exist in the project structure. Icons must be placed in the src/main/resources directory of the plugin. This will cause IconLoader.getIcon() to return null or throw an exception at runtime, leading to missing icons in the UI. Place the SVG file in the correct resources directory and ensure the path matches the actual file location.

📚 Relevant Docs


React with 👍 to tell me that this comment was useful, or 👎 if not (and I'll stop posting more comments like this in the future)

@recurseml
Copy link

recurseml bot commented Jun 13, 2025

😱 Found 2 issues. Time to roll up your sleeves! 😱

Copy link
Contributor

@sestinj sestinj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything here looks great. I don't have an requests as far as the quality of the code (I appreciate the nice little refactorings, e.g. with the icons), but I did find one small bug when testing locally.

Right now, if you are using a thinking model, the thinking will be included in the commit message. You can reproduce this by using the reasoning option: https://docs.continue.dev/reference#models.

There are two potential options here:

  1. just override the completionOptions to disable thinking (this would be reasonable)
  2. make a small utility method (so it can be reused here) that strips thinking from the output

@github-project-automation github-project-automation bot moved this from Todo to In Progress in Issues and PRs Jun 16, 2025
@lkk214
Copy link
Contributor Author

lkk214 commented Jun 20, 2025

Yes, I do need to consider the thinking model... For handling this, compared to creating a utility method to strip out the thinking for reuse in different places, I prefer disabling thinking directly in the concrete implementation of BaseLLM. If we don't need it, perhaps we shouldn't let it be returned from BaseLLM in the first place—this approach seems more reasonable to me.

sestinj
sestinj previously approved these changes Jun 21, 2025
Copy link
Contributor

@sestinj sestinj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this approach

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Jun 21, 2025
sestinj
sestinj previously approved these changes Jun 30, 2025
lkk214 added 2 commits July 12, 2025 19:39
# Conflicts:
#	extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteSpinnerWidgetFactory.kt
#	extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt
#	extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/InlineEditPanel.kt
@lkk214
Copy link
Contributor Author

lkk214 commented Jul 12, 2025

@sestinj Merge conflicts keep popping up—any ETA on merging this?

@sestinj
Copy link
Contributor

sestinj commented Jul 14, 2025

will merge today if can get the tests to pass

@sestinj
Copy link
Contributor

sestinj commented Jul 31, 2025

it seems like there are legitimate failing tests on this and it's been a while that this PR has been open. While I think it is a great change, I'm quite worried given how long it has taken to merge that it's going to become a large maintenance burden. I'm going to close the PR and would love to start a fresh one perhaps if you think there is a better approach we can take, but since I can't merge with failing tests it doesn't feel like this one has been making enough progress. Open to other ideas as usual!

@sestinj sestinj closed this Jul 31, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in Issues and PRs Jul 31, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Jul 31, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

lgtm This PR has been approved by a maintainer size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants