Skip to content

feat(engine): suppress commit/PR attribution by default, add FL_COMMIT_ATTRIBUTION opt-out#54

Merged
ecukalla merged 2 commits into
mainfrom
feature/ISSUE-50-commit-attribution
May 30, 2026
Merged

feat(engine): suppress commit/PR attribution by default, add FL_COMMIT_ATTRIBUTION opt-out#54
ecukalla merged 2 commits into
mainfrom
feature/ISSUE-50-commit-attribution

Conversation

@ecukalla
Copy link
Copy Markdown
Owner

Closes #50. The in-container agent ran with Claude Code defaults, so commits it authored carried a Co-Authored-By / Generated-with-Claude-Code trailer — violating the no-AI-attribution rule (the host ~/.claude is intentionally never mounted). This passes the suppression on every claude call via --settings (sets includeCoAuthoredBy + attribution.{commit,pr}; outranks settings.json scopes, no filesystem side effects, works on any base image). FL_COMMIT_ATTRIBUTION=1 (env or .featureloop) opts back in. Adds 3 bats tests (default, env opt-out, .featureloop opt-out) + docs + CHANGELOG. Once merged + released, future feature-loop runs won't need manual trailer-stripping. Built by feature-loop (green, iteration 1).

ecukalla added 2 commits May 30, 2026 22:20
…T_ATTRIBUTION opt-out

The in-container agent ran with Claude Code defaults, so every commit it authored
carried a Co-Authored-By: Claude / "Generated with Claude Code" trailer, violating
the project's no-AI-attribution convention. The host ~/.claude is intentionally never
mounted, so the convention never reached the container.

Pass the suppression on every claude call via the --settings flag, which outranks all
settings.json scopes but "managed" — so it holds regardless of the base image, with no
filesystem side effects. Both keys are set (includeCoAuthoredBy + attribution.{commit,pr})
as belt-and-suspenders against the deprecation. FL_COMMIT_ATTRIBUTION=1 (env or
.featureloop) omits the flag, restoring Claude Code's default trailer.

Covered by three bats tests: default suppression, env opt-out, and .featureloop opt-out.
Add the knob to the .featureloop config reference and the example config, set it
explicitly in this repo's own dogfood config, and record Added/Fixed notes in the
changelog (semver minor: new opt-out surface plus the suppressed-trailer fix).
@ecukalla ecukalla force-pushed the feature/ISSUE-50-commit-attribution branch from fa7ad1c to 926653f Compare May 30, 2026 20:26
@ecukalla ecukalla merged commit 961d3a5 into main May 30, 2026
5 checks passed
@ecukalla ecukalla deleted the feature/ISSUE-50-commit-attribution branch May 30, 2026 20:59
@ecukalla ecukalla mentioned this pull request May 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docker: container-authored commits carry a Co-Authored-By: Claude trailer (overlay writes no Claude settings)

1 participant