Comment by dmitriv
15 hours ago
I am the person who approved this PR and would like to acknowledge and apologize for the mistake of turning this feature on by default without sufficient upfront validation.
There was no ill intent by evil corporation, but rather a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code. As folks mentioned here - many similar tools do this as well.
Obviously, it should not be on when disableAIFeatures is on and it should not be reporting changes that were not done by AI. I'll work on fixing those and meanwhile revert default to off in 1.119 update.
I am open to any (constructive) comments/suggestions - please feel free to reach me directly (my alias @microsoft.com) or open an issue on GitHub. Happy to answer anything here as well.
Changing the default behavior for all of your users with no notification is pretty unforgivable. Even if this feature worked correctly, it obviously doesn’t, this should at minimum be a prompt after upgrade to let the user confirm that this is what they want. But honestly should be opt in for those that want it.
To have it silently just start adding marketing copy to git commit messages is pretty bad. To have that added text not be visible to the user in the UI so they can remove it before commit is just much worse.
This kind of thing being released speaks to a greater disfunction over there. Not a good look at all and I am not a Microsoft or AI hater. But my commit messages are not where you move fast and break things
Well, the good news is commit messages are some of the most visible thing, and there are no silent modifications that are really possible.
The bad news is - where else have this happened in VS Code?
- A happy user of (n)vim
> Well, the good news is commit messages are some of the most visible thing, and there are no silent modifications that are really possible.
The problem is that it's only visible after committing, it doesn't seem to show in the integrated git view when you prepare the commit.
> Changing the default behavior for all of your users with no notification is pretty unforgivable.
I noticed that as soon as you make a bug report/feature request on VSCode's repo, you instantly get someone's OpenClaw agent with an automated pull request that sometimes wants to change defaults in the main codebase
Looks like AI is really trigger-happy with that, with zero understanding or care that there's thousands of users affected and it's not just one individual's settings.json
Also, the hallucinated PR does not necessarily address the original issue whatsoever, just like this PR. It should have functionality to detect AI-authored code, but whoever made the PR skipped actually doing the hard work and just changed a default to always on, exactly the kind of misunderstanding you see with OpenClaw shotgun PRs
And then they apparently posted an alibi "I'm sorry" here. Or maybe it is genuine, but the choice is between incompetence and fake "I'm sorry". Where is QA?
2 replies →
> Changing the default behavior for all of your users with no notification is pretty unforgivable
How else is a poor programmer gonna hit their KPIs and get that promo?
> To have it silently just start adding marketing copy to git commit messages is pretty bad. To have that added text not be visible to the user in the UI so they can remove it before commit is just much worse.
This is one of the problems, but it is not only one. To be better, should be:
1. It should be visible in the UI for entering the commit message, to make it clear what it is doing.
2. It should not add such a thing if the Copilot is disabled. (It is mentioned by dmitriv and would hopefully be fixed soon enough)
I do not use Copilot nor any other LLMs nor VS Code, but if the problems are corrected then I think the feature would probably be reasonable.
Agreed on both points. Having it shown before going into the commit would let the developer decide whether they want it. #2 is fixed in my PR.
1 reply →
> Changing the default behavior for all of your users with no notification is pretty unforgivable.
What does that even mean? The git log exists. Do you mean they should shove the entire git log in the face of every user on every update?
Obviously this change was a massive fuckup, but that sentence makes absolutely no sense.
It just means that when changing a global default with such impact the user should be prompted with an option to opt out of the new behavior. Something like “AI assisted changes will now have ‘coauthored by Copilot’ added to the commit message”. If the user clicks “no thanks” it changes their local setting to “off” to opt them out of this new global default.
please no more popups on vscode, im begging you
[dead]
[flagged]
I think the constructive criticism is best directed at whatever process you are following. That process allowed a very visible user facing change in a widely used piece of software. How did this change make it to production without some process catching the impact of this change? Was there really no internal discussion from a code review at least? This seems hard for me to believe. I expect more from Microsoft.
> Was there really no internal discussion from a code review at least? This seems hard for me to believe.
The outlined story feels unfortunately very believable to me.
Teams need to push out the most number of features, and nobody stops even for a second to think about how a feature might affect other flows or other users not in the feature request.
It might have been quickly reviewed to check if the code does what it needs to do (add the coauthor note).
Do you think reviewers will think about unwanted effects, when they need get back to feeding their own poorly thought out and underspec’d features to their LLMs?
Also, who/what group is pushing for this change internally and what is the opinion of the team implementing it? What is the road map and vision for AI in VSCode?
Fair point. We did catch it internally in testing (as we use VS Code for all our work, so some folks did stumble on it), but I think we underestimated the impact and should do a better job at that.
This is honestly the most concerning part of all of this. You're saying you knew that this exact bug was present up front and still decided to release it?
This basically invalidates the entire premise that it was an innocent mistake. It's impossible for me to believe that you actually thought that people wouldn't care about 100% of their commits being attributed to Copilot even when it was never used. Either you're misconstruing what you caught with the testing beforehand or your entire development process is tainted, because there's no way that a non-evil corporation would see this default behavior and think that people would be fine with it. It seems far more likely you just thought you could get away with it.
3 replies →
Thank you. My personal opinion is the idea of weekly releases should be discarded. It's too easy to release broken stuff in non-insiders updates.
I think many people agree here.
It got to production because they wanted it.
> This seems hard for me to believe. I expect more from Microsoft.
Those are some baseless expectations given the entire company's history
> There was no ill intent by evil corporation, but rather a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code.
What metric did Microsoft use to assess that VS Code users "expect" their commits to have unsolicited messages added to them?
> Obviously, it should not be on when disableAIFeatures is on and it should not be reporting changes that were not done by AI.
Did you discuss adding these messages with your legal department?
What is Microsoft's position on adding such authorship statements to the code Microsoft did not author?
Or is Microsoft stating that using LLM assistants makes Microsoft a co-author of the code?
Does Microsoft have copyright claims on the code if LLM assistants are used at any time during its creation?
I would also really like to see answers to these questions. This change explicitly claims that MS co-authored the commit.
I think there’s a few of us who appreciate you being up front. I’d question the intent and why it was a mistake, especially when the commit[0] message reverting said functionality states “widespread criticism” citing this very HN article makes it look seemingly like the revert is due to negative PR opposed to a mistake.
[0]https://github.com/microsoft/vscode/pull/313725/commits/1e70...
Author of that PR doesn't seem to be a Microsoft employee. Keep in mind that anyone on GitHub can create PRs against VSCode.
Author is absolutely from Microsoft
https://github.com/microsoft/vscode/pull/310226
https://github.com/cwebster-99
2 replies →
Even if that would be so, the person who approved it certainly is.
1 reply →
I am reverting it because there are bug in the feature and it obviously does not work as expected. Any feedback is important, HN or not.
My issue with this: if my intention is to never have these "co authored by <tool>" trailers in my commits, this is a sudden breaking change. What's worse, it is not immediately visible to the user. Now I could look like I use a not-company-approved AI. That's absolutely unacceptable, this could cost people their jobs. The "bug" (or "metrics boosting feature", as PMs call it?) that it claims all commits including ones never touched by Copilot are just icing on cake.
Interesting case:
- a project manager vibe-coded the change without thinking it through at all
- the PR was reviewed by an LLM
- an actual engineer gave LGTM without really reviewing the changes, trusting the LLM
Did I get this right?
>a project manager vibe-coded the change without thinking it through at all
The PMs vibe-coding and having no idea what they're doing isn't even the main issue (although it is pretty bad).
The main issue is: how are the actual engineers supposed to "review" the slop? They probably report to the same PM or are at below in the org chart and might be evaluated by them. Not just at MS, but any company.
Such a conflict of interest would be detrimental to quality anywhere. You wouldn't build a bridge like this, nor should you software.
The revert commit appears to have also been done by copilot
The LLM actually points out the problem tho
Maybe the engineer's LLM agent's summary of the GitHub LLM bot's review omitted that warning.
1 reply →
You can't make this shit up.
Don't you understand that the default shouldn't be changed at all in this case? It improves nothing and affects every single user. If an org/project wants this behavior then it can enforce this flag for its contributions. The only valid reason for this change is someone's performance somewhere in Microsoft is dependent on VS Copilot usage metric.
Good feedback, there needs to be a more explicit opt-in into this for teams that want it. FWIW nobody's performance here will improve from having this metric :-)
Why does the commit editor hide the coauthored message? Why not pre-populate the text field and users take or leave it when committing?
I think this is a good point - perhaps there should be some commit-time UI which would let the user make the choice. Thanks for the suggestion!
Co-Authored-By is normally a trailer, and trailers aren’t part of the commit message. It’s likely the commit editor isn’t set up to show trailers. They’re not exactly obscure, but it does seem that they’re relatively unknown.
What do you mean they aren’t part of the commit message? Trailers like (signed off by) are absolutely part of the message. Tools can choose to treat them as special metadata, but they’re part of the commit.
The docs for the function to interpret trailers even says this explicitly: https://git-scm.com/docs/git-interpret-trailers
> Add or parse structured information in commit messages
2 replies →
I just wanted to say, while I think this feature was a bad idea, I sincerely applaud your willingness to post here, knowing you'll get roasted. Seriously brave and commendable.
They pretended to be fronting up but didn’t respond to anything after that. Doesn’t seem very commendable to me.
Someone made a mistake, owned up to it and fixed it. No one is entitled to more than that for a free software.
Anyone with a bit of software experience knows it’s easy to miss things when you are doing your own tasks + context switching + giving reviews. We should exercise kindness and empathy instead of projecting evil intentions.
4 replies →
That's a good point, let's see if they come back and respond. It is the middle of the night in the US so they may be sleeping
7 replies →
Other people aren’t your slaves. You don’t get to demand they respond immediately, and this Reddit-like mindset needs to die. HN is a place where we often can actually get devs from companies responding directly and listening to feedback, and this hostility is looked at by all the other devs from those similar companies and remembered when it’ll be their turn.
Stop making HN a worse place for everyone by being unnecessarily hostile. (and this comment is only mildly directed at you but rather at a bunch of people in this thread)
their comments are dead, probably related to it being a new account
1 reply →
Just for any future mea culpa, I'd recommend not hedging with comments like this one:
> As folks mentioned here - many similar tools do this as well.
It's really doubtful they have the same behavior people are complaining about here: namely including the authored by Copilot statement when it wasn't used (or even enabled).
Anthropic does by default. I had to put “no co-authored by lines in commits, ever” into my global settings.
That’s pretty close to “included when it wasn’t used (or even enabled)” since it’s opt-in by default and you have to explicitly say no. It’s not even clear where to turn it off, I just rely on the AI to figure out not to do it.
Maybe I misunderstand you, how is Claude doing commits where you don't use Claude?
That is a very different case to VS Code which is something you can in fact use without Copilot.
1 reply →
What is the use-case where you expect users would be happy that you modify their commit messages with MS marketing? Do you think it would be ok to edit every commit to append “written with VS Code”?
MS would absolutely do that if they could get away with. Hell, you'd get azure promo code with it
Why are you taking the fall and not the PM who authored the change (and submitted a PR with an uninformative title and no comment) and, I'm assuming, plays a role in managing the project?
Absolute clown car of an operation. Just abdicated responsibility even when it comes to very basic testing. This is bonzi buddy scam software bad, intended or not. Have fun Microsoft, but this is where we part ways.
This isn’t an airport
thank you for doing this, it gave me the push I needed to finally switch to zed. vscode has really been going downhill for a while now. it's sad to watch, it used to be a really nice editor
> I am open to any (constructive) comments/suggestions
Here's one:
I think a senior sysadmin needs to sit you down in their office and have a very serious talk with you about the responsibility that comes with writing code other people run. I am serious. We used to have these talks with everyone who got sudo access. You shouldn't be shipping code if you don't understand the trust that is required of people in your position.
This isn't just about this "feature" being active when AI features are disabled, the way you mis-implemented this has resulted in it modifying the commit message with the user even seeing it! That is malicious behavior, not an innocent little feature "to make life easier".
I've fully switched off of VS Code to Kate now, which is faster and better behaved in most cases anyway. Bye.
To be fair, looks like a PM vibe coded it and this person “just” gave it an approval with no comments after an LLM review.
To be fair, that makes it worse for MS, not better.
This should not be vibe-coded by someone who has absolutely no idea about any of these things.
1 reply →
He makes more money than you and you’re responding to his ai chatbot
Seethe
> There was no ill intent
Only callous disregard for your users
> many similar tools do this as well
But since we have normalised that, it’s okay?
> a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code
Literally who?
I could easily see companies, especially enterprise-level companies, expect code that was generated with AI to have some level of ownership attributed to that AI. Whether a simple "Co-Authored-by Copilot" byline on the commit is the right way to do that is another question though.
Correct, this was the ask.
No one, which is why he refuses to reply further to any of these inquiries.
I don't refuse - what would you like to ask?
1 reply →
they do, at least to some degree, but their comments are dead. You'll see them if you turn on show-dead somewhere
Considering the size (and significance) of the VSCode user base, it feels like someone should be in charge of ensuring that default behavior doesn't change without good reason.
Does anyone (or any team) have ownership of the extensions/git/package.json file?
> There was no ill intent by evil corporation
I simply do not believe you
It’s true. There was no ill intent, just a system of incentives that not only permitted but encouraged it.
That's ok :-)
Thanks for facing this head-on here; mistakes happen.
I think the default to on should also be reconsidered regardless. The assessment (co-authored by AI) may be valid but the assumption the user wants that advertising is exactly that, an assumption, and a dubious one at that.
Thanks. Done here: https://github.com/microsoft/vscode/pull/313931
I appreciate your willingness to come and try and salvage this situation. What I don't understand is why are you the one doing this here and on GH, during the weekend, and not the PM who created the original PR? Surely they have some input.
And another thing is, why was there absolutely no pushback from your part on any of the issues with the original PR, and why it was merged within hours in that state?
> There was no ill intent by evil corporation, but rather a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code. As folks mentioned here - many similar tools do this as well.
Then make it an extension, not a IDE-behaviour thing. Is that so complicated, so difficult?
It would be tricky, yes, since it depends on core editor functionality which is not exposed through the API.
So why did this feature get rushed out without proper testing? Are you claiming that not having this happen automatically for the commits where Copilot actually co-authored them is so urgent that it was necessary?
I'd argue that this was extremely non-urgent and the fact that this got rushed so sloppily is a giant red flag about the priorities of you and your team. You asked about constructive criticism, and yet you're also acting like this is a one-off innocent mistake by only addressing what you've done to roll this back for now and address the immediate issue. I don't buy the premise that we could trust that this was a mistake made in good faith when it's something that you clearly should have known people would be so upset about if you got it wrong.
> There was no ill intent by evil corporation, but rather a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code.
Can you expand on this? Who "expects" their code editor to lie about using Copilot?
The supposedly expected functionality is very obviously that it marks copilot co-authored code as copilot co-authored, not the bug that is being reverted.
Correct.
I appreciate you acknowledging that this was a mistake, but as you surely know from your own experience with other people’s mistakes, some mistakes are so egregious that they cast doubt on the intentions of the people involved even if they are corrected later.
To me, “let’s add false attribution to every commit by default without informing the user” falls squarely into that category. I don’t think I’ve ever worked in an environment where something like that wouldn’t have been red-flagged in three seconds by anyone who took even a casual glance. I’d honestly be embarrassed if such a proposal even made it into a public pull request for my organization, nevermind that pull request getting merged.
If what you described would make it to our PR queue, it would definitely not pass the gates.
The idea was to track AI-only changes and add the trailer when such changes were detected AND the setting was enabled. Obviously, we didn't want to attribute all changes to AI. There is a bug in change detection (which slipped through testing), which led to even non-AI changes being tracked. And thus we have this problem.
The PR linked here wasn't even implementing the feature, it was changing the default for the setting.
> (which slipped through testing)
In another comment you say you caught it in testing and didn't think it needed fixing, which is it?
Changing a global default this way is hugely disrespectful to users.
As a result I’ll be uninstalling vscode from all my machines, I’m tired of disabling things in vscode I didn’t ask for especially in regards to AI.
There are open source tools that clearly respect users more and have a track record of not doing these kinds of stupid things.
Be better.
> There was no ill intent by evil corporation, but rather a desire to support functionality that some customers expect of VS Code w.r.t. AI-generated code. As folks mentioned here - many similar tools do this as well.
Please elaborate on what "similar tools" claim that commits are co-authored by AI when the AI features are all turned off. You're trying to defend the theoretically correct version of this that you didn't make, not the actual version you did make.
> I am open to any (constructive) comments/suggestions
It's hard to take this seriously; you know exactly what you did wrong here and what you should have done instead. Testing that this doesn't happen when Copilot was not used is extremely trivial; if you're not lying about it being unintentional, the fact that it didn't occur to anyone to do it still says more than enough about what the priorities are here. At absolute best, the priorities of you and your team are so fundamentally wrong that it's impossible to trust any of you going forward.
Have it as an add-on said customers can add. Opt-in, not opt-out. No AI without consent.
Switched back to opt-in here: https://github.com/microsoft/vscode/pull/313931
- A qualified sorry for one particular aspect of this
- It wasn't our intention
- Our users asked for it [you'll have to take our word for it]
- Everyone else is doing it anyway
- Statement that I am reasonable and will be co-operative with the community but with conditions
That's a bingo!
First, revert the commit, then apologise.
I did both, didn't I? :-)
At the time of writing it wasn’t reverted, but thank you for replying.
Rule of thumb, such features should always be Opt-In
Nobody wants this shit. There is no timeline where developers want junk inserted into their commit messages.
Just disable everything AI by default bro.
[dead]
Brave man. RIP your inbox.
You're an idiot.
But I'm an idiot every day too, so I can relate. We can only learn from these mistakes, keep it up!