Skip to content

changelog: add missing versions (v0.9.0-v0.14.0, v0.25.0, backport patches)#1158

Merged
comfyui-wiki merged 7 commits into
Comfy-Org:mainfrom
lin-bot23:changelog-missing-v2
Jun 19, 2026
Merged

changelog: add missing versions (v0.9.0-v0.14.0, v0.25.0, backport patches)#1158
comfyui-wiki merged 7 commits into
Comfy-Org:mainfrom
lin-bot23:changelog-missing-v2

Conversation

@lin-bot23

Copy link
Copy Markdown
Contributor

Summary

Adds missing changelog entries for versions that were released but not documented in the changelog.

Main versions added

  • v0.9.0 / v0.9.1 / v0.9.2 (mid-January)
  • v0.10.0 (late January)
  • v0.11.0 / v0.11.1 (late January)
  • v0.12.0 / v0.12.1 / v0.12.2 / v0.12.3 (early February)
  • v0.13.0 (mid-February)
  • v0.14.0 (mid-February)
  • v0.25.0 / v0.25.1 (latest release, mid-June)

Backport patch versions added

  • v0.18.3 / v0.18.4 / v0.18.5
  • v0.19.4 / v0.19.5
  • v0.20.2 / v0.20.3
  • v0.22.1 / v0.22.2 / v0.22.3
  • v0.24.1

Notes

  • v0.9.1 was a one-line hotfix, documented as a brief entry under v0.9.0
  • Backport patches (tag-only releases from git history) are documented as brief hotfix notes under their parent versions
  • Source: GitHub release notes and git commit history

@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds comprehensive release notes to changelog/index.mdx spanning v0.25.1 back through v0.9.0, synchronized across Japanese, Korean, and Simplified Chinese translations. Enhances the i18n pipeline to detect and preserve changelog version ordering through label-order drift tracking and strategy-aware serialization, ensuring release notes stay versioned correctly across translations. Minor spacing cleanups maintain changelog readability—we might say this PR gets the i18n of things right!

Changes

i18n Tooling for Block Label Ordering and Sync Status

Layer / File(s) Summary
Block hash label order parsing and drift detection
.github/scripts/i18n/README.md, .github/scripts/i18n/chunked-translate.ts
Adds internal parser for individual translationBlockHashes YAML entries (supporting quoted/unquoted labels), exports parseBlockHashLabelOrderFromFrontmatter() to extract stored label order, and exports blockHashLabelOrderDrifts() to detect when stored order drifts from canonical English order. Documentation clarifies descending semver ordering for changelog keys.
Changelog version parsing and canonical ordering
.github/scripts/i18n/chunked-translate.ts
Introduces parseChangelogVersion() to extract version segments, compareChangelogVersionsDesc() for descending semver comparison, and canonicalChangelogLabelOrder() to sort labels by version. Updates changelogLabelHash to hash canonical-order labels instead of raw concatenation.
Serialization and sync status with order-drift awareness
.github/scripts/i18n/chunked-translate.ts
Updates setChunkedTranslationMeta() and formatBlockHashesYaml() to accept explicit labelOrder parameter. Extends serializeChunkedDocument() to compute and apply canonical label order per strategy; serializeUpdateBlocksDocument() now builds blocks in version-descending order. Enhances getSectionSyncStatus() to parse stored label order, detect order drift as separate from hash misses, and trigger needsReserialize when canonical order differs from stored order.
Translation workflow checkpoint and final serialization
.github/scripts/i18n/translate-i18n.ts
writeChunkedCheckpoint() now accepts explicit strategy parameter and forwards it through to serializeChunkedDocument(). All checkpoint writes (frontmatter, per-block, final) and reserialization paths pass strategy consistently. didWork now treats needsReserialize as translation work, returning "translated" instead of "up-to-date" when order drift requires reserialization.

Changelog Release Notes Expansion across Languages

Layer / File(s) Summary
v0.25.x and v0.24.x release notes with translations
changelog/index.mdx, ja/changelog/index.mdx, ko/changelog/index.mdx, zh/changelog/index.mdx
Adds v0.25.0 (June 2026) featuring open-source model support (SeedVR2, Depth Anything 3, SCAIL-2, Bernini-R), new nodes (Segment Anything 3, Hash to String), partner node updates, and performance/stability fixes (Ideogram 4 fp8, 10-bit video, Flux Erase seed, Flux KV cache crash fix). Includes v0.25.1 Kling V3-Turbo entry and v0.24.1 Bria/seed/alpha partner subsection. All language variants updated with synchronized frontmatter metadata hashes.
v0.22.x–v0.20.x patch release notes with translations
changelog/index.mdx, ja/changelog/index.mdx, ko/changelog/index.mdx, zh/changelog/index.mdx
Inserts v0.22.1–v0.22.3 partner additions and workflow templates, v0.20.3 with partner node and bug fixes, v0.20.2 with partner node updates and model support improvements, across English and all translations. Spacing adjustments maintain visual separation between release entries.
v0.19.x release notes with translations
changelog/index.mdx, ja/changelog/index.mdx, ko/changelog/index.mdx, zh/changelog/index.mdx
Adds v0.19.5 and v0.19.4 with partner node updates and critical bug fixes (4K limit resolution correction), plus v0.19.2 with performance/memory improvements, text generation additions, and partner updates. Consistently updated across English and all translated variants with spacing separators.
v0.18.x–v0.9.0 historical release notes and spacing cleanup
changelog/index.mdx, ja/changelog/index.mdx, ko/changelog/index.mdx, zh/changelog/index.mdx
Inserts v0.18.5, v0.18.4, v0.18.3 with partner and stability updates, plus a substantial historical archive (~225 lines in English, proportionally mirrored in translations) from v0.14.0 through v0.9.0, each detailing model integrations, node features, API changes, and performance improvements. Translation metadata (hashes) synchronized across ja, ko, zh; spacing adjustments applied throughout changelog sections for consistent formatting. The changelog has arrived—release notes are now version-complete!

Possibly related PRs

  • Comfy-Org/docs#1159: Introduced the chunked i18n translation pipeline for heading_sections and update_blocks strategies; this PR extends that foundation by adding changelog version ordering and label-order drift detection to ensure release notes stay sorted correctly across all language translations.
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
✨ Simplify code
  • Create PR with simplified code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
changelog/index.mdx (3)

400-450: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Minor: Bullet-point formatting inconsistency.

Most sections use * for bullet points, but v0.19.2 (lines 426–427) and a few other older entries use -. While this doesn't break functionality, standardizing to one style (suggest *) would improve consistency. This is optional and can be deferred.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@changelog/index.mdx` around lines 400 - 450, The v0.19.2 Update block uses
`-` for bullet points in the "Performance & memory", "Text generation", "Bug
fixes", and "Partner nodes" subsections, while all other Update blocks
consistently use `*` for bullet points. Replace all `-` characters with `*` in
the v0.19.2 Update section to standardize the bullet-point formatting throughout
the changelog and maintain consistency with the rest of the document.

284-387: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Version ordering is reversed in the v0.20.x section—this "imp-airs" changelog readability! 🧌

The versions appear as: v0.20.1 (line 284), v0.20.2 (line 323), v0.20.3 (line 337), v0.20.0 (line 351). In a changelog, versions should be in descending order by patch number (newest/highest patch first), so v0.20.0 should appear before v0.20.1, not after v0.20.3.

Correct order should be: v0.20.3 → v0.20.2 → v0.20.1 → v0.20.0

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@changelog/index.mdx` around lines 284 - 387, The version entries in the
changelog are ordered incorrectly. Currently they appear as v0.20.1, v0.20.2,
v0.20.3, v0.20.0, but changelogs should list versions in descending order
(newest/highest patch first). Reorganize the four Update blocks by moving the
v0.20.0 block to the end so the correct order becomes v0.20.3, v0.20.2, v0.20.1,
v0.20.0. This ensures the changelog displays the most recent versions first for
better readability.

389-453: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Version ordering is also jumbled in the v0.19.x section.

Current order: v0.19.3 → v0.19.4 (new) → v0.19.5 (new) → v0.19.2 → v0.19.1 → v0.19.0

Correct descending order should be: v0.19.5 → v0.19.4 → v0.19.3 → v0.19.2 → v0.19.1 → v0.19.0

This breaks the expected structure of a changelog and may confuse users scanning for recent patches.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@changelog/index.mdx` around lines 389 - 453, The Update components in the
changelog are currently ordered as v0.19.3, v0.19.4, v0.19.5, v0.19.2, v0.19.1,
v0.19.0, which does not follow descending version order. Reorder all the Update
elements with their label attributes (v0.19.3, v0.19.4, v0.19.5, v0.19.2,
v0.19.1, v0.19.0) so they appear in descending sequence from newest to oldest:
v0.19.5, v0.19.4, v0.19.3, v0.19.2, v0.19.1, v0.19.0. Move the v0.19.5 Update
block to the top, followed by v0.19.4, v0.19.3, v0.19.2, v0.19.1, and v0.19.0 at
the bottom to restore the proper changelog structure.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@changelog/index.mdx`:
- Around line 400-450: The v0.19.2 Update block uses `-` for bullet points in
the "Performance & memory", "Text generation", "Bug fixes", and "Partner nodes"
subsections, while all other Update blocks consistently use `*` for bullet
points. Replace all `-` characters with `*` in the v0.19.2 Update section to
standardize the bullet-point formatting throughout the changelog and maintain
consistency with the rest of the document.
- Around line 284-387: The version entries in the changelog are ordered
incorrectly. Currently they appear as v0.20.1, v0.20.2, v0.20.3, v0.20.0, but
changelogs should list versions in descending order (newest/highest patch
first). Reorganize the four Update blocks by moving the v0.20.0 block to the end
so the correct order becomes v0.20.3, v0.20.2, v0.20.1, v0.20.0. This ensures
the changelog displays the most recent versions first for better readability.
- Around line 389-453: The Update components in the changelog are currently
ordered as v0.19.3, v0.19.4, v0.19.5, v0.19.2, v0.19.1, v0.19.0, which does not
follow descending version order. Reorder all the Update elements with their
label attributes (v0.19.3, v0.19.4, v0.19.5, v0.19.2, v0.19.1, v0.19.0) so they
appear in descending sequence from newest to oldest: v0.19.5, v0.19.4, v0.19.3,
v0.19.2, v0.19.1, v0.19.0. Move the v0.19.5 Update block to the top, followed by
v0.19.4, v0.19.3, v0.19.2, v0.19.1, and v0.19.0 at the bottom to restore the
proper changelog structure.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: fb7154ac-006e-429e-bc4d-251b724aa445

📥 Commits

Reviewing files that changed from the base of the PR and between 2fb1f0d and e179350.

📒 Files selected for processing (1)
  • changelog/index.mdx

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
changelog/index.mdx (2)

467-467: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix typo and formatting in v0.19.1 Ernie Image link.

Line 467 contains "Erine Image Text to Image" (missing 'r' in "Ernie" and double space before "Text"). Should be "Ernie Image Text to Image".

🔧 Proposed fix
-* [Erine Image  Text to Image](https://blog.comfy.org/p/ernie-image-day-0-support)
+* [Ernie Image Text to Image](https://blog.comfy.org/p/ernie-image-day-0-support)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@changelog/index.mdx` at line 467, In the changelog entry for v0.19.1 on line
467, correct the text "Erine Image  Text to Image" by fixing the typo in the
product name from "Erine" to "Ernie" and replace the double space between
"Image" and "Text" with a single space, resulting in "Ernie Image Text to
Image".

1010-1010: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Standardize v0.9.1 bullet point formatting to match file convention.

Line 1010 uses a dash (-) for the bullet point, whereas the rest of the changelog uses asterisks (*). For consistency and cleaner Markdown rendering, standardize to *.

🎨 Proposed fix
 **Bug Fix**
-- Bumped LTXAV memory estimation
+* Bumped LTXAV memory estimation
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@changelog/index.mdx` at line 1010, The changelog file uses inconsistent
bullet point formatting on line 1010. The "**Bug Fix**" entry uses a dash (`-`)
as the bullet point, while the rest of the changelog uses asterisks (`*`).
Replace the dash with an asterisk before "**Bug Fix**" to match the file's
established Markdown convention for consistency.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@changelog/index.mdx`:
- Line 467: In the changelog entry for v0.19.1 on line 467, correct the text
"Erine Image  Text to Image" by fixing the typo in the product name from "Erine"
to "Ernie" and replace the double space between "Image" and "Text" with a single
space, resulting in "Ernie Image Text to Image".
- Line 1010: The changelog file uses inconsistent bullet point formatting on
line 1010. The "**Bug Fix**" entry uses a dash (`-`) as the bullet point, while
the rest of the changelog uses asterisks (`*`). Replace the dash with an
asterisk before "**Bug Fix**" to match the file's established Markdown
convention for consistency.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 24a3211c-135b-4779-bf33-1f68062405aa

📥 Commits

Reviewing files that changed from the base of the PR and between 59b232f and fb724d4.

📒 Files selected for processing (1)
  • changelog/index.mdx

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ja/changelog/index.mdx`:
- Around line 103-142: The `ja/changelog/index.mdx` file has inconsistent date
formats in the `description` attributes of the `<Update>` components, mixing
English dates (e.g., "June 16, 2026") with Japanese dates (e.g., "2026年6月16日").
Standardize all description attributes to use the Japanese date format
(YYYY年M月D日) consistently throughout the file, converting approximately 12
English date outliers to match the predominant Japanese format for changelog
entries like v0.25.0, v0.25.1, v0.24.1, v0.23.0, v0.22.0, v0.22.1, and earlier
versions.

In `@ko/changelog/index.mdx`:
- Around line 103-142: Replace all date formats in the Korean changelog file to
use consistent Korean date format (YYYY년 M월 D일). Search through the entire file
for any Update components with English date formats (such as "May 20, 2026" or
"June 16, 2026") and convert them to their Korean equivalents. This issue
affects multiple sections including the v0.25.0, v0.25.1, v0.22.1, v0.22.3
updates and other entries throughout the file, particularly in the ranges
mentioned (lines 285-309 and 490-516), ensuring all date descriptions use the
standardized Korean format for localization consistency.

In `@zh/changelog/index.mdx`:
- Around line 103-142: The zh/changelog/index.mdx file has inconsistent date
formats in the Update component description attributes, with some dates in
English (like "June 16, 2026") and others in Chinese localized format (like
"2026年6月16日"). Audit all Update components throughout the file and standardize
all date formats to use Chinese localization. Specifically, convert the English
dates found in v0.25.0, v0.13.0, v0.11.1, and v0.3.66 to the Chinese format
(YYYY年M月D日 pattern), ensuring all version blocks maintain consistent localized
date formatting throughout the entire file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 21a03c2e-024c-4907-81a7-9dce2210b15c

📥 Commits

Reviewing files that changed from the base of the PR and between fb724d4 and fce47fd.

📒 Files selected for processing (3)
  • ja/changelog/index.mdx
  • ko/changelog/index.mdx
  • zh/changelog/index.mdx

Comment thread ja/changelog/index.mdx Outdated
Comment thread ko/changelog/index.mdx Outdated
Comment thread zh/changelog/index.mdx Outdated
- Introduced functions to parse block hash entries and maintain label order in frontmatter.
- Updated `formatBlockHashesYaml` to accept label order for consistent output.
- Implemented sorting for update blocks by version and added functionality to detect label order drifts.
- Adjusted serialization methods to accommodate new label order requirements.
- Updated documentation to reflect changes in translation block handling and order consistency.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
zh/changelog/index.mdx (1)

110-110: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

统一中文日期格式,避免中英混排。

这几处 description 仍是英文日期,和其余中文日期格式不一致。建议统一为 YYYY年M月D日(比如 2026年6月16日)。日期要同频,读者才不“日期”打结。

Also applies to: 939-939, 1016-1016, 1499-1499

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@zh/changelog/index.mdx` at line 110, The Update component descriptions
contain English date formats (like "June 16, 2026") which are inconsistent with
the Chinese date format used elsewhere in the document. Convert all description
attributes in the Update components at lines 110, 939, 1016, and 1499 from
English date format to unified Chinese date format following the pattern
YYYY年M月D日 (for example, "2026年6月16日" instead of "June 16, 2026"). This ensures
consistent date formatting throughout the changelog.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/scripts/i18n/chunked-translate.ts:
- Around line 99-102: The JSON.parse call on quoted[1] at line 101 can throw an
error when the regex matches a quoted key with invalid escape sequences, causing
the entire translation run to fail. Wrap the return statement in a try-catch
block so that if JSON.parse throws an exception, the function gracefully returns
null instead of crashing, maintaining consistency with the function's existing
null-handling contract.

---

Duplicate comments:
In `@zh/changelog/index.mdx`:
- Line 110: The Update component descriptions contain English date formats (like
"June 16, 2026") which are inconsistent with the Chinese date format used
elsewhere in the document. Convert all description attributes in the Update
components at lines 110, 939, 1016, and 1499 from English date format to unified
Chinese date format following the pattern YYYY年M月D日 (for example, "2026年6月16日"
instead of "June 16, 2026"). This ensures consistent date formatting throughout
the changelog.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: bffeab54-acdd-4d6d-872c-d99da0c67d04

📥 Commits

Reviewing files that changed from the base of the PR and between fce47fd and c6216e7.

📒 Files selected for processing (7)
  • .github/scripts/i18n/README.md
  • .github/scripts/i18n/chunked-translate.ts
  • .github/scripts/i18n/translate-i18n.ts
  • changelog/index.mdx
  • ja/changelog/index.mdx
  • ko/changelog/index.mdx
  • zh/changelog/index.mdx

Comment on lines +99 to +102
const quoted = line.match(/^\s{2}("(?:\\.|[^"\\])*"):\s*"?([a-f0-9]{8})"?\s*$/);
if (quoted) {
return { label: JSON.parse(quoted[1]!) as string, hash: quoted[2]! };
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verifies that the current regex path can feed invalid JSON-escaped labels into JSON.parse.
node - <<'NODE'
const line = '  "v0.25.1\\q": deadbeef';
const quoted = line.match(/^\s{2}("(?:\\.|[^"\\])*"):\s*"?([a-f0-9]{8})"?\s*$/);
if (!quoted) {
  console.log("Regex did not match test input.");
  process.exit(0);
}
try {
  JSON.parse(quoted[1]);
  console.log("No exception (unexpected for this test).");
} catch (e) {
  console.log("Throws as expected:", e.message);
}
NODE

Repository: Comfy-Org/docs

Length of output: 141


🏁 Script executed:

git ls-files | grep -i "chunked-translate"

Repository: Comfy-Org/docs

Length of output: 100


🏁 Script executed:

head -n 120 .github/scripts/i18n/chunked-translate.ts | tail -n +90

Repository: Comfy-Org/docs

Length of output: 1175


🏁 Script executed:

grep -n "parseBlockHashEntry" .github/scripts/i18n/chunked-translate.ts

Repository: Comfy-Org/docs

Length of output: 193


🏁 Script executed:

sed -n '96,130p' .github/scripts/i18n/chunked-translate.ts

Repository: Comfy-Org/docs

Length of output: 1105


🏁 Script executed:

sed -n '110,160p' .github/scripts/i18n/chunked-translate.ts

Repository: Comfy-Org/docs

Length of output: 1387


🏁 Script executed:

git log --oneline --all -S "JSON.parse" -- .github/scripts/i18n/chunked-translate.ts | head -5

Repository: Comfy-Org/docs

Length of output: 144


🏁 Script executed:

sed -n '115,150p' .github/scripts/i18n/chunked-translate.ts

Repository: Comfy-Org/docs

Length of output: 977


Guard JSON.parse against malformed escaped labels—prevent translation kaboom.

At line 101, JSON.parse can throw when the regex matches a quoted key with invalid escape sequences (e.g., \q). The malformed label slips past the regex but crashes on parse, derailing the entire translation run. Wrap the return in try-catch to gracefully return null instead, staying true to the function's null-handling contract already in place.

Suggested fix
   if (quoted) {
-    return { label: JSON.parse(quoted[1]!) as string, hash: quoted[2]! };
+    try {
+      return { label: JSON.parse(quoted[1]!) as string, hash: quoted[2]! };
+    } catch {
+      return null;
+    }
   }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const quoted = line.match(/^\s{2}("(?:\\.|[^"\\])*"):\s*"?([a-f0-9]{8})"?\s*$/);
if (quoted) {
return { label: JSON.parse(quoted[1]!) as string, hash: quoted[2]! };
}
const quoted = line.match(/^\s{2}("(?:\\.|[^"\\])*"):\s*"?([a-f0-9]{8})"?\s*$/);
if (quoted) {
try {
return { label: JSON.parse(quoted[1]!) as string, hash: quoted[2]! };
} catch {
return null;
}
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/scripts/i18n/chunked-translate.ts around lines 99 - 102, The
JSON.parse call on quoted[1] at line 101 can throw an error when the regex
matches a quoted key with invalid escape sequences, causing the entire
translation run to fail. Wrap the return statement in a try-catch block so that
if JSON.parse throws an exception, the function gracefully returns null instead
of crashing, maintaining consistency with the function's existing null-handling
contract.

…items.

Auto-localize Update description dates for ja/ko/zh, detect date/order drift for reserialize, and correct EN typo plus remaining mixed-format translation entries.
@comfyui-wiki comfyui-wiki merged commit a0acea7 into Comfy-Org:main Jun 19, 2026
7 checks passed
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.

2 participants