Repository navigation
feat(models): monitor Hugging Face changes and unify updates - #582
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a0e7b375fc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4d835d8d1d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <button className="w-full p-3 text-left" onClick={() => select(item.location.id)} onDoubleClick={() => openInspector(item.location.id)}><h3 className="truncate font-medium" title={presentation.name}>{presentation.name}</h3><p className="mt-1 truncate text-xs text-gray-300">{remote?.versionName || 'Local model'}</p><p className="mt-1 truncate text-xs text-gray-500">{presentation.baseModel || modelKindLabel(item.location.sourceKind)} · {formatBytes(item.location.size)}</p></button> | ||
| <ModelUsagePanel item={item} compact /> | ||
| {updates > 0 && <button className="mx-3 mb-3 text-xs text-cyan-300 hover:underline" onClick={() => select(item.location.id, true)}>{updates} new release{updates === 1 ? '' : 's'}</button>} | ||
| {updates > 0 && <button className="mx-3 mb-3 text-xs text-cyan-300 hover:underline" onClick={() => select(item.location.id, true)}>{updates} new update{updates === 1 ? '' : 's'}</button>} |
There was a problem hiding this comment.
Open the provider-bound copy from update badges
When a byte-identical model's Civitai or Hugging Face binding exists only on a secondary copy, modelUpdateCounts now shows its unread updates on the primary copy's card, but this handler still selects that unbound primary location. Consequently ModelVersionLinks and HuggingFaceModelPanel derive no watch from the selected location, so clicking “new update” reveals nothing until the user manually chooses the linked copy. Resolve the copy containing the unread provider watch before opening the details.
Useful? React with 👍 / 👎.
4d835d8 to
1d71e71
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1d71e71e2a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
063d0aa to
aa10369
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa103698db
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const failures = selectedModels.filter((model) => model.locationIds.some((id) => failed.has(id))).length; | ||
| const failedLocationIds = locationIds.filter((id) => selectedModels.some((model) => model.locationIds.includes(id) && model.locationIds.some((copyId) => failed.has(copyId)))); | ||
| const hasHF = selectedIds.some((id) => state.catalog.locations.find((location) => location.id === id)?.huggingFace); | ||
| const message = locationIds.length === 1 ? `${initialName}: ${cancelled ? 'check stopped' : failures ? 'check failed' : updated ? hasHF ? 'new updates available — see the provider links on this model' : 'new versions available — see the Civitai links on this model' : hasHF ? 'no unread new updates' : 'no unread new versions'}.` : `${cancelled ? 'Stopped. ' : ''}${updated} model${updated === 1 ? '' : 's'} with unread updates · ${selectedModels.length - updated} caught up${failures ? ` · ${failures} could not be checked` : ''}.`; |
There was a problem hiding this comment.
Exclude failed models from the caught-up total
When a batch check cannot reach either provider for a model that has no previously unread events, updated is false while failures is true, but this message still includes that model in selectedModels.length - updated. The result can say 1 caught up · 1 could not be checked, even though no successful check established that it is current; subtract failed models from the caught-up count.
Useful? React with 👍 / 👎.
aa10369 to
3081979
Compare
Hugging Face bindings can now be checked for changes alongside Civitai. A linked file changing, a new
.safetensorsappearing in the watched folder, or the linked file disappearing creates an HF event. Catalog, With updates and What's new expose both providers, while the navigation badge counts each local logical model once.This is PR 4 of the Model Manager expansion, based on #581. Stack #580 contains #578 → #579 → #581 → #582, with this PR at position 4.
Behavior
Validation
git diff --checkpassed.docs/MODEL-MANAGER-SMOKE.md.