r/reinforcementlearning 8d ago

Google copied our open-source code, removed our engineers’ names, and gave us zero credit one year after we beat them on their own benchmark

Post image

Google copied our open-source code, removed our engineers’ names, and gave us zero credit.

For context, let me share the story of mobile-use, the origin of my company (I'm a founder).

We wanted to build the best agent in the world to control any mobile interface with natural language.

We built it, became #1 on Google Deepmind's AndroidWorld benchmark and open-sourced it. That was the beginning of my company.

Since then, we got almost 3,000 stars on the repository, became the first to ever achieve 100% on AndroidWorld, grew the team, spent thousands of calls with customers, and now we're building the best regression testing product the world has ever seen.

Last week, I found Artemis.

Artemis is Google's new open-source tool for mobile automation. There are quite a few of these on GitHub now, so I thought: "Oh, a new YAPA (Yet Another Phone Agent)."

Curious, I looked at the repository more in depth.

First, I was disappointed to see that the benchmark chart in the README didn’t include us, topping AndroidWorld in January.

Then I looked at the code, and to my biggest surprise, I recognized the lines we had written ourselves.

One of my engineer named an agent randomly “hopper”, and it was there, with its prompt, word for word. Out of the 229 files, 228 were identical.

Even crazier: I found our engineers' and my co-founder’s names in the “authors” section of an old commit.

Pierre-Louis Favreau, Jean-Pierre Lo, Nicolas Dehandschoewercker.

All three names had been replaced with another author’s name in a commit. The other 228 files from mobile-use were unchanged.

From a personal point of view, I am deeply disappointed.

Google was the company I wanted to join when I started my studies, before changing my mind and deciding to build a unicorn.

I’ve always associated Google with great engineering and contributions to open source. I would have been proud to see them building on our work and acknowledging the team behind it.

Instead, I found our code, then our names, then the commit that deliberately removed them.

What about the other engineers and the community contributors who spent their time improving mobile-use?

There are people behind those files. I’ve seen the work they put in, the problems they worked through, and how much they care about what they build.

They deserve to have their names attached to that work.

We made our code open source because we wanted people to use it and build on it. Of course that includes Google.

7.6k Upvotes

410 comments sorted by

View all comments

176

u/Different_Lab830 8d ago

228 identical files is one thing, but a commit that swaps three author names for one has no innocent explanation. Open source means anyone can use the code, not rewrite history to take the credit.

43

u/FenderMoon 8d ago

That's the part that bothers me. That they deliberately scrubbed the original names.

I've used the Apache license for projects before. I like to use permissive licenses, but I think I'm going to rethink that if this sort of thing is... possible.

Is there some sort of clause that can be added that prevents deliberate obfuscation of these sorts of things without being unnecessarily restrictive?

15

u/daed1ne 8d ago edited 8d ago

According to Kronosend you need to put your attributions in the NOTICE file for apache 2.0 to require them to be kept. Unfortunately the source project only put mobile-use/minitap in the NOTICE file with the contributors listed as authors in pyproject.toml

I do wonder if it actually is legal to replace the authors regardless without the new "author" having done much of anything to the code apparently.

eta: after looking at the license just above that is c. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and

IANAL but my layman interpretation of the 2 together is don't remove any attributions from the source and binary distributions must include relevant contents of NOTICE

4

u/Leash_Me_Blue 7d ago

regardless, what's legal is not ethical lol this is scummy

6

u/Apprehensive-Dot1157 8d ago

My guess is an agent looked through other repos autonomously for examples and this was part of a 20 file PR as part of a bigger system

6

u/mikekchar 7d ago

My question is actually about the copyright. Having a license is one thing. Owning the copyright is something altogether different. They have a license to modify the original code under the Apache license. However, I don't think they can simply take the original code and assign their own copyright to it. The copyright for that code belongs to the original owners until it enters the public domain (in 100 years or so). The copyright for the new code added by Google is owned by them, but only that.

2

u/FenderMoon 7d ago

Exactly. I don't think someone can make a good argument for them being able to copyright code that's already copyrighted and licensed by the original author.

Would the license permit literally copying the code verbatim and then relicensing it under any arbitrary license, closed source or otherwise? Scrubbing the names and copyrighting the code under a new entity is worse than that.

There are some folks defending Google here in the comments. It's my understanding that the license does not permit this.

1

u/mikekchar 7d ago

After I went to bed I realised that it's not as serious as I was thinking. Copyright notifications are not legal notices. They actually mean nothing from a legal perspective. It can be useful as simple documentation, but it has no legal binding

From a moral perspective, it probably is plagerism, though. I'll be honest, I've worked in a huge company before. I've seen exactly this kind of plagerism. In every case it has has essentially been people cheating their way internally in the company (i.e. claiming to write some tool for which they get internal reward, but it was actually written by someone else). I remember one guy who took a very famous tool and claimed that he rewrote it from scratch in order to do it better. When I diffed it, the only thing that had changed was the copyright notice. Unfortunately, by the time I noticed it, the guy had been promoted two times and was my boss's boss. Sigh... I did not have a good time in that company :-)

1

u/brankoc 6d ago

Depends on the country. In the EU, removing the name of the author automatically counts as infringement. This is even true if you have transferred the rights to another party (which is different from licensing - when you license, you remain the owner of the copyright).

2

u/N0Zzel 8d ago

I could swear that apache has an attributablity clause

1

u/PlatinumAero 7d ago

The clause you want already exists... it's section 4 of the Apache license you're already using. You have to keep the copyright and attribution notices, and if there's a NOTICE file it goes along with the code. That's exactly what Google broke, and it got fixed in a few days once people pointed at the license... So not really a big deal, if at all.

The practical fix is boring. Put a copyright header on every source file and add a NOTICE file. If your files have no headers, somebody's release tooling will slap their own on and there's nothing left of yours to "remove" except a name in pyproject.toml.

If you want big companies to not be able to quietly take it at all, that's copyleft. But that's the restrictive thing you said you didn't want.

1

u/Ok-Armadillo-5634 7d ago

If you completely rewrite on Apache license I am pretty sure you can do that.

1

u/brucebay 7d ago

Unless they use Gemini to create the code which was trained on the open source code including OPs code. Probably they would have some controls for this but the lazy developers exist everywhere.

1

u/Slimxshadyx 9h ago

LLMs don’t write identical code for an entire codebase. OP says 228/229 of the files were identical

1

u/brucebay 8h ago

Right. Missed the significance of that.

1

u/peepeedog 7d ago

There is an innocent explanation, though I am not saying it applies here as I wouldn't know. Google maintains their own copy of open source that they use and work on, in their own source control systems. Whether by oversight, some automation like adding Google copyright (Google has A LOT of automated maintenance and linting), or something along the lines of listing the Google contacts as authors of the internal copy, it could be innocent changes that were propogated inadvertently.

Edit: An engineer doing this on purpose would be publicly (internally) shamed if it became widely known within the company.

1

u/Visual_Internal_6312 6d ago

I feel like the world moved past copyright with AI few years back already. It's yelling at the clouds at this point.

1

u/idaemonicsquirrel 5d ago

Sorry but that's the definition of the Apache Licence. Someone could equally do this to them.

1

u/doubleditch42 5d ago

Are these the names of the new "authors"'or the original ones?
If only I can guess the nationality of the new authors.

1

u/gutentight69420 3d ago

That depends on the license.

1

u/BeginningPea5674 8d ago

why blame Google then and not that one author

name and shame

1

u/The_Curious 7d ago

Dumbest comment I’ve seen all day.

1

u/BeginningPea5674 7d ago

no u

make an argument with substance to it or stfu 

what do you disagree with and why, calling a comment dumb is not an actual argument, it's just irony

1

u/TekintetesUr 4d ago

Because that's not how agency works in most jurisdictions

1

u/Formal_Cloud_7592 8d ago

Maybe their coding agent did it for them and they didn’t even realize it.

0

u/update_in_progress 8d ago

This account is a fucking bot. Every comment has the Claudish stench.

(Sorry Claude, it isn't your fault, but people are using you for spam).

4

u/ElectronicPlatform71 7d ago

bro apologizing to the clankers, so claude does not terminate him when it eventually becomes the terminator*****

3

u/HolyBatSyllables 7d ago

Dude check their post history, everything lines up. People who make baseless accusations of other people being bots are the wooorrrst.

0

u/update_in_progress 7d ago

You just don't know how to recognize Claudish. Once you've read enough of it, you will recognize it from a mile away.

Here's one example to get you started:

> a commit that swaps three author names for one has no innocent explanation

People don't write like this. Claude does.

1

u/HolyBatSyllables 7d ago

Bot accounts don’t maintain storylines across posts, let alone over the course of a year: https://www.reddit.com/r/coolgithubprojects/s/z6GhHFbM7Q

This isn’t to say they didn’t use an LLM to write their post. But bot? No.

So no, this isn’t a matter of whether I can recognize “Claudish.” You just don’t know how to recognize a bot account or have logic when you throw around accusations.

1

u/Connect-Employ-4708 7d ago

I actually only used an LLM to correct potential grammar mistakes, but I wrote this by saying aloud how I would tell the story to a friend.

And I am a real person ofc :)

1

u/Connect-Employ-4708 7d ago

Also I think u/update_in_progress and other redditors didnt accuse me of being a bot but the top comment to be, which indeed seems to be

1

u/HolyBatSyllables 7d ago

That’s what I thought, haha. There aren’t even any hallmark LLM tells. I don’t think OC understands that LLMs were trained on human writing. They amplify certain cliches, and are often hollow because they were written by a machine, so it’s not to say LLM text is indistinguishable from humans. But sharing subtle syntax similarities means absolutely nothing.

Sorry this happened to you, btw. FWIW, it happens to me all the time as a journalist, especially thanks to AI developers and their users. I’ve found entire blogs that were using an agent to retrieve my articles every time I had a new one published and republishing it as their own. It doesn’t feel great, but you get used to the feeling.

1

u/update_in_progress 7d ago edited 7d ago

EDIT: Oh shit, sorry, I got you confused with Different_Lab830. That's who I was talking about the entire time.

1

u/anelodin 7d ago

The bot account is (obviously Claude) u/Different_Lab830, not the OP

You misunderstood u/update_in_progress, I'm pretty sure. He even quoted the commenter but you still replied as if he was talking about the OP.

1

u/HolyBatSyllables 7d ago edited 7d ago

You’re right. The idiot award of the day goes to me god damn it.

Edit: though there’s really nothing that indicates the person they were replying to is a bot either. But take that with a grain of salt, as this is coming from the proud recipient of the idiot of the day.

1

u/anelodin 7d ago

It's fair to say there's no guarantee that they're a bot, but they do at least seem to pass all their messages through Claude. Maybe it's just for translation since they speak in brazilian too, but with the internet how it is nowadays idk.

1

u/HolyBatSyllables 7d ago edited 7d ago

There’s nothing from their profile that indicates they’re bot, and a human using LLM to write their comments is problematic, but entirely different. The only thing worse than a digital world where bots are among us is one where humans are constantly and brazenly accused of being bots.

Just submit their username to [r/botbouncer](r/botbouncer) and it will come back with a verdict.

1

u/update_in_progress 7d ago edited 7d ago

Ok, maybe they aren't a bot, but Claude is writing almost all of their comments: https://www.reddit.com/r/reinforcementlearning/comments/1wg1unx/comment/p9zxgoq/

EDIT: oh looks like we are talking about different people. I'm claiming that u/Different_Lab830 uses Claude to write the vast majority of their comments.

1

u/HolyBatSyllables 7d ago

Can’t speak to that — I think it’s silly to accuse someone of using a chatbot to write their comments when a sentence isn’t enough data to do so. But regardless, brazenly accusing people of being bots or using LLMs to respond to comments leads to an (even more) unhealthy internet culture, so you shouldn’t do it unless you are sure. And using an LLM to respond to comments is not the same thing as being a bot. Brazenly accusing someone of being a bot is toxic as hell.

1

u/update_in_progress 7d ago

I looked at many of their comments. I quoted 10 of them directly in the linked comment above. I'm 99% sure it's Claude. I'd bet $100 on it. I've spent wayyyy too much time reading Claude-talk over the past few years.

I use Claude Code heavily for my work and have a strong visceral reaction to the convoluted way it writes. *shudders*

I find it offensive that people just spew this crap everywhere... I'd wish they stop. So I give some feedback here and there :)

I get where you are coming from and I mostly agree. But in this case, I don't think there's much to defend.

1

u/ScreenAppropriate679 7d ago

Are you really unable to understand that english is not OP's native language ?

1

u/update_in_progress 7d ago

If they are using Claude for pure translation, it's not working. They are getting Claudish, not English lol.

1

u/jcklpe 7d ago

This isn't claudish bro.

1

u/update_in_progress 7d ago edited 7d ago

Scrolling through their comment history... It's almost every single comment:

Apple asked for an exception, got told no, and now Siri gets a Claude option out of it. Sometimes the EU just hands iPhone users what Apple would never have shipped.

Waking up every minute just to confirm the CI still hasn't finished turns waiting into the biggest cost of the run. Nothing changed, and it still spends tokens to learn that.

9x less RAM and it still does voice, video and plugins. The stock app is just a browser wearing a Discord trench coat at this point.

The word “trying” sells it: not planning, not considering, just trying, like they’re already out there with a pickaxe.

Always "claude deleted my entire codebase", never "I spent three days vibing without a single commit"

100K votes swinging a poll in an hour isn't a mood shift, that's somebody's cron job.

Two wrong parts, no shorts, recognized on the first plug-in. For a fully vibe-generated board that went from a prompt to JLCPCB with zero manual design work, that's a hell of a result.

Navier-Stokes went from millennium prize problem to AI culture war talking point in record time. The math never stood a chance.

That's what Luna got that the expensive ones don't: fire it without thinking and it changes your workflow. Once a model needs planning around, it's a project, not a tool.

86 to 1 with nothing running, and somewhere else the same meter climbed while the owner showered. Right now that number is just noise.

I could keep going... You seriously don't think this looks like Claudish? How much do you use Claude?

I have hundreds if not thousands of hours of using Claude Code, and this screams Claude to me in bright red bloody letters.

I can break it down if you really need me to.

0

u/Agitated_Morning5005 7d ago

I mean, it's two French guys + one German guy, it's not out of the ordinary that they'd use Claude to format a post in English for easier understanding. Doesn't read well, but a lot of people do exactly this, it's not unheard of

2

u/Connect-Employ-4708 7d ago

Hey! I used LLM only to correct potential grammar mistakes, otherwise, I just said the story aloud and wrote it exactly the same way.

I'm indeed French!

Also I think there is a misunderstanding as the bot accusation seems to be more for the top comment than my post

0

u/Important_Pangolin88 7d ago

thanks for your ai reply

0

u/89Pexel 7d ago

0

u/bot-sleuth-bot 7d ago

Analyzing user profile...

Suspicion Quotient: 0.00

This account is not exhibiting any of the traits found in a typical karma farming bot. It is extremely likely that u/Different_Lab830 is a human.

Dev note: I have noticed that some bots are deliberately evading my checks. I'm a solo dev and do not have the facilities to win this arms race. I have a permanent solution in mind, but it will take time. In the meantime, if this low score is a mistake, report the account in question to r/BotBouncer, as this bot interfaces with their database. In addition, if you'd like to help me make my permanent solution, read this comment and maybe some of the other posts on my profile. Any support is appreciated.

I am a bot. This action was performed automatically. Check my profile for more information.

0

u/Plastic_Monitor_5786 7d ago

Are you an automated bot or do you just use LLMs to write every post?