Skip to content

fix(tooling): omit Trae machine squash credit - #140562

Merged
vincentkoc merged 1 commit into
mainfrom
fix/tooling-trae-machine-credit-20260907
Sep 7, 2026
Merged

vincentkoc merged 1 commit into
mainfrom
fix/tooling-trae-machine-credit-20260907

Conversation

@vincentkoc

Copy link
Copy Markdown
Member

Related: #136231

What Problem This Solves

Native squash composition can restore trae-solo-agent <solo-agent@trae.ai>
from contributor source trailers into a reviewed merge message. This blocks
landing while preserving human credit without agent attribution.

Why This Change Was Made

Classify only the exact published Trae machine address in the existing squash
credit filter. Human names, other trae.ai addresses, and lookalike domains
remain credited.

User Impact

Maintainers can land affected contributor PRs through the native workflow while
preserving legitimate human credit. Runtime behavior is unchanged.

Evidence

  • Five focused regression cases fail before the classifier update.
  • All 63 native attribution tests pass afterward.
  • The captured fix(feishu): expand quoted merged-forward messages #136231 composition retains Vincent Koc and excludes Trae Solo
    and Claude machine attribution.
  • Tooling: +1/-1. Tests: +8/-0.

@vincentkoc vincentkoc self-assigned this Sep 7, 2026
@clawsweeper

clawsweeper Bot commented Sep 7, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts size: XS maintainer Maintainer-authored PR labels Sep 7, 2026
@vincentkoc
vincentkoc marked this pull request as ready for review September 7, 2026 01:11
@clawsweeper clawsweeper Bot added P2 Normal backlog priority with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 7, 2026
@clawsweeper

clawsweeper Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed September 6, 2026, 9:16 PM ET / September 7, 2026, 01:16 UTC.

ClawSweeper review

What this changes

Extend native squash-message filtering to omit Trae’s exact machine address while preserving human credit, with regression cases for imported trailers and merge-message previews.

Merge readiness

✅ Ready for maintainer review

This remains a useful, focused repair: the reviewed main revision still imports Trae machine credit. No actionable patch defect was found, and the maintainer-authored PR is protected from automatic closure.

Priority: P2
Reviewed head: 2d3e2576ab6ff0f2ddbdd4b4b8e56485f22bc323

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A narrow owner-level repair with meaningful regression cases and no identified correctness or security defect.
Proof confidence 🌊 off-meta tidepool Not applicable: The MEMBER-authored PR is exempt from the external-contributor proof gate; its body reports an after-fix captured squash composition and focused regressions, which were not independently executed here.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Not applicable Not applicable: The MEMBER-authored PR is exempt from the external-contributor proof gate; its body reports an after-fix captured squash composition and focused regressions, which were not independently executed here.
Evidence reviewed 6 items Introduced change and current-main gap: The pinned main implementation recognizes four machine addresses but omits Trae. The complete introduced patch adds only the exact Trae address to the existing anchored, case-insensitive classifier; no provider-wide or name-based exclusion is introduced.
Production composition boundary: The shell owner extracts unfolded source trailers and published author addresses, validates the preview’s head, and invokes the composer. The composer filters imported machine credit while retaining its existing rejection of machine credit in an explicit or default chosen message. This is Git attribution tooling, with no dependency on a Codex runtime or harness contract.
Behavioral regression coverage: The added table cases exercise real Git trailer parsing through the shell composition owner, with a mocked GitHub preview. They cover ordinary, uppercase, and folded Trae trailers, explicit-message rejection, preview-only rejection, and preservation of same-name, same-domain, and lookalike-domain human credit. Tests were inspected, not executed.
Findings None None.
Security None None.

How this fits together

OpenClaw’s native PR tooling combines source-commit credit, GitHub’s squash preview, and an optional reviewed message. The composer preserves human attribution and rejects machine credit in the chosen merge message before handing it to the merge workflow.

flowchart TD
  A[Source commit trailers] --> D[Squash message composer]
  B[GitHub squash preview] --> D
  C[Reviewed message override] --> D
  D --> E[Exact machine address filter]
  E --> F[Preserve human credit]
  E --> G[Reject chosen machine credit]
  F --> H[Prepared merge message]
Loading

Before merge

None.

Agent review details

Security

None.

PR surface

Tests +8, Other 0. Total +8 across 2 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 1 8 0 +8
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 1 1 1 0
Total 2 9 1 +8

Review metrics

None.

Technical review

Best possible solution:

Keep machine-address recognition centralized in the existing composer, preserving human trailers and the explicit reviewed-message safeguard.

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

Yes, from source: a Trae source trailer is absent from main’s machine classifier and is consequently restored into a clean reviewed message. The added composition cases exercise that path; this read-only review did not execute them.

Is this the best way to solve the issue?

Yes. Extending the existing exact-address classifier repairs the owning boundary without duplicating composition logic or excluding legitimate contributors by name or domain.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 6df7c32f477a.

Labels

Label changes:

  • add P2: This repairs a concrete attribution problem in the maintainer landing workflow with limited scope and no product-runtime impact.
  • add rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • add status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The MEMBER-authored PR is exempt from the external-contributor proof gate; its body reports an after-fix captured squash composition and focused regressions, which were not independently executed here.

Label justifications:

  • P2: This repairs a concrete attribution problem in the maintainer landing workflow with limited scope and no product-runtime impact.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The MEMBER-authored PR is exempt from the external-contributor proof gate; its body reports an after-fix captured squash composition and focused regressions, which were not independently executed here.

Evidence

What I checked:

  • Introduced change and current-main gap: The pinned main implementation recognizes four machine addresses but omits Trae. The complete introduced patch adds only the exact Trae address to the existing anchored, case-insensitive classifier; no provider-wide or name-based exclusion is introduced. (scripts/pr-lib/merge-body.mjs:61, 6df7c32f477a)
  • Production composition boundary: The shell owner extracts unfolded source trailers and published author addresses, validates the preview’s head, and invokes the composer. The composer filters imported machine credit while retaining its existing rejection of machine credit in an explicit or default chosen message. This is Git attribution tooling, with no dependency on a Codex runtime or harness contract. (scripts/pr-lib/merge.sh:343, 2d3e2576ab6f)
  • Behavioral regression coverage: The added table cases exercise real Git trailer parsing through the shell composition owner, with a mocked GitHub preview. They cover ordinary, uppercase, and folded Trae trailers, explicit-message rejection, preview-only rejection, and preservation of same-name, same-domain, and lookalike-domain human credit. Tests were inspected, not executed. (test/scripts/pr-merge.test.ts:351, 2d3e2576ab6f)
  • Existing attribution maintenance: Main-path history identifies Peter Steinberger’s prior machine-credit filtering changes and Vincent Koc’s preview-credit validation work. These support routing relevance, not causal introduction claims; deeper blame inspection could not complete because a required historical object was unavailable. (scripts/pr-lib/merge-body.mjs, b5412c2a40b2)
  • Captured discussion and validation claims: The complete supplied body reports five failing-before cases, 63 passing-after attribution tests, and a captured composition preserving human credit for fix(feishu): expand quoted merged-forward messages #136231. That open Feishu PR supplies the motivating example; its channel fix does not supersede this tooling repair. These are contributor-reported results, not reviewer executions. (2d3e2576ab6f)
  • Release inspection limitation: Inspection of the latest supplied release tag could not complete because the required object was unavailable and GitHub DNS resolution failed. No shipped-fix claim is made; the independently inspected pinned main source still lacks this repair. (scripts/pr-lib/merge-body.mjs, 6df7c32f477a)

Likely related people:

  • vincentkoc: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • Peter Steinberger: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@vincentkoc
vincentkoc merged commit ae2f990 into main Sep 7, 2026
186 checks passed
@vincentkoc
vincentkoc deleted the fix/tooling-trae-machine-credit-20260907 branch September 7, 2026 01:57
@vincentkoc

Copy link
Copy Markdown
Member Author

Merged via squash.

vincentkoc added a commit that referenced this pull request Sep 7, 2026
…137098

* commit '8a540c252002878f3c3e9d8dfb837b83c8602a78': (2210 commits)
  perf(plugins): keep bundled catalog lookups lightweight (#140597)
  refactor: streamline skills JSON serialization (#140581)
  fix(feishu): expand quoted merged-forward messages (#136231)
  fix(talk): keep opaque realtime routes out of public config (#129144)
  fix(ci): avoid Linux packaging on pull requests (#140589)
  fix(usage): release completed request payloads (#140588)
  fix(tooling): omit Trae machine squash credit (#140562)
  fix(ui): stop catalog paging in hidden tabs (#140583)
  fix(portals): reach IPv6 loopback with IPv4-only localhost records (#140580)
  fix(transcripts): preserve fixed and legacy capture history (#140563)
  fix(ui): prevent Talk E2E audio capture stalls (#138803)
  fix(media): release completed document source buffers (#140561)
  fix(anthropic): preserve resumed CLI caches across Git changes (#140566)
  chore(ui): refresh control ui locales (#140586)
  fix(ui): keep usage exports bound to their session instance (#140573)
  refactor(exa): test response readers through tool execution (#140572)
  fix(macos): omit incompatible worker binaries from app bundles (#140557)
  fix: avoid retaining discarded tool output (#140570)
  refactor(gateway): share placement move matching (#140569)
  fix(gateway): preserve child turns during systemd drain (#140568)
  ...

# Conflicts:
#	.agents/skills/release-openclaw-maintainer/SKILL.md
#	docs/reference/RELEASING.md
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Sep 7, 2026
Related: openclaw#136231

Classify only the exact published Trae machine address in native squash composition so machine attribution is excluded without matching human names, other trae.ai addresses, or lookalike domains.

Preserve the existing reviewed-body and preview safeguards, with regression coverage for ordinary, case-variant, folded, chosen-body, preview-only, and human-lookalike cases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer Maintainer-authored PR P2 Normal backlog priority with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: XS status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant