[PR #179] [MERGED] feat(backport): improve backport notifications with persistent warnings and author tagging #179

Closed
opened 2026-10-27 21:10:20 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Comfy-Org/Comfy-PR/pull/179
Author: @snomiao
Created: 3/12/2026
Status: ✅ Merged
Merged: 3/17/2026
Merged by: @snomiao

Base: main ← Head: sno-backport-improve


📝 Commits (10+)

  • 5e63323 feat(backport): improve backport notifications with persistent warnings and author tagging
  • 85ecb8e feat(backport): add --dry-run flag and graceful error handling for compare API
  • 7036834 fix(test): add missing upsertSlackMarkdownMessage to mock in desktop-release spec
  • fe62497 fix(backport): guard profile.real_name against undefined before .replace()
  • 256cdc5 fix(backport): paginate through all Slack users instead of only first 500
  • d0fd106 fix(backport): use <= for version-distance filter so releases exactly N behind are included
  • 7e3de21 fix(backport): remove redundant filter in targetBranches
  • fa27de3 fix(bot): remove duplicate ANSI escape regex in filterDebugMessages
  • d446692 style: format code with prettier (no logic changes)
  • 8eafd05 fix(test): align version-distance filter test with <= boundary change

📊 Changes

20 files changed (+987 additions, -217 deletions)

View changed files

📝 .husky/pre-commit (+3 -3)
📝 app/tasks/gh-desktop-release-notification/index.spec.ts (+19 -17)
📝 app/tasks/gh-frontend-backport-checker/index.spec.ts (+476 -3)
📝 app/tasks/gh-frontend-backport-checker/index.ts (+384 -116)
📝 app/tasks/gh-issue-transfer-comfyui-to-frontend/index.spec.ts (+5 -3)
📝 app/tasks/gh-issue-transfer-comfyui-to-workflow_templates/index.spec.ts (+6 -1)
📝 app/tasks/gh-issue-transfer-frontend-to-comfyui/index.spec.ts (+17 -23)
📝 app/tasks/gh-priority-sync/index.spec.ts (+9 -1)
📝 bot/slack-bolt.ts (+1 -6)
📝 bot/slack-bot.ts (+4 -1)
📝 bot/utils/filterDebugMessages.ts (+0 -1)
📝 bun.lock (+1 -1)
📝 lib/slack/slackTsToISO.ts (+1 -1)
📝 package.json (+1 -1)
📝 packages/mongodb-pipeline-ts/$pipeline.ts (+2 -2)
📝 scripts/migrate-cnrepos-trim-data.ts (+6 -4)
📝 src/EmailTasks.ts (+1 -1)
📝 src/analyzePullsStatus.ts (+21 -13)
📝 src/test/mockDb.ts (+1 -1)
📝 src/updateAuthorsForGithub.ts (+29 -18)

📄 Description

Summary

Improves the backport checker notifications in #frontend-releases per the discussion with @Christian Byrne:

  • Version-based filtering: Replace fixed maxReleasesToCheck: 3 with version-based filtering — show backport warnings until a release is 4 minor versions behind the latest (inclusive, <= comparison)
  • Backport-not-needed labels: Add core-backport-not-needed and cloud-backport-not-needed label support to dismiss backport requirements per target
  • Author tagging: Tag PR authors in Slack backport notifications; uses cursor-based pagination for all Slack workspace members. Falls back to release sheriff from #frontend-releases channel description.
  • Pre-existing TS fixes: Fix 4 pre-existing TypeScript errors that were blocking the pre-commit hook

New labels needed on ComfyUI_frontend repo

  • core-backport-not-needed
  • cloud-backport-not-needed

Release sheriff format

The channel description of #frontend-releases should contain: Current Release Sheriff: @<person>

All review fixes applied

Commit Fix
fe62497 Guard profile.real_name against undefined before .replace()
256cdc5 Paginate through all Slack users (cursor-based) instead of only first 500
d0fd106 Use <= for version-distance filter so releases exactly N behind are included
7e3de21 Remove redundant .filter() in targetBranches (always true by construction)
fa27de3 Remove duplicate ANSI escape regex in filterDebugMessages
c3c2b8f Handle integer-only Slack timestamps in slackTsToISO
f47b8df Cache Slack member list once per run; set bugfixCommits: [] on failed tasks
bbb0e9e Remove stray return await save({...task, ...}) outside function scope (ReferenceError fix)

Test plan

  • All 75 unit tests pass
  • CI passing (both run_comfy_pr and run_combined_github_tasks)
  • Verify labels are created on ComfyUI_frontend repo
  • Run backport checker against real releases to validate version filtering
  • Verify Slack user lookup works for team members
  • Verify release sheriff fallback works for external contributors

🤖 Generated with Claude Code


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Comfy-Org/Comfy-PR/pull/179 **Author:** [@snomiao](https://github.com/snomiao) **Created:** 3/12/2026 **Status:** ✅ Merged **Merged:** 3/17/2026 **Merged by:** [@snomiao](https://github.com/snomiao) **Base:** `main` ← **Head:** `sno-backport-improve` --- ### 📝 Commits (10+) - [`5e63323`](https://github.com/Comfy-Org/Comfy-PR/commit/5e6332315854ede33043750907a75760fe40440f) feat(backport): improve backport notifications with persistent warnings and author tagging - [`85ecb8e`](https://github.com/Comfy-Org/Comfy-PR/commit/85ecb8ebd29f93953a329db7f74c2dd57595c0c0) feat(backport): add --dry-run flag and graceful error handling for compare API - [`7036834`](https://github.com/Comfy-Org/Comfy-PR/commit/70368345a1b0250dd7f32c7200f7c7b66f5876f4) fix(test): add missing upsertSlackMarkdownMessage to mock in desktop-release spec - [`fe62497`](https://github.com/Comfy-Org/Comfy-PR/commit/fe62497d7025c76a7417efc065f2eed8356285c4) fix(backport): guard profile.real_name against undefined before .replace() - [`256cdc5`](https://github.com/Comfy-Org/Comfy-PR/commit/256cdc59da9163efa8fff9d42c618681777e3172) fix(backport): paginate through all Slack users instead of only first 500 - [`d0fd106`](https://github.com/Comfy-Org/Comfy-PR/commit/d0fd106450245367e03d4d0c2b0472f17b5d63fa) fix(backport): use <= for version-distance filter so releases exactly N behind are included - [`7e3de21`](https://github.com/Comfy-Org/Comfy-PR/commit/7e3de21e3a502ccc18df274c2a83fb4a89936406) fix(backport): remove redundant filter in targetBranches - [`fa27de3`](https://github.com/Comfy-Org/Comfy-PR/commit/fa27de34640ea9fe1d7c701380bb4c31727f3be2) fix(bot): remove duplicate ANSI escape regex in filterDebugMessages - [`d446692`](https://github.com/Comfy-Org/Comfy-PR/commit/d446692dd9ba6f15af18d9751482127f10fd14aa) style: format code with prettier (no logic changes) - [`8eafd05`](https://github.com/Comfy-Org/Comfy-PR/commit/8eafd0580e0857f104324b24f8346c3675948322) fix(test): align version-distance filter test with <= boundary change ### 📊 Changes **20 files changed** (+987 additions, -217 deletions) <details> <summary>View changed files</summary> 📝 `.husky/pre-commit` (+3 -3) 📝 `app/tasks/gh-desktop-release-notification/index.spec.ts` (+19 -17) 📝 `app/tasks/gh-frontend-backport-checker/index.spec.ts` (+476 -3) 📝 `app/tasks/gh-frontend-backport-checker/index.ts` (+384 -116) 📝 `app/tasks/gh-issue-transfer-comfyui-to-frontend/index.spec.ts` (+5 -3) 📝 `app/tasks/gh-issue-transfer-comfyui-to-workflow_templates/index.spec.ts` (+6 -1) 📝 `app/tasks/gh-issue-transfer-frontend-to-comfyui/index.spec.ts` (+17 -23) 📝 `app/tasks/gh-priority-sync/index.spec.ts` (+9 -1) 📝 `bot/slack-bolt.ts` (+1 -6) 📝 `bot/slack-bot.ts` (+4 -1) 📝 `bot/utils/filterDebugMessages.ts` (+0 -1) 📝 `bun.lock` (+1 -1) 📝 `lib/slack/slackTsToISO.ts` (+1 -1) 📝 `package.json` (+1 -1) 📝 `packages/mongodb-pipeline-ts/$pipeline.ts` (+2 -2) 📝 `scripts/migrate-cnrepos-trim-data.ts` (+6 -4) 📝 `src/EmailTasks.ts` (+1 -1) 📝 `src/analyzePullsStatus.ts` (+21 -13) 📝 `src/test/mockDb.ts` (+1 -1) 📝 `src/updateAuthorsForGithub.ts` (+29 -18) </details> ### 📄 Description ## Summary Improves the backport checker notifications in #frontend-releases per the discussion with @Christian Byrne: - **Version-based filtering**: Replace fixed `maxReleasesToCheck: 3` with version-based filtering — show backport warnings until a release is 4 minor versions behind the latest (inclusive, `<=` comparison) - **Backport-not-needed labels**: Add `core-backport-not-needed` and `cloud-backport-not-needed` label support to dismiss backport requirements per target - **Author tagging**: Tag PR authors in Slack backport notifications; uses cursor-based pagination for all Slack workspace members. Falls back to release sheriff from #frontend-releases channel description. - **Pre-existing TS fixes**: Fix 4 pre-existing TypeScript errors that were blocking the pre-commit hook ### New labels needed on ComfyUI_frontend repo - `core-backport-not-needed` - `cloud-backport-not-needed` ### Release sheriff format The channel description of #frontend-releases should contain: `Current Release Sheriff: @<person>` ## All review fixes applied | Commit | Fix | |--------|-----| | fe62497 | Guard `profile.real_name` against undefined before `.replace()` | | 256cdc5 | Paginate through all Slack users (cursor-based) instead of only first 500 | | d0fd106 | Use `<=` for version-distance filter so releases exactly N behind are included | | 7e3de21 | Remove redundant `.filter()` in targetBranches (always true by construction) | | fa27de3 | Remove duplicate ANSI escape regex in filterDebugMessages | | c3c2b8f | Handle integer-only Slack timestamps in slackTsToISO | | f47b8df | Cache Slack member list once per run; set `bugfixCommits: []` on failed tasks | | bbb0e9e | Remove stray `return await save({...task, ...})` outside function scope (ReferenceError fix) | ## Test plan - [x] All 75 unit tests pass - [x] CI passing (both `run_comfy_pr` and `run_combined_github_tasks`) - [ ] Verify labels are created on ComfyUI_frontend repo - [ ] Run backport checker against real releases to validate version filtering - [ ] Verify Slack user lookup works for team members - [ ] Verify release sheriff fallback works for external contributors 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-27 21:10:20 +00:00
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
Comfy-Org/Comfy-PR#179
No description provided.