Skip to content

fix(changelog): reject bot/app handles as Thanks attribution and require explicit human credit#81357

Merged
clawsweeper[bot] merged 13 commits into
mainfrom
fix/changelog-bot-credit-guard
May 14, 2026
Merged

fix(changelog): reject bot/app handles as Thanks attribution and require explicit human credit#81357
clawsweeper[bot] merged 13 commits into
mainfrom
fix/changelog-bot-credit-guard

Conversation

@hxy91819

@hxy91819 hxy91819 commented May 13, 2026

Copy link
Copy Markdown
Member

Summary

  • Expand forbidden changelog Thanks handles to include ClawSweeper bot accounts (clawsweeper, openclaw-clawsweeper, clawsweeper[bot], openclaw-clawsweeper[bot]) and app/ prefixed handles.
  • Unify the attribution check predicate between the JS scanner (check-changelog-attributions.mjs) and the shell gate (scripts/pr-lib/changelog.sh) so both use isForbiddenChangelogThanksHandle.
  • Require bot/app-authored PR changelog entries to include an explicit human Thanks @handle; reject entries that credit only a bot or omit human credit entirely.
  • Add a --is-forbidden-handle CLI flag to the attribution script for shell-side reuse.
  • Add tests for multi-handle lines, shared predicate correctness, missing human credit, and valid human credit on bot-authored entries.

Change Type

  • Bug fix

Scope

  • CI/CD / infra

Linked Issue/PR

Regression Test Plan

  • Unit test
  • Target: test/scripts/check-changelog-attributions.test.ts
  • Scenarios locked: bot/app handle rejection, multi-handle scanning, shell-side validate_changelog_entry_for_pr requiring explicit human Thanks for bot authors.

User-visible / Behavior Changes

  • PRs with bot/app authors must include a credited human Thanks @handle in their CHANGELOG entry line, or the changelog gate will fail.

Security Impact

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

Compatibility / Migration

  • Backward compatible? Yes
  • Config/env changes? No
  • Migration needed? No

Risks and Mitigations

  • Risk: Existing bot-authored PRs with Thanks @clawsweeper in changelog will fail the gate.
    • Mitigation: These are already blocked by the expanded forbidden list; contributors should credit the human author instead.

@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts size: S maintainer Maintainer-authored PR labels May 13, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb050dba7d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/pr-lib/changelog.sh Outdated
@clawsweeper

clawsweeper Bot commented May 13, 2026

Copy link
Copy Markdown
Contributor

Codex review: passed.

Summary
The PR expands forbidden changelog Thanks attribution rules for bot/app handles, shares the Node predicate with the shell changelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.

Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app Thanks handles are not all rejected; I did not execute tests because this review was read-only.

Real behavior proof
Not applicable: The contributor proof gate does not apply because this is a MEMBER/maintainer-labeled PR, and ClawSweeper already recorded exact-head validation for the repaired branch.

Next step before merge
No repair job is needed; review findings are empty and the existing automerge gate can proceed on the exact head.

Security
Cleared: The diff touches changelog gate scripts but adds no new dependency, network call, permission, secret handling, or unquoted shell execution path.

Review details

Best possible solution:

Land the repaired head through the existing exact-head checks and maintainer/automerge gate, keeping the shared predicate plus focused regression coverage.

Do we have a high-confidence way to reproduce the issue?

Yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app Thanks handles are not all rejected; I did not execute tests because this review was read-only.

Is this the best way to solve the issue?

Yes. Centralizing the attribution predicate in the Node scanner and calling it from the shell gate is the narrow maintainable fix, and the final diff preserves the existing no-thanks fallback for non-bot forbidden handles.

What I checked:

  • Current main scanner gap: Current main only hard-codes codex, openclaw, and steipete as forbidden Thanks handles, so bot/app handles are not rejected by the scanner before this PR. (scripts/check-changelog-attributions.mjs:7, 1f45b37fe17c)
  • Current main shell fallback gap: Current main treats app/ClawSweeper-style authors as non-creditable and then skips the contributor Thanks check entirely, so bot/app-authored changelog entries can omit human credit. (scripts/pr-lib/changelog.sh:167, 1f45b37fe17c)
  • PR head shared predicate: The PR head adds explicit forbidden handle, prefix, and suffix sets, plus a requiresExplicitHumanChangelogThanks predicate used for bot/app authors. (scripts/check-changelog-attributions.mjs:7, 1e6d0f53ec45)
  • PR head shell integration: The shell gate now resolves the repo-local attribution script, delegates forbidden-handle checks to it, preserves the no-thanks fallback for non-bot forbidden handles, and requires any explicit Thanks @... line for bot/app authors. (scripts/pr-lib/changelog.sh:166, 1e6d0f53ec45)
  • Gate sequencing prevents bot-only thanks bypass: The prepare gate runs validate_changelog_attribution_policy for any changelog update before validate_changelog_entry_for_pr, so a bot-only Thanks line accepted by the explicit-thanks presence check is still rejected by the scanner. (scripts/pr-lib/gates.sh:61, 1f45b37fe17c)
  • Focused regression coverage: The PR adds coverage for multi-handle scanning, shared predicate behavior, bot/app authors missing human credit, valid human credit, and preserving the non-bot forbidden no-thanks fallback. (test/scripts/check-changelog-attributions.test.ts:91, 1e6d0f53ec45)

Likely related people:

  • steipete: Introduced the changelog attribution scanner and then wired the attribution policy into PR gates. (role: feature introducer; confidence: high; commits: bbbc80ddcc26, 0f996ad4b01f; files: scripts/check-changelog-attributions.mjs, scripts/pr-lib/changelog.sh, test/scripts/check-changelog-attributions.test.ts)
  • gumadeiras: Recent GitHub history shows multiple changes to the PR workflow/changelog script modules around section detection and module splitting. (role: script workflow contributor; confidence: medium; commits: 31a4b45db09f, bf6d3176fcdf, fd65caf4b0ba; files: scripts/pr-lib/changelog.sh)
  • shakkernerd: Recent GitHub history shows test maintenance in test/scripts/check-changelog-attributions.test.ts, which is the regression-test surface changed here. (role: recent test area contributor; confidence: medium; commits: b33fe72fc31f; files: test/scripts/check-changelog-attributions.test.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 1f45b37fe17c.

@hxy91819

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: be890d010d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/check-changelog-attributions.mjs Outdated
Comment thread scripts/pr-lib/changelog.sh Outdated
@hxy91819

Copy link
Copy Markdown
Member Author

/clawsweeper re-review

@hxy91819 hxy91819 changed the title Require human changelog credit for bot repairs fix(changelog): reject bot/app handles as Thanks attribution and require explicit human credit May 13, 2026
@hxy91819

Copy link
Copy Markdown
Member Author

@codex review

@hxy91819

Copy link
Copy Markdown
Member Author

local codex review:

• The changes consistently tighten changelog attribution checks and wire the shell gating logic to the same
attribution predicate, with tests covering the new bot/app-author requirement and forbidden-handle
detection paths. I did not find a discrete regression in behavior, correctness, or maintainability
introduced by this diff.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@hxy91819

Copy link
Copy Markdown
Member Author

/clawsweeper status

@hxy91819

Copy link
Copy Markdown
Member Author

/clawsweeper automerge

1 similar comment
@hxy91819

Copy link
Copy Markdown
Member Author

/clawsweeper automerge

@clawsweeper clawsweeper Bot added the clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge label May 14, 2026
@clawsweeper

clawsweeper Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🦞✅
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=1e6d0f53ec4505e2b45468becd6e5330a49ed1b0)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-05-14T15:04:44Z
Merge commit: 83d7ab0d362f

What merged:

  • The PR expands forbidden changelog Thanks attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
  • Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app Thanks handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:

  • PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
  • PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
  • PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
  • PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
  • PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
  • PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

The automerge loop is complete.

Automerge progress:

  • 2026-05-14 14:27:23 UTC review queued 0842025131a7 (queued)
  • 2026-05-14 14:55:32 UTC review queued 1e6d0f53ec45 (after repair)
  • 2026-05-14 15:04:27 UTC review passed 1e6d0f53ec45 (structured ClawSweeper verdict: pass (sha=1e6d0f53ec4505e2b45468becd6e5330a49ed...)
  • 2026-05-14 15:04:46 UTC merged 1e6d0f53ec45 (merged by ClawSweeper automerge)

@clawsweeper clawsweeper Bot force-pushed the fix/changelog-bot-credit-guard branch from 0842025 to 1e6d0f5 Compare May 14, 2026 14:55
@clawsweeper clawsweeper Bot merged commit 83d7ab0 into main May 14, 2026
89 checks passed
@clawsweeper clawsweeper Bot deleted the fix/changelog-bot-credit-guard branch May 14, 2026 15:04
@clawsweeper

clawsweeper Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper status:

  • Current PR: 81357
  • Branch: fix/changelog-bot-credit-guard
  • ClawSweeper PR: no
  • Automerge: enabled
  • Automerge job: jobs/openclaw/inbox/automerge-openclaw-openclaw-81357.md
  • Job: jobs/openclaw/inbox/automerge-openclaw-openclaw-81357.md
  • Merge state: UNSTABLE
  • Checks: SUCCESS:79 SKIPPED:7 IN_PROGRESS:1
  • Check blockers: check-additional:IN_PROGRESS

@clawsweeper

clawsweeper Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

markfietje pushed a commit to markfietje/openclaw that referenced this pull request May 20, 2026
…ire explicit human credit (#81357)

Summary:
- The PR expands forbidden changelog `Thanks` attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
- Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app `Thanks` handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
- PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
- PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
- PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
- PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
- PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

Validation:
- ClawSweeper review passed for head 1e6d0f53ec4505e2b45468becd6e5330a49ed1b0.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1e6d0f53ec4505e2b45468becd6e5330a49ed1b0
Review: openclaw/openclaw#81357 (comment)

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
markfietje pushed a commit to markfietje/openclaw that referenced this pull request May 20, 2026
…ire explicit human credit (#81357)

Summary:
- The PR expands forbidden changelog `Thanks` attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
- Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app `Thanks` handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
- PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
- PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
- PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
- PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
- PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

Validation:
- ClawSweeper review passed for head 1e6d0f53ec4505e2b45468becd6e5330a49ed1b0.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1e6d0f53ec4505e2b45468becd6e5330a49ed1b0
Review: openclaw/openclaw#81357 (comment)

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
…ire explicit human credit (openclaw#81357)

Summary:
- The PR expands forbidden changelog `Thanks` attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
- Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app `Thanks` handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
- PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
- PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
- PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
- PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
- PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

Validation:
- ClawSweeper review passed for head 1e6d0f5.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1e6d0f5
Review: openclaw#81357 (comment)

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
…ire explicit human credit (openclaw#81357)

Summary:
- The PR expands forbidden changelog `Thanks` attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
- Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app `Thanks` handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
- PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
- PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
- PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
- PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
- PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

Validation:
- ClawSweeper review passed for head 1e6d0f5.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1e6d0f5
Review: openclaw#81357 (comment)

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
…ire explicit human credit (openclaw#81357)

Summary:
- The PR expands forbidden changelog `Thanks` attribution rules for bot/app handles, shares the Node predicate ... ngelog gate, requires explicit human credit for bot/app-authored changelog entries, and adds focused tests.
- Reproducibility: yes. Current main source shows bot/app changelog authors can skip human attribution and bot/app `Thanks` handles are not all rejected; I did not execute tests because this review was read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: simplify bot changelog credit guard
- PR branch already contained follow-up commit before automerge: fix: share changelog credit attribution rule
- PR branch already contained follow-up commit before automerge: fix: tighten changelog attribution scanning
- PR branch already contained follow-up commit before automerge: test: cover legacy changelog credit exclusions
- PR branch already contained follow-up commit before automerge: fix: express changelog credit exclusions as union sets
- PR branch already contained follow-up commit before automerge: fix: avoid substring changelog credit exclusions

Validation:
- ClawSweeper review passed for head 1e6d0f5.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1e6d0f5
Review: openclaw#81357 (comment)

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge maintainer Maintainer-authored PR scripts Repository scripts size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant