VSCode pushed and then very quickly reverted a change which was marking every single commit you made as being co-authored by Copilot even if it had absolutely nothing to do with it.
==========Support The Channel==========
► Patreon: https://brodierobertson.xyz/patreon
► Paypal: https://brodierobertson.xyz/paypal
► Liberapay: https://brodierobertson.xyz/liberapay
► Amazon USA: https://brodierobertson.xyz/amazonusa
==========Resources==========
VSCode PR: https://github.com/microsoft/vscode/pull/310226
VSCode PR Revert: https://github.com/microsoft/vscode/pull/313931
HackerNews: https://news.ycombinator.com/item?id=47989883
VSCode Explainer: https://github.com/microsoft/vscode/issues/314311
=========Video Platforms==========
🎥 React: https://www.youtube.com/@BrodieRobertsonReacts
🎥 Podcast: https://techovertea.xyz/youtube
🎮 Gaming: https://brodierobertson.xyz/gaming
==========Social Media==========
🎤 Discord: https://brodierobertson.xyz/discord
🐦 Twitter: https://brodierobertson.xyz/twitter
🌐 Mastodon: https://brodierobertson.xyz/mastodon
🖥️ GitHub: https://brodierobertson.xyz/github
==========Credits==========
🎨 Channel Art:
Profile Picture:
https://www.instagram.com/supercozman_draws/
#VSCode #AI #OpenSource #FOSS #Programmer #Developer
🎵 Ending music
Track: Debris & Jonth - Game Time [NCS Release]
Music provided by NoCopyrightSounds.
Watch: https://www.youtube.com/watch?v=yDTvvOTie0w
Free Download / Stream: http://ncs.io/GameTime
DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.
Оглавление (4 сегментов)
Segment 1 (00:00 - 05:00)
If you're just simply using this code, you're writing out your code by hand. You're using artificial intelligence. That's not me saying this. This is what Microsoft themselves were saying in a merged and now reverted feature change, which I don't know why it was merged to begin with, enabling AI co-author by default. This PR is opened by a Microsoft product manager. Is that important information? Who knows? But it is kind of funny. If you're using the git tooling built into VS Code, not the terminal that's there and then writing out the commands by hand, but the guey integration, this change would occur. This PR changes the git extensions git. add AI co-author setting so that AI co-author trailers are enabled by default, making the default behavior automatically add a co-authored by trailer when AI generated code contributions are detected. Now, in and of itself, this is not a bad change. People usually want to have a co-authored by co-pilot, co-authored by Claude, co-authored by whatever AI model you're using. If you're actually using an AI model, that is the crux of the problem. This would be a reasonable change if somebody had gone and tested it. Please revert until it actually works. I have chat. disable AI features to true and co-authored by co-pilot still gets inserted into most commits. This is absolutely unacceptable and this is not a one-off problem. This seems to be what was happening to pretty much everyone. Any explanation for the choice to make this default? Now I know why random commits of mine was suddenly being co-authored by Copilot despite not using C-pilot with that commit. I just don't get the point of this at all. I am not using co-pilot. I have chat to disable AI features and co-authored by Copilot still gets inserted into commits. So, one of two things were happening here. One, either somebody at Microsoft wanted to sneak a little co-pilot ad into every commit you're making and make it seem like you're using C-pilot for this. All of this amazing code is being written by co-pilot. Is that possible? Yes, absolutely. I just don't see that as a likely explanation. The more likely one is somebody thought this feature worked. A lot of people suggesting, hey, it's a good idea to have co-authored by the AI you're using and then nobody actually tested the functionality before enabling it by default. I will give them the benefit of the doubt that this was just a complete scrub. And the reason I do that is following a lot of this feedback, backlash, they did go and revert it. In this thread, a separate but related issue was also brought up. Cursor handles this differently. Cursor is a very popular AI based editor. There's no automatic attribution because the workflow assumes you're reviewing every diff before commit. the author is whoever ran a git commit full stop. That's not necessarily true and you will see attribution for a commit amongst multiple actual people. This is quite common in the kernel and various other projects. The Microsoft approach feels off because it conflates I use the editor with I co-authored this which devalues the signal that co-authored by is supposed to carry. The deeper issue, if every commit made in an ID with AI features carries a co-authored by tag, the metadata becomes noise. We already have a hard time tracking real authorship in PR heavy workflows. Auto tagging makes it worse. I do agree that this is a valid concern. Then it raises the issue of if you're going to tag AI use, which I do think should be done, you can't just say, "Oh, it's on co-pilot. " Because copilot updates over the years. So are you going to say, "Oh, it's done on this specific version with this specific model. What if it's a different tool with a different model? What about the prompt? " Because the prompt is incredibly important. Putting the full prompt in every single commit. Putting your entire log with the AI, that's just not really viable. But should it be accessible somewhere? Should you link to it? How do you include this information in the PR? Do you include it at all? or is that a bunch of excess unneeded information? Whilst the feature was obviously very broken, you know, judging by the fact that it was co-authoring on everything, a lot of people in the thread were fundamentally misunderstanding what the issue was. They thought the intention here was for it to co-author on everything and not just things where AI
Segment 2 (05:00 - 10:00)
was actually used. As does tend to happen with a lot of these PR discussions. This is a big part of the reason why I enjoy discussing them. I like to see the mentality that people have when they're interacting with these projects. In this case, because VS Code is a Microsoft product, a lot of people are very primed to hate Microsoft, primed to hate GitHub, and frankly, anything else Microsoft is involved. Even if Microsoft is involved in something you like, if anything slightly steps out of line, people immediately jump on it. And you know what? As a Linux user, I completely understand why Microsoft has done a lot of things which a lot of people frankly should not like them for. However, I do think it's important to focus on what is actually happening here. What is the change actually doing? Is this a bug or is this the intended behavior it has? Besides getting the feature reverted, I will say there is one positive thing that did come out of this thread and that is people talking about alternatives to VS Code. There is a lot of them. There's lots of code editors out there. Frankly, you could argue there are too many out there. For example, there are things like Zed. Now Zed is obviously a very AI focused editor, but you don't have to use all of the AI tooling. You can just use it as a regular text editor. There are things like Fresh. This is a powerful terminal text editor and IDE. Obviously, something like a Vim with a bunch of plugins is going to do very similar things, but this is a batteries included type of thing. There is Doom Emacs. This is a bunch of plugins to install on top of Emacs and of course Spacemax. Sadly, nobody mentioned things like Neoim with plugins, but you know, that does exist as well. And I'm sure there are still, you know, Atom users out there, sublime text users out there who are going to tell me how great that is. This PR was published about three weeks ago, and there was certainly some initial feedback, but you'll notice most of the comments are from about two or so days ago. This is because it was published over on Hacker News where it got quite a bit of attention. Also, the dev who reverted the change did leave a comment here. We'll get back to that in just a moment though because if we scroll all the way down to the bottom, we have this. Thank you for all your feedback, professional or other. A lot of it certainly was not professional. Sorry about the regression. I will work on fixing this in 1. 119. There is a number of issues with the co-author functionality. It should have never been enabled when disable AI features is on. Absolutely. It should not add attribution to changes that were not done by AI. Absolutely. We need to make sure it receives more test coverage before changing to the default. If you have additional constructive feedback, please ping me directly or open an issue. Very shortly after that, uh, it was locked as spam because, well, you're not going to get constructive feedback on this issue. This resulted in a follow-up PR change default for git. addai co-author to off. There's also another one as I've been recording this, so I'll go check that one out in just a moment. also making sure change tracking is disabled when AI features are disabled. Another thing which it probably also shouldn't have been doing but was not a major focus of that previous discussion. to this one. Someone replied, "I would not mind defaulting it to on if it actually works, not only for copilot, reliable listing the actual model version used, differentiating between agent creation and input completion, being able to reference a session log, helping with logging the evidence needed to get indemnification protection and commit message preview for humans. For some reason, this got a bunch of down votes. This is a totally reasonable thing. If you're using AI, it just automatically adds the trailer and then provides you a bunch of information to, you know, check the commit message. If you want to remove it, you can remove it. This all feels like good changes. Agreed. Model attribution is really needed here. As well as making sure it doesn't catch nonI changes. That honestly is the major one. Yes, you could get the models wrong. Yes, that would be slightly annoying. but it should never tag things where AI was not used at all. Much like the first thread, this was also used as basically a forum and yeah, kind of got derailed incredibly quickly. So, if you want to read that for yourself, feel free to do so. I don't think there was anything super productive in there. Instead, let's jump over to the comment on hacker news. I am the person who approved this PR, not wrote it, but got it merged and also reverted as well and would like to acknowledge and apologize for the mistake of turning this feature
Segment 3 (10:00 - 15:00)
on by default without sufficient upfront validation. There was no ill intent by an evil corporation, but rather a desire to support functionality that some customers expect of VS Code with regards to AI generated code. As folks mentioned here, many similar tools do this as well. Obviously, it should not be on when disable AI features is on and it should not be reporting changes that were not done by AI. I'll work on fixing those and meanwhile revert to default in 1. 119 update. I am open to any constructive comments and suggestions. Please feel free to reach me directly my alias at microsoft. com or open an issue on GitHub. Happy to answer anything here as well. mostly what he said over on the GitHub as well, but this is a much better forum to have general discussions. And here is the very recent follow-up issue update on co-authored by co-pilot in commit messages. In 1. 110, we added a setting to add co-pilot as co-author in commit messages by appending co-authored by co-pilot co-pilot@gub. com. The setting git. addai Add AI co-author has three different values. Off, no attribution no matter whether copilot assisted or not with the code in this commit. Chat and agent add attribution if the code contains code that was generated using the chat features and all. Add attribution if the commit contains any AI generated code chat inline completions and NES. NES in this context is next edit suggestions. Basically, it is AI powered super completion. This feature defaulted off and frankly most people probably didn't know it existed so they probably didn't go and enable it anyway. In 1. 117 the public roll out started on the 22nd of April we changed the setting default to all. There was a bug in the code that was not found in testing that attributed non-copilot code completions to co-pilot. So basically if you use the regular code completions that were not AI generated it still thought it was AI. So if you did like, oh, you're typing out str and that's supposed to be string. That's basic lookup tables. That's not AI powered. And basically every single person that is using VS Code is probably doing the basic lookup table code completion. I know some people exist that don't use that stuff. Um, but most do. So pretty much every commit was being detected as AI. Because of the bug, we changed the setting value to chat and agent in 1. 118. Public rollout started on the 29th of April. You can disable the functionality by explicitly turning the feature off in user settings. Git. add AI co-author set to off having it set to chat and agent. Again, this means if it was generated using the chat feature. So, if you either never use that or you have the chat feature disabled entirely, then that is going to work correctly. It seems like they're still discussing the idea of enabling it by default, but again, they do need to iron out the issues and make sure only correctly identified code is having that trailer. But someone did raise a good issue in the first place. Why are you treating Copilot as special without adding UI for adding human authors? So, if you want to have multiple human authors on a commit, that's something they don't actually have the functionality in the UI to currently do. That is something they are considering doing as well. and also makes sense if you're using multiple AI models. It should be absolutely no secret, I am no fan of Microsoft. But with how quickly this was reverted, it does seem like it was honestly just a badly tested mistake. And considering that they're using AI in their development pipeline, it's entirely possible that this was some AI generated nonsense to begin with that nobody did proper testing on. They didn't develop a test suite for. And you know, how many times have you seen Microsoft push out a bad feature and then push it through even though everybody knows it's bad, everyone acknowledges it's bad, and they just don't care. Considering that they're willing to reflect on the fact that this was broken, I'll take their word for it and it's been disabled. So, all's well that ends well, I guess. Anyway, let me know your thoughts down below. If you use VS Code, were you hit by this problem? Do you use one of the VS Code forks that disables a bunch of different features, or were you already using AI and didn't realize there was a problem here? I would love to know. So, if you like the video, go like the video. If you really like the video and you want to become one of these amazing people over here, check out the Patreon, subscribe daily barrap linked in the description down below. That's going to be it for me and start writing code.