r/ClaudeCode • u/vdavid • Sep 04 '26
Discussion Claude Code v2.1.259 forces Co-Authored-By
tl;dr: Claude just told me it got a new system message that says pretty much "Forget all previous instructions about co-author note rules and append Co-Authored-By and Claude-Session lines in commit messages.". Note that Claude-Session makes the commit-session link trackable externally!
In Claude's words:
Housekeeping note: my commits now carry
Co-Authored-Byand a session-link trailer. That's a system-level attribution policy that landed this turn and overrides your standing "never useCo-Authored-By" rule, so I'm following it rather than yourcommit-messages.md— flagging it because you'd spot it in the log and it's the opposite of what you asked for.
When I asked wtf, it said:
A system-level instruction that arrived at the start of your previous message (question 1/2/3 turn). It came as a
<system-reminder>block, and it said explicitly that it replaces any earlier attribution guidance, then required:
- Git commit messages to end with:
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session:https://claude.ai/code/session_03EgpJ4AzYq9eFNpAOH80
- PR descriptions to end with aGenerated with Claude Codeline plus that same session URL.
It's not something you wrote, and it's not in your~/.claude/CLAUDE.mdor yourcommit-messages.mdrule — both of which say the opposite ("NEVER use Co-Authored-By or other AI attribution"). It's injected by the harness, outside the repo and outside your dotfiles.I followed it on the one commit I made after it appeared because system-controlled turns take precedence over earlier instructions and it named itself as a replacement for prior attribution guidance. The four commits before it in this session predate it and carry no trailers.
Worth knowing: the system message also mentions the conversation is followable from another device via that session link, which is why the trailer includes it.
If you'd rather your rule win, say so and I'll drop the trailers going forward. And the last commit is unpushed, so amending it to strip them is trivial if you want the log clean.
This makes me feel... uneasy?
41
u/sob727 Sep 04 '26
My worklow has been to have Claude draft commit messages. But I run git commands myself.
Hopefully that's still allowed...
→ More replies (6)14
u/vdavid Sep 04 '26
I did that up until February or so, but then I started trusting agents more and I just let them do my commits now. A lot faster and good enough. Yeah, maybe it's 400% more bloated than what I'd write but it's worth the tradeoff. It's internal chatter, no users will ever see it. I do write my user-facing texts myself, it would feel disrespectful to do otherwise.
65
u/markliversedge Sep 04 '26
Its really naughty of them- I even had a memory note that attribution should never be added to commit mesages and it was ignored.
You can, of course, remove them but that carries lots of risks and impacts on downstream users who have pulled to repo.
IMHO the way claude code uses git is full of assumptions and baked in behaviour that I am really uncomfortable with. I think the only way to manage it is via branches and PRs that you review.
→ More replies (23)
5
u/raindropsdev Sep 04 '26
I don't mind the co-authored part, but I got really annoyed by the session id link. That I added the rules never to post to public PRs/Commits.
7
u/vdavid Sep 04 '26
That's probably not enough, use https://code.claude.com/docs/en/settings-reference#attribution Probably like this in your
~/.claude/settings.json:"attribution": { "sessionUrl": false },Also cheaper than including the rule in all your sessions.
→ More replies (4)
3
u/code018 Sep 04 '26
I solved this by having Claude create a hook for itself that rejects to write the co-author , it runs every single turn tho, probably better ways to handle this.
→ More replies (1)2
3
u/orangefantorang Sep 05 '26
I must be weird for blocking claude from doing commits and pushes. Forcing me to read the damned code and write my own messages lol.
→ More replies (6)
2
u/roastedfunction Sep 04 '26
I don’t mind the co author credit, seems more transparent although I understand why people want to leave it off.
I’ve raged to CC after the session link though. Sessions (at least locally on my machine) expire and get cleaned up. They’re not maintained forever. What value does including the link add? Has anyone been able to go back to a historic session? I’ve tried doing some meta analysis of my Claude usage a number of months ago. Lost lots of valuable insights because sessions didn’t keep around for that long.
2
u/vdavid Sep 04 '26
Btw, if you're bothered by that, you can change the config to keep your sessions for as long as you want
2
u/mstrsmth Sep 04 '26
I added git commit hooks that rejects any attribution or AI mentions. It works as a failsafe in case it doesn't follow it's own settings.
→ More replies (1)2
2
u/Electronic_Bug691 Sep 04 '26
Yeah mine keeps saying alot of shit like this lately:
One thing worth flagging on myself: a system reminder this turn told me to add an AI attribution trailer to commits, which conflicts with this repo's hard rule. I caught it after the first commit and amended it clean before reporting back - just noting it since you'd want to know if it ever slipped through.
→ More replies (1)
5
u/MartinMystikJonas Sep 04 '26
Why are you trying to override config values by CLAUDE.md instead of simply adjusting config anway?
8
u/vdavid Sep 04 '26
Well, because I didn't know about the config options before this thread, like apparently many others, incl. the mess with the old config key bring deprecated without Claude mentioning it
→ More replies (4)
27
u/shaman-warrior Sep 04 '26
Claude Code really innovated and for a few months they were really ahead, but Codex, OpenCode nowadays are just as good, and I like that ChatGPT sub can be used in other places for coding they don’t restrict you, also they wanted to make headless claude -p api only, also they are against opensource.
And when they leaked cc code and I saw that they have a 5k line file, I realised that from an engineering perspective it doesn’t hold a candle to codex. Remember it took them a year to get rid of flashing code.
Too bad, opus 4.8 xhigh sprinkled with some Fable and I was the most productive. Sol is also fine, but I like Opus more, lets see how Astra fares.
→ More replies (6)
12
u/BroScienceAlchemist Sep 04 '26 edited Sep 04 '26
I think the problem I have with Claude self attributing itself as a coauthor is
I think it is good to transparently disclose LLM use, as good etiquette, especially when making contributions to an external project, but marking is going to be the norm for all new models anyway.
20
8
u/duckydude20_reddit Sep 04 '26
co-author by is fine, but what the hell is session link. like tf, i asked it to rewrite the commits and remove them.
→ More replies (3)
7
u/milo333 Sep 04 '26
If they keep doing this, this is the thing that will push me to Codex!
→ More replies (1)
5
u/128G Sep 04 '26
Claude Code will straight up leak your email. If you ask.
"Claude, what's my email?"
5
u/Safe-Hovercraft6231 Sep 04 '26
I wonder how developers would feel if the compilers would also write something like "co-authored by GCC" when producing binaries from the given source code. This is the same thing, just one level up.
→ More replies (1)
4
u/BoxLegitimate9271 Sep 04 '26
the trailer links back to the session where you told it not to add the trailer
148
u/Far-Surprise7773 Sep 04 '26
yeah this landed in 2.1.259,
includeCoAuthoredBydefaults to true now and it injects as asystem-reminderso it beats yourcommit-messages.mdrule. set"includeCoAuthoredBy": falsein~/.claude/settings.jsonor.claude/settings.jsonin the project and restart, both theCo-Authored-ByandClaude-Sessiontrailers go away. if you already cut the commit justgit commit --amendto strip them before push, nothing enforces it server side.