feat(title-bar): make download starts + finishes obvious in the tray (#558)#562
Merged
Conversation
…558) When downloads start the tray now flashes once and the badge pulses while in flight (subtle accent ring + scale bounce). When everything finishes and the user hasn't opened the popup yet, the tray switches to a success-coloured has-unseen state with a Check + count badge so the completion stays visible until they look. Opening the downloads popup acknowledges all finished entries and the tray returns to its idle state. Pure title-bar renderer change. Wires through useTitleBarMenus' existing onDownloadsChanged stream + onMenuOpened({menu:'downloads'}). Honours prefers-reduced-motion. First downloads-changed push is treated as already-acknowledged so a window opening mid-flow doesn't paint a stale unseen indicator. Amp-Thread-ID: https://ampcode.com/threads/T-019e2e09-dcf6-75eb-b31a-b9a9825fc315 Co-authored-by: Amp <amp@ampcode.com>
Flips the createdAt sort in both DownloadsView surfaces so the most recently kicked-off download surfaces at the top of the list. Active and terminal entries still share one slot so a download that transitions completed / cancelled keeps its position rather than jumping buckets. Amp-Thread-ID: https://ampcode.com/threads/T-019e2e09-dcf6-75eb-b31a-b9a9825fc315 Co-authored-by: Amp <amp@ampcode.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #558.
Problem
When downloads start in the title-bar tray today the only signal is a small numeric badge appearing next to the icon. Once the queue empties the badge vanishes - even if downloads completed while the user wasn't looking and they never opened the popup. Per #558, both events should be visually obvious.
Change
Pure title-bar renderer change layered on top of the existing onDownloadsChanged stream. Three new states + a clear acknowledgement gesture:
Opening the downloads popup (onMenuOpened({menu:'downloads'})) acknowledges every current
ecent URL, so the unseen indicator clears the moment the user looks at it. Already-acknowledged URLs that drop out of
ecent are pruned so the seen-set doesn't grow forever.
The first downloads-changed push that arrives after
eady() is treated as already-acknowledged so a window opening mid-flow doesn't paint a stale unseen indicator for downloads that finished before this window even existed.
prefers-reduced-motion short-circuits all three keyframes - the static accent / success border tints still convey the state without animation.
Files
src/renderer/src/comfyTitleBar/useTitleBarMenus.ts- owns the seen-set +downloadsStartedAtref +acknowledgeRecent()+ingestDownloadsState()diff.src/renderer/src/comfyTitleBar/TitleBarApp.vue- three new:classbindings on the tray, separateis-unseenbadge slot, all CSS keyframes + reduced-motion guard.src/renderer/src/lib/i18nMessages.ts- addstitleBar.downloadsCompleteUnseen(plural) used as the tooltip / aria-label in the unseen state.src/renderer/src/comfyTitleBar/TitleBarApp.test.ts- updates the existingrecent-only test (now exercises the first-push acknowledgement path) and adds three new specs covering the unseen indicator, the popup-open acknowledgement, and the started flash.Verification
pnpm run typecheck?pnpm run lint?pnpm run build?pnpm run test? (940 passing, 4 new title-bar specs)Generated with Amp: https://ampcode.com/threads/T-019e2e09-dcf6-75eb-b31a-b9a9825fc315