UAT: Duplicate commit subject lines on master — two commit pairs with identical subjects indicate squash/rebase violations #3897

Open
opened 2026-04-06 07:16:45 +00:00 by freemo · 0 comments
Owner

Summary

CONTRIBUTING.md §"Commit Hygiene" states:

Clean up history before merging. Use interactive rebase or amend to fix typos, consolidate fixup commits, and polish the commit series before pushing to shared branches. The goal is a tidy history where every commit is meaningful, not a trail of corrections patching the previous commit.

Additionally, §"No Fix-up Commits":

"Fix-up" or "squash" commits within the same branch are not allowed. History should be clean before merging.

A review of the last 20 commits on master reveals two pairs of commits with identical subject lines, suggesting that the same change was committed twice (once as the implementation commit and once as a merge commit with the same message), or that squash/rebase was not properly performed before merging.


Evidence

Pair 1: docs: document ACMS real retrieval logic and automatic checkpoint triggers

SHA Subject Notes
eb6c2469b1 docs: document ACMS real retrieval logic and automatic checkpoint triggers Body: "Reviewed and APPROVED. Documentation-only PR." — appears to be a merge commit
1f64a274e3 docs: document ACMS real retrieval logic and automatic checkpoint triggers Body: Full implementation details with file changes listed

Analysis: Commit eb6c2469b1 appears to be a merge commit whose message was set to the same subject as the implementation commit 1f64a274e3. This results in two commits with identical subject lines on master. The merge commit body ("Reviewed and APPROVED. Documentation-only PR.") is not a meaningful commit message — it is a review comment, not a description of what changed.

Pair 2: fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans

SHA Subject Notes
36fb867830 fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans Body: "Reviewed and APPROVED. Critical bug fix. Closes #3563." — appears to be a merge commit
ca3399e177 fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans Body: Full implementation details with ISSUES CLOSED: #3563

Analysis: Same pattern — 36fb867830 is a merge commit with a review-comment body, while ca3399e177 is the actual implementation commit.


Root Cause Analysis

The pattern is consistent: automated agents appear to be creating merge commits with the same subject line as the feature branch's implementation commit, but with a body that is a review approval comment rather than a meaningful description. This results in:

  1. Duplicate subject lines in git log — confusing and non-atomic
  2. Meaningless merge commit bodies — "Reviewed and APPROVED." is not a commit message body
  3. Violation of the rebase policy — CONTRIBUTING.md requires rebase-only merges (no merge commits): "Merge commits are not allowed. Developers must always rebase their feature branches onto the main branch."

The presence of these merge commits on master suggests that the rebase-only merge policy is not being enforced.


Additional Merge Commit Pattern

Several other commits in the last 20 also have the "Reviewed and APPROVED." body pattern, indicating they are merge commits rather than rebased feature commits:

  • eb6c2469b1: "Reviewed and APPROVED. Documentation-only PR."
  • 36fb867830: "Reviewed and APPROVED. Critical bug fix. Closes #3563."
  • 194c830f98: "Reviewed and APPROVED. Closes CI push failure issue."
  • 9dec3ead1b: "Reviewed and APPROVED. Documentation-only PR."
  • 67b105b8f5: "Reviewed and APPROVED. Closes #2443."
  • 201868afd8: "Reviewed and APPROVED. All blocking issues addressed. Closes #3426."
  • 99b4067ec2: "Reviewed and APPROVED. All blocking issues addressed. Closes #3422."
  • 234d71560d: "Reviewed and APPROVED. All blocking issues addressed. Closes #3439."
  • a15c626e9d: "Reviewed and APPROVED. Closes #2440."
  • f0e852680a: "Reviewed and APPROVED. Closes #2878."
  • 461adcdb2a: "Reviewed and APPROVED. Closes #2064."

That is 11 of 20 commits (55%) that appear to be merge commits with review-comment bodies, violating the rebase-only policy.


Expected Behavior (per CONTRIBUTING.md)

"Merge commits are not allowed. Developers must always rebase their feature branches onto the main branch."

When a PR is merged, the commits from the feature branch should be rebased onto master. The resulting history should contain only the implementation commits (with proper Conventional Changelog format and ISSUES CLOSED: footers), not additional merge commits.


Impact

  • History pollution: Duplicate subject lines make git log confusing and harder to navigate.
  • Merge commit policy violation: 55% of recent commits appear to be merge commits, violating the rebase-only policy.
  • Meaningless commit bodies: "Reviewed and APPROVED." is not a useful commit message body for future developers reading the history.

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: ca-uat-tester

## Summary CONTRIBUTING.md §"Commit Hygiene" states: > **Clean up history before merging.** Use interactive rebase or amend to fix typos, consolidate fixup commits, and polish the commit series before pushing to shared branches. The goal is a tidy history where every commit is meaningful, not a trail of corrections patching the previous commit. Additionally, §"No Fix-up Commits": > "Fix-up" or "squash" commits within the same branch are not allowed. History should be clean before merging. A review of the last 20 commits on `master` reveals **two pairs of commits with identical subject lines**, suggesting that the same change was committed twice (once as the implementation commit and once as a merge commit with the same message), or that squash/rebase was not properly performed before merging. --- ## Evidence ### Pair 1: `docs: document ACMS real retrieval logic and automatic checkpoint triggers` | SHA | Subject | Notes | |-----|---------|-------| | `eb6c2469b1` | `docs: document ACMS real retrieval logic and automatic checkpoint triggers` | Body: "Reviewed and APPROVED. Documentation-only PR." — appears to be a merge commit | | `1f64a274e3` | `docs: document ACMS real retrieval logic and automatic checkpoint triggers` | Body: Full implementation details with file changes listed | **Analysis:** Commit `eb6c2469b1` appears to be a merge commit whose message was set to the same subject as the implementation commit `1f64a274e3`. This results in two commits with identical subject lines on master. The merge commit body ("Reviewed and APPROVED. Documentation-only PR.") is not a meaningful commit message — it is a review comment, not a description of what changed. ### Pair 2: `fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans` | SHA | Subject | Notes | |-----|---------|-------| | `36fb867830` | `fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans` | Body: "Reviewed and APPROVED. Critical bug fix. Closes #3563." — appears to be a merge commit | | `ca3399e177` | `fix(acms): invoke SkeletonCompressor in ContextAssembler.assemble() to propagate skeleton context to child plans` | Body: Full implementation details with `ISSUES CLOSED: #3563` | **Analysis:** Same pattern — `36fb867830` is a merge commit with a review-comment body, while `ca3399e177` is the actual implementation commit. --- ## Root Cause Analysis The pattern is consistent: automated agents appear to be creating **merge commits** with the same subject line as the feature branch's implementation commit, but with a body that is a review approval comment rather than a meaningful description. This results in: 1. **Duplicate subject lines** in `git log` — confusing and non-atomic 2. **Meaningless merge commit bodies** — "Reviewed and APPROVED." is not a commit message body 3. **Violation of the rebase policy** — CONTRIBUTING.md requires rebase-only merges (no merge commits): "Merge commits are not allowed. Developers must always rebase their feature branches onto the main branch." The presence of these merge commits on master suggests that the rebase-only merge policy is not being enforced. --- ## Additional Merge Commit Pattern Several other commits in the last 20 also have the "Reviewed and APPROVED." body pattern, indicating they are merge commits rather than rebased feature commits: - `eb6c2469b1`: "Reviewed and APPROVED. Documentation-only PR." - `36fb867830`: "Reviewed and APPROVED. Critical bug fix. Closes #3563." - `194c830f98`: "Reviewed and APPROVED. Closes CI push failure issue." - `9dec3ead1b`: "Reviewed and APPROVED. Documentation-only PR." - `67b105b8f5`: "Reviewed and APPROVED. Closes #2443." - `201868afd8`: "Reviewed and APPROVED. All blocking issues addressed. Closes #3426." - `99b4067ec2`: "Reviewed and APPROVED. All blocking issues addressed. Closes #3422." - `234d71560d`: "Reviewed and APPROVED. All blocking issues addressed. Closes #3439." - `a15c626e9d`: "Reviewed and APPROVED. Closes #2440." - `f0e852680a`: "Reviewed and APPROVED. Closes #2878." - `461adcdb2a`: "Reviewed and APPROVED. Closes #2064." That is **11 of 20 commits** (55%) that appear to be merge commits with review-comment bodies, violating the rebase-only policy. --- ## Expected Behavior (per CONTRIBUTING.md) > "Merge commits are not allowed. Developers must always rebase their feature branches onto the main branch." When a PR is merged, the commits from the feature branch should be rebased onto master. The resulting history should contain only the implementation commits (with proper Conventional Changelog format and `ISSUES CLOSED:` footers), not additional merge commits. --- ## Impact - **History pollution**: Duplicate subject lines make `git log` confusing and harder to navigate. - **Merge commit policy violation**: 55% of recent commits appear to be merge commits, violating the rebase-only policy. - **Meaningless commit bodies**: "Reviewed and APPROVED." is not a useful commit message body for future developers reading the history. --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: ca-uat-tester
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#3897
No description provided.