mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-06-01 00:56:50 +02:00
Since PR #36b6d8e moved tier-installation tracking from a client-side persistence model to a server-side derive-from-disk model, the card display only ever updates once every file in a tier is fully on disk. A user who picks Standard sees a blank card for the duration of the download (often hours for large tiers like Wikibooks). Worse, if some files finish before others, the card briefly shows a lower tier (e.g. Essential) before promoting to the selected tier on completion, which reads as "the system didn't accept my pick." Backend: compute a sibling `downloadingTierSlug` by unioning installed resource IDs with the IDs from active RunDownloadJob queue entries (waiting + active + delayed, failed deliberately excluded), then resolving the highest tier whose every resource is in that union. Set only when it differs from `installedTierSlug` — no point reporting "downloading Standard" when Standard is already fully installed. Frontend: unify the prominent corner badge logic in CategoryCard to a single `badgeTier` derived from selectedTier > downloadingTier > installedTier. Spinner + "(downloading)" suffix when in flight, checkmark for installed/selected. The pill row and lime border follow the same source. Verified on NOMAD3: backend correctly resolves the downloading tier from in-flight BullMQ jobs; CategoryCard shows the spinner badge immediately on Submit and switches to the checkmark variant when downloads complete. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| chat | ||
| file-uploader | ||
| inputs | ||
| layout | ||
| maps | ||
| markdoc | ||
| systeminfo | ||
| ActiveDownloads.tsx | ||
| ActiveEmbedJobs.tsx | ||
| ActiveModelDownloads.tsx | ||
| Alert.tsx | ||
| BouncingDots.tsx | ||
| BouncingLogo.tsx | ||
| BuilderTagSelector.tsx | ||
| CategoryCard.tsx | ||
| CountryPickerModal.tsx | ||
| CuratedCollectionCard.tsx | ||
| DebugInfoModal.tsx | ||
| DownloadURLModal.tsx | ||
| DynamicIcon.tsx | ||
| Footer.tsx | ||
| HorizontalBarChart.tsx | ||
| InfoTooltip.tsx | ||
| InstallActivityFeed.tsx | ||
| KbGuardrailModal.tsx | ||
| LoadingSpinner.tsx | ||
| MarkdocRenderer.tsx | ||
| ProgressBar.tsx | ||
| StorageProjectionBar.tsx | ||
| StyledButton.tsx | ||
| StyledModal.tsx | ||
| StyledSectionHeader.tsx | ||
| StyledSidebar.tsx | ||
| StyledTable.tsx | ||
| ThemeToggle.tsx | ||
| TierSelectionModal.tsx | ||
| UpdateServiceModal.tsx | ||
| WikipediaSelector.tsx | ||