Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
386eb93
Revert test PR for backport workflow (#4794)
christian-byrne Aug 6, 2025
5e9b878
Scroll templates better (#4584)
Myestery Aug 6, 2025
85aa89d
[test] Regenerate template test screenshots (#4795)
christian-byrne Aug 7, 2025
f3b82e3
[fix] Display dynamic keybinding in minimap tooltip (#4805)
christian-byrne Aug 7, 2025
385c56d
Fix widget display on subgraph nodes (#4798)
AustinMroz Aug 7, 2025
e63337c
[docs] Add feature flags documentation (#4797)
christian-byrne Aug 7, 2025
04f8ae4
[docs] Create CONTRIBUTING.md and reorganize documentation (#4804)
christian-byrne Aug 7, 2025
e77411d
Add touch screen dragging support to minimap (#4781)
Copilot Aug 7, 2025
f4482eb
1.26.0 (#4812)
comfy-pr-bot Aug 7, 2025
70c06d1
Keyboard Shortcut Bottom Panel (#4635)
Myestery Aug 7, 2025
c6c20e5
[docs] Improve icon documentation with practical examples (#4810)
christian-byrne Aug 7, 2025
3c154d8
[refactor] Remove 5 unused settings from apiSchema (#4811)
christian-byrne Aug 7, 2025
65cc067
[ci] Merge ESLint and Prettier workflows with auto-fix for faster ite…
snomiao Aug 7, 2025
1b9baca
[fix] Handle fork PRs in lint-and-format workflow (#4819)
christian-byrne Aug 7, 2025
1fc4fd2
Remove subgraphs from add node context menu (#4820)
AustinMroz Aug 7, 2025
8899b42
Rename subgraph widgets when slot is renamed (#4821)
AustinMroz Aug 7, 2025
5d71d6f
fix: correct branch protection status contexts for RC branches (#4829)
vivekchavan14 Aug 8, 2025
95ab886
feat: Add smooth slide-up animation to SelectionToolbox (#4832)
huchenlei Aug 8, 2025
ba28fa4
Support preview display on subgraphNodes (#4814)
AustinMroz Aug 8, 2025
8bf6077
[CI] Exclude `vue-nodes-migration` branch from playwright tests (#4844)
christian-byrne Aug 8, 2025
7bbbf59
feat: Enable double-click on subgraph slot labels for renaming (#4833)
huchenlei Aug 9, 2025
c3997df
docs: add AGENTS.md file (#4858)
benceruleanlu Aug 9, 2025
10d8016
[bugfix] Fix subgraph I/O slot rename dialog showing stale label cont…
huchenlei Aug 9, 2025
db452c1
Fix disconnection from subgraph inputs (#4800)
AustinMroz Aug 9, 2025
16d7436
Fix: Alt+click reroute creation on high-DPI displays (#4831)
vivekchavan14 Aug 9, 2025
5cc269e
Fix Alt+click create reroute (2/2) (#4863)
christian-byrne Aug 9, 2025
b42878a
Remove unused Litegraph context menu options (#4867)
webfiltered Aug 9, 2025
5f5f44b
Fix execution breaks on multi/any-type slots (#4864)
webfiltered Aug 9, 2025
0d8e4fe
Fix Simplified Chinese Translation (#4865)
MakkiShizu Aug 9, 2025
e70b127
Revert animated-image-preview-saved-webp snapshot change from #4863 (…
christian-byrne Aug 9, 2025
2d11fb1
[CI] Pin third party GH actions to specific SHAs (#4878)
webfiltered Aug 9, 2025
b1117b9
[ci] Add chromium-0.5x to test matrix (#4880)
christian-byrne Aug 9, 2025
ff5943f
Reorder subgraph context menu items (#4870)
webfiltered Aug 9, 2025
03ad06e
Add preview to workflow tabs (#4290)
pythongosssss Aug 9, 2025
48aea92
fix: hide Desktop User Guide menu item in web builds (#4828)
vivekchavan14 Aug 9, 2025
79b4c78
fix: hide More menu when no submenu items are visible (#4837)
vivekchavan14 Aug 9, 2025
8f289c8
Fix Alt-Click-Drag-Copy of Subgraph Nodes (#4879)
christian-byrne Aug 9, 2025
b745f53
[feat] Replace manual clamp function with lodash (#4874)
christian-byrne Aug 9, 2025
ffc812a
[refactor] Remove unused omitBy function (#4886)
christian-byrne Aug 10, 2025
109542d
1.26.1 (#4889)
comfy-pr-bot Aug 10, 2025
c4912dc
[fix] Add bounds checking for clipspace indices to prevent paste erro…
christian-byrne Aug 10, 2025
8e357c4
[feat] Add PR creation automation command (#4892)
huchenlei Aug 10, 2025
d22d62b
[3d] initial version of 3d viewer (#3968)
jtydhr88 Aug 11, 2025
a1a8d48
[feat] Replace removeFromArray with lodash pull (#4906)
christian-byrne Aug 11, 2025
d0d13bf
[ci] standardize release notes format in release commands (#4912)
christian-byrne Aug 11, 2025
71a4319
[feat] Make hotkey for exiting subgraphs configurable in user keybind…
christian-byrne Aug 11, 2025
2c215a6
Fix subgraph reroute serialization (#4911)
AustinMroz Aug 11, 2025
fbc6edd
[feat] Add red styling to Remove Slot context menu option (#4918)
christian-byrne Aug 11, 2025
505c242
[refactor] Replace stringOrEmpty with lodash toString (#4917)
christian-byrne Aug 11, 2025
90f5441
fix: Multiple links from reroute create single slot on SubgraphOutput…
christian-byrne Aug 11, 2025
8403bd0
minimap improve (#4679)
jtydhr88 Aug 11, 2025
c7baf3c
[feat] Add knip for unused code detection (#4890)
huchenlei Aug 12, 2025
7972550
[fix] Fix link deletion from middle button when connected to reroute …
christian-byrne Aug 12, 2025
2138cee
[fix] ensure consistent link release behavior for subgraph IO nodes (…
christian-byrne Aug 12, 2025
a055ec2
[bugfix] Fix queue not updating with completed task images (#4936)
weberjc Aug 12, 2025
dc444fa
Feature/arabic translation (#4916)
Aug 12, 2025
9a70e92
1.26.2 (#4939)
comfy-pr-bot Aug 12, 2025
9c31d70
Add automatic trackpad / mouse sensing (#4913)
webfiltered Aug 12, 2025
1cf8087
[ci] Optimize ESLint performance with caching and generated file excl…
christian-byrne Aug 12, 2025
d068b83
Feat: add duplicate workflow on sidebar (#4895)
ssidharth010 Aug 12, 2025
c42c931
[refactor] Replace lodash with es-toolkit (#4935)
christian-byrne Aug 12, 2025
24a386c
fix: add cleanup for graphChanged listener in useWorkflowPersistence …
christian-byrne Aug 12, 2025
17d7ba8
[ci] Add lint:fix:no-cache script for consistency (#4948)
christian-byrne Aug 12, 2025
db71365
Implement subgraph unpacking (#4840)
AustinMroz Aug 12, 2025
983ebb2
pricing update for MinimaxHailuoVideo node and Kling "kling-v2-1" mod…
bigcat88 Aug 12, 2025
ef1852d
gemini-2.5-pro and flash models; corrected prices (#4945)
bigcat88 Aug 12, 2025
eba0b42
Trigger updateSelectedItems on subgraph conversion (#4949)
AustinMroz Aug 13, 2025
39df4ac
[feat] Add Linux core dump to .gitignore (#4960)
snomiao Aug 13, 2025
1784e2b
[feat] Add alternative package manager lockfiles to .gitignore (#4961)
snomiao Aug 13, 2025
efc0431
Update side toolbar menu (#4946)
pythongosssss Aug 13, 2025
6566acb
Bundled subgraph fixes (#4964)
AustinMroz Aug 13, 2025
5e81343
show group self color in minimap (#4954)
jtydhr88 Aug 13, 2025
db1b81b
fix: Add guards for _listenerController.abort() calls in SubgraphNode…
christian-byrne Aug 13, 2025
4a3bd39
[feat] Restore group node conversion menu with deprecated label (#4967)
christian-byrne Aug 13, 2025
89c78b0
fix pricing for KlingImage2VideoNode (#4957)
bigcat88 Aug 14, 2025
5224c63
[fix] Prevent incompatible connections to SubgraphInputNode occupied …
christian-byrne Aug 14, 2025
1e41c6d
fix: Handle missing subgraph inputs gracefully during workflow import…
christian-byrne Aug 14, 2025
4ca6220
Refactor app menu items (#4665)
pythongosssss Aug 14, 2025
547af0e
feat: Add GTM feature summary step to release command (#4990)
christian-byrne Aug 15, 2025
7b228d6
[release] Increment version to 1.26.3 (#4995)
comfy-pr-bot Aug 15, 2025
9dbdc6a
Fix inconsistency on bypass from context menu (#4988)
AustinMroz Aug 15, 2025
a132dad
[test] Add tests for --disable-api-nodes release fetch skip functiona…
yoland68 Aug 15, 2025
7aaa0f0
fix: Correct traditional Chinese to simplified Chinese in translation…
comfyui-wiki Aug 15, 2025
7d5a4d4
[feat] Improve low quality rendering zoom threshold tooltip (#5009)
christian-byrne Aug 15, 2025
2ed1704
Translated Keyboard Shortcuts (#5007)
Myestery Aug 15, 2025
c90fd18
api_nodes: added prices for gpt-5 series models (#4958)
bigcat88 Aug 15, 2025
c303a3f
[fix] Complete traditional to simplified Chinese character conversion…
christian-byrne Aug 15, 2025
45cc6ca
Fix widget disconnection issue in subgraphs #4922 (#5015)
christian-byrne Aug 15, 2025
d18081a
fix: improve minimap subgraph navigation with graph UUID callback tra…
christian-byrne Aug 15, 2025
fdd8564
Deep copy subgraphs to clipboard, update nested ids on paste (#5003)
AustinMroz Aug 15, 2025
e9ddf29
[bugfix] Preserve nested subgraph widget values during serialization …
christian-byrne Aug 15, 2025
ec4ad5e
fix: issue #4121 (#5029)
arjansingh Aug 16, 2025
65785af
[release] Increment version to 1.26.4 (#5032)
comfy-pr-bot Aug 16, 2025
c78d03d
api_nodes: added prices for Vidu Video nodes (#5035)
bigcat88 Aug 16, 2025
7ab247a
Improve release command flow and GTM criteria (#5040)
christian-byrne Aug 16, 2025
88579c2
Update menu items with a active toggle state to not close menu when c…
pythongosssss Aug 17, 2025
69c660b
handle minimap cleanup called before map set (#5038)
comfyui-wiki Aug 17, 2025
d5d0aa5
[refactor] Refactor minimap initialization logic (#5052)
christian-byrne Aug 17, 2025
f0adb4c
[bugfix] Allow removeInput/removeOutput on nodes without graph refere…
christian-byrne Aug 17, 2025
4a189bd
Minor updates to subgraph breadcrumb item (#5060)
pythongosssss Aug 17, 2025
b1057f1
[fix] Resolve group node execution error when connecting to external …
christian-byrne Aug 17, 2025
ceac8f3
Modal Standardization (#4784)
viva-jinyi Aug 18, 2025
5a35562
[refactor] Migrate minimap to domain-driven renderer architecture (#5…
christian-byrne Aug 18, 2025
0daacfd
[fix] Restore ability to override onMouseDown in node subclasses (#5079)
christian-byrne Aug 18, 2025
194201e
[refactor] Migrate litegraph tests to centralized location (#5072)
christian-byrne Aug 18, 2025
efd9b04
[refactor] Organize all browser test assets into logical folders (#5058)
christian-byrne Aug 18, 2025
9e78558
[fix] Update title button tests after onMouseDown method refactor (#5…
christian-byrne Aug 18, 2025
a505aec
docs: Clarify extension terminology and dev server limitations (#5042)
simula-r Aug 18, 2025
29ae9b4
[fix] Rename viewer control components to prevent unplug warnings (#5…
benceruleanlu Aug 18, 2025
ba4c159
Add .git-blame-ignore-revs for cleaner git blame (#5078)
benceruleanlu Aug 18, 2025
75d7a37
Fix widgets added after previews on subgraph nodes (#5084)
AustinMroz Aug 18, 2025
7a1a2dd
fix: Make bottom panel tab titles reactive to language changes (#5077)
benceruleanlu Aug 18, 2025
727a349
Modal Component & Custom UI Components (#4908)
viva-jinyi Aug 19, 2025
451ef24
[feat] Add Storybook setup and NodePreview story (#4861)
snomiao Aug 19, 2025
30d48f2
feat: add a filter and check box to disable (#5014)
ssidharth010 Aug 19, 2025
7d2d006
Convert Group Nodes to Subgraph (#4972)
Myestery Aug 19, 2025
7d7c6a3
[feat] Enhanced auto-retry configuration for flaky tests (#5089)
snomiao Aug 19, 2025
321fe71
[release] Increment version to 1.26.5 (#5094)
comfy-pr-bot Aug 19, 2025
cf9847a
Remove PR checks workflows (#5099)
benceruleanlu Aug 19, 2025
2240645
[feat] Add Cloudflare Pages deployment for Playwright test reports (#…
snomiao Aug 19, 2025
28d74be
add onRemove invoke to removeWidget method (#5102)
christian-byrne Aug 19, 2025
6948172
[ci] Add caching support to format and knip commands (#5107)
christian-byrne Aug 19, 2025
deba8df
[chore] ignore ./claude/settings.json (#5110)
arjansingh Aug 19, 2025
8009700
refactor readme to suggest deployed reports (#5112)
christian-byrne Aug 19, 2025
97e5291
Update to latest version of workflow icon (#5103)
pythongosssss Aug 19, 2025
8d0a523
[refactor] Remove obsolete Kontext Edit Button (#5108)
christian-byrne Aug 20, 2025
5f349ed
chore: storybook-doc added (#5122)
viva-jinyi Aug 20, 2025
2407748
[feat] Add enhanced filter UI components with search and clear functi…
viva-jinyi Aug 20, 2025
337fb21
[ci] Add retry logic to wrangler page deploy step (#5118)
snomiao Aug 20, 2025
bcdb96a
Remove duplicate semantic labeling from issue templates (#5114)
benceruleanlu Aug 20, 2025
180f951
[fix] reposition TaskItem info #4996 (#5113)
arjansingh Aug 20, 2025
1e9d4c7
Fix/widget ordering consistency (#5106)
simula-r Aug 20, 2025
4db9e3d
Fix: Shift+Click+Drag from outputs with Subgraph outputs (#5115)
DrJKL Aug 20, 2025
e789227
Add support for high-resolution wheel events (#5092)
webfiltered Aug 20, 2025
20b0927
Fix CopyToClipboard Issue (#5109)
Myestery Aug 20, 2025
4e8f665
[bugfix] Remove empty title field from issue templates (#5136)
benceruleanlu Aug 20, 2025
11f5439
[feat] Add comprehensive Storybook stories for custom UI components (…
viva-jinyi Aug 20, 2025
ea9cb3c
Allow Macs to zoom with Cmd + wheel (#5143)
webfiltered Aug 21, 2025
23b3914
[release] Increment version to 1.26.6 (#5148)
comfy-pr-bot Aug 21, 2025
84379d9
Feature/expanded minimap (#4902)
Myestery Aug 21, 2025
78c8dc3
[ci] Trigger CI action (#5157)
christian-byrne Aug 21, 2025
69a3239
Update SidebarIcon.vue (#5105)
Amorano Aug 22, 2025
882506d
Fix: Search Box Implementation for keyboard shortcut (#5140)
DrJKL Aug 22, 2025
aebdda3
api_nodes: added prices for ByteDance Image nodes (#5152)
bigcat88 Aug 22, 2025
ca09374
[fix] #4468 gracefully handle Firebase auth failure (#5144)
arjansingh Aug 22, 2025
3169628
[fix] unignore Claude project settings.json (#5171)
arjansingh Aug 22, 2025
84e7102
Fix/selection toolbox reflow (#5158)
simula-r Aug 22, 2025
c752553
[ci] Make Chromatic and Playwright comment steps safe to fail (#5156)
snomiao Aug 23, 2025
5cc916b
[ci] Restrict chromatic workflow to version-bump-* PRs and manual tri…
snomiao Aug 23, 2025
95a1c86
[tests] update selection overlay tests after canvas migration (#5173)
christian-byrne Aug 23, 2025
1e0ba5c
[feat] update navigation mode default to legacy and improve display n…
christian-byrne Aug 23, 2025
926d8fe
[test] regenerate browser test baselines - clean slate (#5182)
christian-byrne Aug 23, 2025
6bf430b
feat: ✨ support frontend node description (originally @melMass) (#5187)
DrJKL Aug 24, 2025
a630caa
Enhanced custom icon support with tailwind (#5159)
pythongosssss Aug 25, 2025
f79a5dc
Fix HoverDissolveThumbnail layering issue preventing dissolve effect …
comfyui-wiki Aug 25, 2025
73f7e11
Cleanup: Potpourri PR of small changes that reduce the warning noise …
DrJKL Aug 25, 2025
ced62ca
ADR: Monorepo Conversion (#5199)
DrJKL Aug 25, 2025
50e0e29
[feat] Remove obsolete FirstTimeUIMessage component (#5201)
christian-byrne Aug 26, 2025
7d6e252
[feat] improve custom icon build script with TypeScript and error han…
christian-byrne Aug 26, 2025
42bc187
Merge remote-tracking branch 'origin/main' into vue-nodes-migration
benceruleanlu Aug 26, 2025
8646ca4
[ci] Complete implementation of safe-to-fail CI steps (#5210)
snomiao Aug 26, 2025
74b61ec
feat: Add dropdown list for additional tabs (#5046)
ssidharth010 Aug 26, 2025
62e06f4
[ci] Enhance CI/CD caching across all workflows (#5117)
snomiao Aug 26, 2025
9e8db61
fix: Allow for leading/trailing spaces when searching settings (#5193)
DrJKL Aug 26, 2025
48b1ebf
Add Gemini Image node static pricing (#5219)
Kosinkadink Aug 27, 2025
cd444b6
[bugfix] Fix refresh node definitions for subgraph nodes (#5222)
christian-byrne Aug 27, 2025
1b83d6b
Migration: pnpm (#5215)
DrJKL Aug 27, 2025
e8f0ec5
[fix] Correct WhatsNew popup arrow alignment with help center icon (#…
christian-byrne Aug 27, 2025
810f027
Move i18n workflow from single-PRs to release PRs (#5225)
snomiao Aug 27, 2025
e991926
[release] Increment version to 1.26.7 (#5227)
comfy-pr-bot Aug 27, 2025
1bdc190
[feat] Replace Claude loading GIF with ComfyUI logo in test workflow …
christian-byrne Aug 27, 2025
2018119
Fix/toolbox animation (#5197)
simula-r Aug 27, 2025
6b1584e
[docs] Standardize GTM summary format in release SOP (#5231)
christian-byrne Aug 27, 2025
b9f232e
feat: Add menu item to refresh nodes (#5226)
DrJKL Aug 27, 2025
d766cd6
feat: enhance release command with pnpm features (#5232)
christian-byrne Aug 27, 2025
f3d9f4c
fix: Fixed the problem of recalculating internal nodes after adding s…
yiqun12 Aug 27, 2025
29cbcb0
Merge remote-tracking branch 'origin/main' into merge-main-into-vue-n…
benceruleanlu Aug 28, 2025
4c9c665
update deps
benceruleanlu Aug 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Improve release command flow and GTM criteria (#5040)
- Reorganize steps to complete all analysis before execution
- Move Breaking Change Analysis to Step 3 (was Step 6)
- Move Dependency Analysis to Step 4 (was Step 7)
- Move GTM Feature Summary to Step 5 (was Step 16)
- Add stricter GTM criteria to avoid minor features
- Simplify PR data extraction to prevent timeouts
- Enhance Version Preview to suggest version based on analysis

These changes ensure critical analysis steps aren't skipped during
execution and provide clearer criteria for marketing-worthy features.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <[email protected]>
  • Loading branch information
christian-byrne and claude authored Aug 16, 2025
commit 7ab247aa1d54be31dca5c52fcdc8323c6c791360
278 changes: 150 additions & 128 deletions .claude/commands/create-frontend-release.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,50 +111,7 @@ echo "Last stable release: $LAST_STABLE"
```
7. **HUMAN ANALYSIS**: Review change summary and verify scope

### Step 3: Version Preview

**Version Preview:**
- Current: `${CURRENT_VERSION}`
- Proposed: Show exact version number
- **CONFIRMATION REQUIRED**: Proceed with version `X.Y.Z`?

### Step 4: Security and Dependency Audit

1. Run security audit:
```bash
npm audit --audit-level moderate
```
2. Check for known vulnerabilities in dependencies
3. Scan for hardcoded secrets or credentials:
```bash
git log -p ${BASE_TAG}..HEAD | grep -iE "(password|key|secret|token)" || echo "No sensitive data found"
```
4. Verify no sensitive data in recent commits
5. **SECURITY REVIEW**: Address any critical findings before proceeding?

### Step 5: Pre-Release Testing

1. Run complete test suite:
```bash
npm run test:unit
npm run test:component
```
2. Run type checking:
```bash
npm run typecheck
```
3. Run linting (may have issues with missing packages):
```bash
npm run lint || echo "Lint issues - verify if critical"
```
4. Test build process:
```bash
npm run build
npm run build:types
```
5. **QUALITY GATE**: All tests and builds passing?

### Step 6: Breaking Change Analysis
### Step 3: Breaking Change Analysis

1. Analyze API changes in:
- Public TypeScript interfaces
Expand All @@ -169,7 +126,7 @@ echo "Last stable release: $LAST_STABLE"
3. Generate breaking change summary
4. **COMPATIBILITY REVIEW**: Breaking changes documented and justified?

### Step 7: Analyze Dependency Updates
### Step 4: Analyze Dependency Updates

1. **Check significant dependency updates:**
```bash
Expand All @@ -195,7 +152,117 @@ echo "Last stable release: $LAST_STABLE"
done
```

### Step 8: Generate Comprehensive Release Notes
### Step 5: Generate GTM Feature Summary

1. **Collect PR data for analysis:**
```bash
# Get list of PR numbers from commits
PR_NUMBERS=$(git log ${BASE_TAG}..HEAD --oneline --no-merges --first-parent | \
grep -oE "#[0-9]+" | tr -d '#' | sort -u)

# Save PR data for each PR
echo "[" > prs-${NEW_VERSION}.json
first=true
for PR in $PR_NUMBERS; do
[[ "$first" == true ]] && first=false || echo "," >> prs-${NEW_VERSION}.json
gh pr view $PR --json number,title,author,body,labels 2>/dev/null >> prs-${NEW_VERSION}.json || echo "{}" >> prs-${NEW_VERSION}.json
done
echo "]" >> prs-${NEW_VERSION}.json
```

2. **Analyze for GTM-worthy features:**
```
<task>
Review these PRs to identify features worthy of marketing attention.

A feature is GTM-worthy if it meets ALL of these criteria:
- Introduces a NEW capability users didn't have before (not just improvements)
- Would be a compelling reason for users to upgrade to this version
- Can be demonstrated visually or has clear before/after comparison
- Affects a significant portion of the user base

NOT GTM-worthy:
- Bug fixes (even important ones)
- Minor UI tweaks or color changes
- Performance improvements without user-visible impact
- Internal refactoring
- Small convenience features
- Features that only improve existing functionality marginally

For each GTM-worthy feature, note:
- PR number, title, and author
- Media links from the PR description
- One compelling sentence on why users should care

If there are no GTM-worthy features, just say "No marketing-worthy features in this release."
</task>

PR data: [contents of prs-${NEW_VERSION}.json]
```

3. **Generate GTM notification:**
```bash
# Save to gtm-summary-${NEW_VERSION}.md based on analysis
# If GTM-worthy features exist, include them with testing instructions
# If not, note that this is a maintenance/bug fix release

# Check if notification is needed
if grep -q "No marketing-worthy features" gtm-summary-${NEW_VERSION}.md; then
echo "✅ No GTM notification needed for this release"
echo "📄 Summary saved to: gtm-summary-${NEW_VERSION}.md"
else
echo "📋 GTM summary saved to: gtm-summary-${NEW_VERSION}.md"
echo "📤 Share this file in #gtm channel to notify the team"
fi
```

### Step 6: Version Preview

**Version Preview:**
- Current: `${CURRENT_VERSION}`
- Proposed: Show exact version number based on analysis:
- Major version if breaking changes detected
- Minor version if new features added
- Patch version if only bug fixes
- **CONFIRMATION REQUIRED**: Proceed with version `X.Y.Z`?

### Step 7: Security and Dependency Audit

1. Run security audit:
```bash
npm audit --audit-level moderate
```
2. Check for known vulnerabilities in dependencies
3. Scan for hardcoded secrets or credentials:
```bash
git log -p ${BASE_TAG}..HEAD | grep -iE "(password|key|secret|token)" || echo "No sensitive data found"
```
4. Verify no sensitive data in recent commits
5. **SECURITY REVIEW**: Address any critical findings before proceeding?

### Step 8: Pre-Release Testing

1. Run complete test suite:
```bash
npm run test:unit
npm run test:component
```
2. Run type checking:
```bash
npm run typecheck
```
3. Run linting (may have issues with missing packages):
```bash
npm run lint || echo "Lint issues - verify if critical"
```
4. Test build process:
```bash
npm run build
npm run build:types
```
5. **QUALITY GATE**: All tests and builds passing?

### Step 9: Generate Comprehensive Release Notes

1. Extract commit messages since base release:
```bash
Expand Down Expand Up @@ -257,7 +324,7 @@ echo "Last stable release: $LAST_STABLE"
- Ensure consistent bullet format: `- Description (#PR_NUMBER)`
5. **CONTENT REVIEW**: Release notes follow standard format?

### Step 9: Create Version Bump PR
### Step 10: Create Version Bump PR

**For standard version bumps (patch/minor/major):**
```bash
Expand Down Expand Up @@ -303,7 +370,7 @@ echo "Workflow triggered. Waiting for PR creation..."
```
4. **PR REVIEW**: Version bump PR created with standardized release notes?

### Step 10: Critical Release PR Verification
### Step 11: Critical Release PR Verification

1. **CRITICAL**: Verify PR has "Release" label:
```bash
Expand All @@ -325,15 +392,15 @@ echo "Workflow triggered. Waiting for PR creation..."
```
7. **FINAL CODE REVIEW**: Release label present and no [skip ci]?

### Step 11: Pre-Merge Validation
### Step 12: Pre-Merge Validation

1. **Review Requirements**: Release PRs require approval
2. Monitor CI checks - watch for update-locales
3. **CRITICAL WARNING**: If update-locales adds [skip ci], the release workflow won't trigger!
4. Check no new commits to main since PR creation
5. **DEPLOYMENT READINESS**: Ready to merge?

### Step 12: Execute Release
### Step 13: Execute Release

1. **FINAL CONFIRMATION**: Merge PR to trigger release?
2. Merge the Release PR:
Expand Down Expand Up @@ -366,7 +433,7 @@ echo "Workflow triggered. Waiting for PR creation..."
gh run watch ${WORKFLOW_RUN_ID}
```

### Step 13: Enhance GitHub Release
### Step 14: Enhance GitHub Release

1. Wait for automatic release creation:
```bash
Expand Down Expand Up @@ -394,7 +461,7 @@ echo "Workflow triggered. Waiting for PR creation..."
gh release view v${NEW_VERSION}
```

### Step 14: Verify Multi-Channel Distribution
### Step 15: Verify Multi-Channel Distribution

1. **GitHub Release:**
```bash
Expand Down Expand Up @@ -432,7 +499,7 @@ echo "Workflow triggered. Waiting for PR creation..."

4. **DISTRIBUTION VERIFICATION**: All channels published successfully?

### Step 15: Post-Release Monitoring Setup
### Step 16: Post-Release Monitoring Setup

1. **Monitor immediate release health:**
```bash
Expand Down Expand Up @@ -508,88 +575,43 @@ echo "Workflow triggered. Waiting for PR creation..."

4. **RELEASE COMPLETION**: All post-release setup completed?

### Step 16: Generate GTM Feature Summary
### Step 17: Create Release Summary

1. **Extract and analyze PR data:**
1. **Create comprehensive release summary:**
```bash
echo "📊 Checking for marketing-worthy features..."

# Extract all PR data inline
PR_DATA=$(
PR_LIST=$(git log ${BASE_TAG}..HEAD --grep="Merge pull request" --pretty=format:"%s" | grep -oE "#[0-9]+" | tr -d '#' | sort -u)

echo "["
first=true
for PR in $PR_LIST; do
[[ "$first" == true ]] && first=false || echo ","
gh pr view $PR --json number,title,author,body,files,labels,closedAt 2>/dev/null || continue
done
echo "]"
)

# Save for analysis
echo "$PR_DATA" > prs-${NEW_VERSION}.json
```
cat > release-summary-${NEW_VERSION}.md << EOF
# Release Summary: ComfyUI Frontend v${NEW_VERSION}

2. **Analyze for GTM-worthy features:**
```
<task>
Review these PRs to identify if ANY would interest a marketing/growth team.

Consider if a PR:
- Changes something users directly interact with or experience
- Makes something noticeably better, faster, or easier
- Introduces capabilities users have been asking for
- Has visual assets (screenshots, GIFs, videos) that could be shared
- Tells a compelling story about improvement or innovation
- Would make users excited if they heard about it

Many releases contain only technical improvements, bug fixes, or internal changes -
that's perfectly normal. Only flag PRs that would genuinely interest end users.

If you find marketing-worthy PRs, note:
- PR number, title, and author
- Any media links from the description
- One sentence on why it's worth showcasing

If nothing is marketing-worthy, just say "No marketing-worthy features in this release."
</task>

PR data: [contents of prs-${NEW_VERSION}.json]
```
**Released:** $(date)
**Type:** ${VERSION_TYPE}
**Duration:** ~${RELEASE_DURATION} minutes
**Release Commit:** ${RELEASE_COMMIT}

3. **Generate GTM notification (only if needed):**
```
If there are marketing-worthy features, create a message for #gtm with:

🚀 Frontend Release v${NEW_VERSION}

Timeline: Available now in nightly, ~2-3 weeks for core

Features worth showcasing:
[List the selected PRs with media links and authors]

Testing: --front-end-version ${NEW_VERSION}

If there are NO marketing-worthy features, generate:
"No marketing-worthy features in v${NEW_VERSION} - mostly internal improvements and bug fixes."
```
## Metrics
- **Commits Included:** ${COMMITS_COUNT}
- **Contributors:** ${CONTRIBUTORS_COUNT}
- **Files Changed:** ${FILES_CHANGED}
- **Lines Added/Removed:** +${LINES_ADDED}/-${LINES_REMOVED}

4. **Save the output:**
```bash
# Claude generates the GTM summary and saves it
# Save to gtm-summary-${NEW_VERSION}.md

# Check if notification is needed
if grep -q "No marketing-worthy features" gtm-summary-${NEW_VERSION}.md; then
echo "✅ No GTM notification needed for this release"
echo "📄 Summary saved to: gtm-summary-${NEW_VERSION}.md"
else
echo "📋 GTM summary saved to: gtm-summary-${NEW_VERSION}.md"
echo "📤 Share this file in #gtm channel to notify the team"
fi
## Distribution Status
- ✅ GitHub Release: Published
- ✅ PyPI Package: Available
- ✅ npm Types: Available

## Next Steps
- Monitor for 24-48 hours
- Address any critical issues immediately
- Plan next release cycle

## Files Generated
- \`release-notes-${NEW_VERSION}.md\` - Comprehensive release notes
- \`post-release-checklist.md\` - Follow-up tasks
- \`gtm-summary-${NEW_VERSION}.md\` - Marketing team notification
EOF
```

2. **RELEASE COMPLETION**: All steps completed successfully?

## Advanced Safety Features

### Rollback Procedures
Expand Down