manifest.json index sha256 hashes are stale on main; no CI gate catches template manifest drift
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- github-actions, python
- Domain
- build-system, ci-cd
Research direction
Start with scripts/sync/sync_bundles.py and run it on a clean checkout to confirm the 13-line manifest diff. Compare .github/workflows/validate-manifests.yml with validate-blueprints.yml:65-73, then review version-check.yml and README.md:170. Done means the committed manifest matches generated hashes, template drift makes CI fail, and the README describes the actual gate.
Written by the indexing model from the issue text.
Description
Summary
packages/core/src/comfyui_workflow_templates_core/manifest.json on main records stale sha256 values for index.json and all 12 locale variants. Running the documented sync step on a pristine checkout of main — with no edits of any kind — produces a 13-line diff.
Reproduction
git clone https://github.com/Comfy-Org/workflow_templates
cd workflow_templates # currently at 5097de61
git status --porcelain # clean
python scripts/sync/sync_bundles.py
git diff --stat
# .../comfyui_workflow_templates_core/manifest.json | 26 +++++++++++-----------
The 13 entries whose hashes change:
index.json, index.ar.json, index.es.json, index.fa.json, index.fr.json, index.ja.json, index.ko.json, index.mcp.json, index.pt-BR.json, index.ru.json, index.tr.json, index.zh.json, index.zh-TW.json
Cause
https://github.com/Comfy-Org/workflow_templates/pull/1088 ("Archive Getting Started category and Reve templates") moved templates from templates/ into archived/ and edited all 13 templates/index.*.json files. The manifest hash for each of those is computed over the pip-filtered index that filter_index_for_pip produces (scripts/sync/sync_bundles.py:126-141), so moving templates out changes every one of them. The manifest committed in that PR does not reflect the final state of those files.
filter_index_for_pip is a pure deterministic JSON transform with no environment dependence, so this is genuine drift and not a Python-version artifact — reproduced locally on 3.12.
Why CI did not catch it
Neither manifest-related workflow actually compares committed state against generated state for templates:
.github/workflows/validate-manifests.ymlrunssync_bundles.pyfirst and then validates, so the manifest it checks is always the freshly generated one. It only detects orphaned templates/blueprints, never staleness..github/workflows/version-check.ymlalso re-runs the sync, but its commit step bails out unless the rootpyproject.tomlversion changed: "Root version unchanged; skipping commit (no version bump performed)". A PR that editstemplates/index.*.jsonwithout triggering a version bump therefore leaves the manifest stale onmain.
By contrast the blueprints path is gated — .github/workflows/validate-blueprints.yml:65-73 re-runs sync_blueprints.py and exit 1s on any diff. Templates have no equivalent check.
Note that README.md:170 states "This step must be run before committing; CI will fail if the manifest/bundles are out of sync", which is not what the workflows currently do for templates.
Impact
The published comfyui-workflow-templates-core package ships a manifest whose recorded sha256 for all 13 index files does not match the index files actually packaged, so any consumer that verifies checksums against the manifest fails on them.
Knock-on effect on unrelated PRs
Any PR that legitimately runs sync_bundles.py per the README picks up these 13 unrelated lines. https://github.com/Comfy-Org/workflow_templates/pull/1092 carries them for exactly this reason — they are not caused by that change.
Suggested fix
- Land a manifest-only refresh on
main(python scripts/sync/sync_bundles.py, commit just the manifest). - Add a staleness gate for templates mirroring
validate-blueprints.yml:65-73— re-runsync_bundles.pyand fail on a non-empty diff — so this cannot recur silently. Alternatively, drop the version-bump condition fromversion-check.yml's commit step so manifest changes are always committed back. - Either way, reconcile
README.md:170with the actual behaviour.
- Dominant language
- TypeScript
- Stars
- 1.5k
- Forks
- 270
- Avg merge
- 7h 23m
- Merged PRs (30d)
- 65
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Comfy-Org/workflow_templates
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Comfy-Org/workflow_templates#931 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 55/100
Comfy-Org/workflow_templates#1401 · 3 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
image_anima_lllite_image_inpainting: Painter mask references a [temp] file that is not shipped (FileNotFoundError)Possibly taken @lin-bot23 claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 42/100
Comfy-Org/workflow_templates#1392 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Comfy-Org/workflow_templates#1372 · 2 comments ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 1-2 days Newbie friendliness 15/100
Comfy-Org/workflow_templates#1331 · 2 comments ·
Maintainers usually reply within 1 day
All issues in Comfy-Org/workflow_templates
Similar issues
-
area: web
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
inabagumi/shinju-date#6823 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vercel-labs/ui#540 ·
Maintainers usually reply within 1 day
-
accepted ai-dev ai-implementing
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
livesport/homer#218 · 1 comment ·
Maintainers usually reply within 1 day
-
normalizePropName strips `#` characters from Figma property names instead of only the `#id` suffixOpen
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
figma/code-connect#419 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100