Comfy-Org / Comfy-Org/Comfy-Desktop

Snapshot restore: pin URL/direct-ref-installed protected packages during repair pass instead of skipping them

Open
#1,264 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
458
Forks
59
Avg merge
22h 18m
Merged PRs (30d)
45

Description

Follow-up to #1248. The compatible-mode repair pass (`repairNodeRequirements`) protects the torch stack and related packages (`torch`, `torchvision`, `torchaudio`, `torchsde`, `nvidia-*`, etc.) by pinning them as constraints so the additive pip install cannot move them.

Limitation shipped in #1248: packages that were installed from a direct URL reference cannot be expressed as a `name==version` constraint (`name==URL` is invalid), so they are currently **skipped** from the constraint set rather than pinned. This leaves a small window where a repair install could upgrade/downgrade a URL-installed protected package.

Proposed fix: resolve installed versions via `uv pip list --format=json` (or equivalent) at repair time and pin the *observed version* (`name==`) even for URL-installed packages, falling back to skip only if the package is genuinely unlisted.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at repairNodeRequirements and inspect the compatible-mode constraint handling described in #1248. Use uv pip list --format=json at repair time to check the observed versions of URL-installed protected packages; done means those versions become name==version constraints, while genuinely unlisted packages remain skipped.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.