Skip to content

Conversation

@snomiao
Copy link
Member

@snomiao snomiao commented Nov 6, 2025

Summary

Fixes missing translations for subscription.* keys that were added after the last automatic locale update.

Problem

The subscription.titleUnsubscribed key was added on Nov 1, 2025 (commit f2aea9c), but the last automatic locale update ran on Oct 30, 2025. The 1.32.2 release on Nov 6 did not include these translations because:

  1. The i18n workflow (.github/workflows/i18n-update-core.yaml) only runs on version-bump-* branches
  2. The subscription key was added after the last locale update
  3. No locale generation was triggered during the 1.32.2 release

As a result, the subscription.* keys exist in English (src/locales/en/main.json) but are missing from all other locales (zh, zh-TW, ru, ja, ko, fr, es, ar, tr).

Solution

This PR creates a version-bump-* branch to trigger the automatic i18n workflow, which will:

  1. Run pnpm collect-i18n to collect i18n strings from the UI
  2. Run pnpm locale to generate translations using OpenAI (lobe-i18n)
  3. Automatically commit the updated locale files

The workflow will generate translations for the missing keys:

  • subscription.titleUnsubscribed
  • Any other subscription-related keys that may be missing

Related

Testing

Once the i18n workflow completes, verify:

  • subscription.* keys are translated in all locales (zh, zh-TW, ru, ja, ko, fr, es, ar, tr)
  • Chinese translations use Simplified Chinese for zh locale (per .i18nrc.cjs guidelines)
  • Chinese translations use Traditional Chinese for zh-TW locale

Workflow Details

The i18n workflow is configured to:

  • Only run on PRs to main from version-bump-* branches
  • Use the OPENAI_API_KEY secret
  • Follow translation guidelines in .i18nrc.cjs (including Chinese character requirements)

┆Issue is synchronized with this Notion page by Unito

This commit triggers the i18n workflow to generate missing translations
for subscription.* keys that were added after the last locale update.

The subscription.titleUnsubscribed key was added in f2aea9c on Nov 1,
but the last locale update was on Oct 30 (a189e51).
@github-actions
Copy link

github-actions bot commented Nov 6, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/06/2025, 04:54:48 PM UTC

📈 Summary

  • Total Tests: 499
  • Passed: 466 ✅
  • Failed: 0
  • Flaky: 3 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 457 / ❌ 0 / ⚠️ 3 / ⏭️ 30
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

github-actions bot commented Nov 6, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/06/2025, 04:32:01 PM UTC

🔗 Links


🎨 Chromatic Visual Tests

🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Nov 6, 2025

Bundle Size Report

Summary

  • Raw size: 12.2 MB baseline 12.2 MB — ⚪ 0 B
  • Gzip: 2.49 MB baseline 2.49 MB — ⚪ 0 B
  • Brotli: 1.96 MB baseline 1.96 MB — ⚪ 0 B
  • Bundles: 58 current • 58 baseline

Category Glance
Vendor & Third-Party ⚪ 0 B (5.32 MB) · App Entry Points ⚪ 0 B (3.25 MB) · Other ⚪ 0 B (2.55 MB) · Graph Workspace ⚪ 0 B (792 kB) · Panels & Settings ⚪ 0 B (293 kB) · UI Components ⚪ 0 B (12.6 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.25 MB (baseline 3.25 MB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-Cdeizypm.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-D2940QdZ.js 2.87 MB 2.87 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-m2JLsAl3.js 382 kB 382 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Graph Workspace — 792 kB (baseline 792 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-BxYtfGP8.js 792 kB 792 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Views & Navigation — 8.18 kB (baseline 8.18 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-CvDum833.js 8.18 kB 8.18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Panels & Settings — 293 kB (baseline 293 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AboutPanel-DBUXot_1.js 10.3 kB 10.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CreditsPanel-ELjO8PJB.js 23 kB 23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ExtensionPanel-Duj00HSL.js 12.1 kB 12.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/KeybindingPanel-D5tJTifW.js 15.3 kB 15.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ServerConfigPanel-RZY6apx0.js 8.23 kB 8.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-0O6mq5to.js 24.3 kB 24.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BYaBy7dC.js 20.4 kB 20.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C3vygQN4.js 25.7 kB 25.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CbKYXyH0.js 22.7 kB 22.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCholIsI.js 25 kB 25 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DFX7vRkK.js 19.8 kB 19.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-INJLrcmT.js 31.3 kB 31.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-iR6BKRXe.js 23.7 kB 23.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-YjQmudNE.js 23.5 kB 23.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserPanel-Db6t2adE.js 7.94 kB 7.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
UI Components — 12.6 kB (baseline 12.6 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-d7iP36iS.js 11.3 kB 11.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-D2s8tnS2.js 1.26 kB 1.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Data & Services — 10.4 kB (baseline 10.4 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-EUnaA9E6.js 7.6 kB 7.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/serverConfigStore-BOo8M-7s.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Utilities & Hooks — 1.07 kB (baseline 1.07 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 5.32 MB (baseline 5.32 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-Bfb5Ofrh.js 3.22 MB 3.22 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-PESgPnbc.js 517 B 517 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-JDoAqkQm.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-Dvg9y4X0.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-SdQKVoRx.js 92.6 kB 92.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 2.55 MB (baseline 2.55 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/commands-B2KZRBmX.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Bw-ckyga.js 13.9 kB 13.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_NmM85I.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuozCW4W.js 14 kB 14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DGfVUJCR.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-dOJNDogK.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiE551e.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Fw7mvqSy.js 13.1 kB 13.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-FXnO1W4Q.js 13.2 kB 13.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B28vuueQ.js 58.7 kB 58.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B5DMAz5p.js 76.3 kB 76.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B9oeRB3u.js 66.2 kB 66.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BfxLm2q9.js 68.4 kB 68.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bqw7zi8p.js 92.9 kB 92.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CxXcIMmb.js 80.3 kB 80.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DbrkzQIr.js 70.6 kB 70.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DwpdJL5U.js 67.5 kB 67.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-mC3TQk_1.js 59.4 kB 59.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-3I1vPgv4.js 181 kB 181 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B2huPGKQ.js 190 kB 190 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BWugyUzd.js 215 kB 215 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-bXqu6Stq.js 194 kB 194 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CtB2M3sY.js 229 kB 229 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D-rCrn-T.js 200 kB 200 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D38DSnl1.js 179 kB 179 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DAsU52ON.js 192 kB 192 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DnGONaA_.js 196 kB 196 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

arjansingh and others added 8 commits November 6, 2025 03:34
## Summary

As the commit says, the model loaders were broken in cloud if you
enabled Vue Nodes (not a thing I think user does yet).

This fixes it by configuring the `WidgetSelectDropdown` to load so the
user load models like they would load a input or output asset.

## Review Focus

Probably `useAssetWidgetData` to make sure it's idomatic.

This part of
[assetsStore](https://github.com/Comfy-Org/ComfyUI_frontend/pull/6607/files#diff-18a5914c9f12c16d9c9c3a9f6d0e203a9c00598414d3d1c8637da9ca77339d83R158-R234)
as well.

## Screenshots

<img width="1196" height="1005" alt="Screenshot 2025-11-05 at 5 34
22 PM"
src="https://github.com/user-attachments/assets/804cd3c4-3370-4667-b606-bed52fcd6278"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6607-fix-use-WidgetSelectDropdown-for-models-2a36d73d36508143b185d06d736e4af9)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <[email protected]>
…6609)

## Summary
- Implement graceful handling of Vite preload errors that occur when
assets are deleted after new deployments
- Auto-reload when safe (no unsaved changes), show confirmation dialog
when user has unsaved work
- Add i18n support for user-friendly error messages

## Implementation Details
- Add `vite:preloadError` event listener in App.vue 
- Smart reload logic: check `app.vueAppReady` and
`workflowStore.activeWorkflow?.isModified`
- User confirmation dialog using existing `dialogService.confirm`
- Comprehensive i18n keys for title and message

## Background
This addresses the issue described in [Vite
documentation](https://vite.dev/guide/build.html#load-error-handling)
where users encounter import errors when hosting services delete old
assets after new deployments.

[screen-capture
(1).webm](https://github.com/user-attachments/assets/beed3b8e-6f32-4288-a560-55da391a79a1)

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

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6609-fix-Handle-vite-preloadError-for-graceful-deployment-asset-updates-2a36d73d365081a0b3adeac9fcd1e1dc)
by [Unito](https://www.unito.io)
## Summary

Use semantic tokens instead of colors

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6304-style-update-Vue-node-designs-to-use-semantic-tokens-2986d73d365081f69acce7793a218699)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <[email protected]>
## Summary

Re-adding some strings that got dropped in the merge.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6613-fix-re-add-translations-dropped-in-6564-2a36d73d3650818ca617cb5bddd11bc7)
by [Unito](https://www.unito.io)
…-Org/ComfyUI_frontend into version-bump-fix-subscription-i18n
The previous workflow used git stash/pop which could fail silently due to
the '|| true' clause, causing generated translations to be lost.

This commit simplifies the git operations by removing the stash/checkout/pop
sequence and instead directly checking out the branch and adding changes.
@christian-byrne christian-byrne added the claude-review Add to trigger a PR code review from Claude Code label Nov 7, 2025
git diff --staged --quiet || git commit -m "Update locales"
git push origin HEAD:${{ github.head_ref }}
if ! git diff --staged --quiet; then
git commit -m "Update locales"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[quality] high Priority

Issue: Potential error silencing with || true
Context: The removal of git stash pop || true removes error handling, but this is actually good as it was masking real failures
Suggestion: The new approach is better - explicit conditional commit logic is much clearer than git stash operations

git checkout -B ${{ github.head_ref }} origin/${{ github.head_ref }}
# Apply the stashed changes if any
git stash pop || true
git checkout ${{ github.head_ref }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[architecture] low Priority

Issue: Git workflow simplification is good but comments should explain the change
Context: Removing git stash/pop operations simplifies the workflow but the rationale could be better documented
Suggestion: The commit message explains it well, but adding a comment in the YAML would help future maintainers understand why this approach was chosen

Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comprehensive PR Review

This review is generated by Claude. It may not always be accurate, as with human reviewers. If you believe that any of the comments are invalid or incorrect, please state why for each. For others, please implement the changes in one way or another.

Review Summary

PR: [i18n] Fix missing subscription.* translations (#6610)
Impact: Minimal changes across 3 files - primarily workflow fixes and locale updates

Issue Distribution

  • Critical: 0
  • High: 1
  • Medium: 0
  • Low: 1

Category Breakdown

  • Architecture: 1 issue
  • Security: 0 issues
  • Performance: 0 issues
  • Code Quality: 1 issue

Key Findings

Architecture & Design

This PR appropriately addresses a specific i18n workflow issue where subscription translations were missing. The approach of creating trigger files and simplifying git operations in the workflow is sound architectural practice for CI/CD pipelines.

Workflow Improvements

The git workflow simplification removing stash/pop operations is a good improvement that eliminates potential failure points. The previous || true operator was masking failures that could result in lost translations.

Security Considerations

No security issues identified in the workflow changes. The changes maintain proper authentication and authorization patterns.

Performance Impact

Minimal performance impact - the workflow changes should actually be more reliable and potentially faster by removing unnecessary git operations.

Positive Observations

  • Clear problem identification and targeted solution
  • Good commit message documentation explaining the rationale
  • Minimal, focused changes that don't introduce unnecessary complexity
  • Proper use of conditional logic in GitHub Actions workflow

References

Next Steps

  1. Consider adding workflow documentation comments as suggested in inline feedback
  2. Monitor the i18n workflow execution to ensure translations are generated correctly
  3. Verify the trigger mechanism works as expected for future i18n updates

This is a comprehensive automated review focused on the i18n workflow improvements. The changes are minimal and targeted, addressing a specific operational issue.

@github-actions github-actions bot removed the claude-review Add to trigger a PR code review from Claude Code label Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants