fix(ci): stop Claude AI workflows overwriting each other's PR comment - #36762
Conversation
anthropics/claude-code-action keys its progress/sticky comment on "authored by the Claude app bot" with no per-workflow marker, so every Anthropic-path workflow on a PR reuses the same comment and the later run wipes the earlier one's content. On #36759 the rollback-safety verdict replaced the AI code review in place. Give the sticky comment a single owner — ai_claude-orchestrator.yml, where an auto-updating review comment is the point — and turn the progress comment off everywhere else. Rollback safety reports through a label plus its own comment when a change is unsafe; the backend reviewer upserts its own <!-- dotcms-backend-review --> marker comment. Neither needs one. Requires the track_progress passthrough in dotCMS/ai-workflows#64 to be released on the v3 tag first. Closes: #36761 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G7gd5sQ41A3k4bFeNVnUkR
|
Claude finished @sfreudenthaler's task in 48s —— View job Code Review: PR #36762 — stop Claude AI workflows overwriting each other's PR comment
New IssuesNo issues found. The change is minimal and correct: both callers now pass
One thing worth confirming (not a code defect, an operational dependency):
The "not verified on this PR" caveat (workflow-file changes cause |
The prior review's blocking finding was the merge-order gate: track_progress did not yet exist on claude-orchestrator.yml@v3. It does now (v3.4.0, v3 moved), so re-run the review against the resolved dependency. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G7gd5sQ41A3k4bFeNVnUkR
|
that high finding is ok. i've already shipped (dotCMS/ai-workflows@1a83e93) it in ai-workflows and moved the floating |
erickgonzalez
left a comment
There was a problem hiding this comment.
Haha nice got this question from some devs but I didn’t had any time to investigate
|
Tick the box to add this pull request to the merge queue (same as
|
Closes: #36761
Problem
Three Claude workflows run on every
pull_requestin this repo —ai_claude-orchestrator.yml(code review),ai_claude-rollback-safety.yml,ai_claude-backend-reviewer.yml. They all route to the Anthropic path, andanthropics/claude-code-action@v1finds the comment to reuse by "authored by the Claude app bot", with no per-workflow marker:So the later workflow resets the earlier one's comment to "Claude Code is working…" and writes its own result over it. PR #36759 — one comment, eight edits, two workflows:
This is deterministic, not a race — ordering decides only who wins, so a concurrency group would not help. Note the rollback check wasn't even supposed to comment there: its verdict was "safe", and STEP 4b says label only. The comment it destroyed the review with was the action's own progress comment.
Change
One owner for the action-managed comment.
ai_claude-orchestrator.ymlkeeps it — an auto-updating review comment is the point there. The other two passtrack_progress: false:AI: Safe To Rollback/AI: Not Safe To Rollbacklabel, plus its owngh pr commentwhen unsafe. On a safe verdict the analysis lives in the job log, which is the accepted trade here.<!-- dotcms-backend-review -->marker comment in STEP 5.Neither needs a progress comment, and neither can hijack the review's now.
Dependency — shipped
track_progresswas hardcoded"true"inclaude-executor.yml. dotCMS/ai-workflows#64 exposes it (defaulttrue, no behaviour change for other consumers); released as v3.4.0 and the floatingv3tag now points at it, so the input this PR passes exists. Declaredtype: boolean, which is whyfalsehere is unquoted (unlikeissue_autodoc.yml, which calls the action directly, wherewith:values are strings).Verified on this PR: both workflows now resolve
track_progress: falseand get past the earlierstartup_failure.Not verified here
claude-code-actionskips any PR that modifies its own workflow file ("Workflow validation failed… identical content to the version on the repository's default branch"), so on this PR the rollback and backend jobs are skipped and no label is applied. End-to-end no-clobber behaviour is exercised by the first ordinary PR after this merges.Upstream
The real fix is a namespaced sticky marker in
claude-code-action. The Bedrock/Codex executors inai-workflowsalready do this viasticky_namespace; the limitation and the one-owner convention are now documented in that repo's README (§6).This PR fixes: #36761