feat: expiry countdown, refresh links, CLI tabs, recently viewed #17
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: shekhar/windows-iso-downloader#17
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/ux-improvements"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
separam from signed URL; shows live countdown where available, falls back to static "24 hours" for consumer links (Microsoft doesn't includesein consumer CDN URLs)?force=trueon/proxybypasses cache and fetches fresh from Microsoft; Refresh button appears when link expires in <6h.claude/added to.gitignore;FileSizeremoved (Microsoft CDN does not return file size in API response)Test plan
Summary by CodeRabbit
ℹ️ Recent review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID:
c9218fed-bcfc-4be0-ba36-7b20b2b52d5a📥 Commits
Reviewing files that changed from the base of the PR and between
e3f34016c6andb2c9e2d874.📒 Files selected for processing (9)
.gitignoreCLAUDE.mdPROGRESS.mdbackend/main.gofrontend/src/components/CliCommand.tsxfrontend/src/components/RecentlyViewed.tsxfrontend/src/pages/EvalDetailPage.tsxfrontend/src/pages/HomePage.tsxfrontend/src/pages/ProductDetailPage.tsx📝 Walkthrough
Walkthrough
This PR implements frontend UX improvements for link refresh and product tracking. It adds backend support for cache-bypass refresh requests, introduces a CLI command component for multi-tool download commands with localStorage persistence, adds a recently-viewed product tracker, and integrates these across ProductDetailPage, EvalDetailPage, and HomePage. Documentation is updated to reflect in-progress status.
Changes
Frontend UX Improvements: Link Refresh, CLI Commands, and Recently Viewed Items
backend/main.go/proxyendpoint now acceptsforce=trueparameter to skip cache reads and negative-cache checks. Singleflight key is namespaced withlink:force:prefix during forced fetches. Logging distinguishes between forced and normal fetches with expiry time.frontend/src/components/CliCommand.tsxfrontend/src/components/RecentlyViewed.tsxRecentEntryinterface, persistence helpers,useCountdownhook,formatRemainingutility, and UI components for entry cards and grid display.frontend/src/pages/ProductDetailPage.tsxsequery parameter to extract expiry timestamp, manages countdown state with interval timer, replaces static expiry warning with dynamic row showing status and conditional refresh button (under 6 hours). NewhandleRefreshLinksfetches withforce=true, re-parses expiry, updates recent entry, and shows toasts. Swaps Aria2Tip for CliCommand. Records product as recently viewed on load.frontend/src/pages/EvalDetailPage.tsxfrontend/src/pages/HomePage.tsx.gitignore,CLAUDE.md,PROGRESS.mdSequence Diagram(s)
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
/proxyendpoint cache/worker flow; this PR adds cache-bypass logic to the same endpoint.Poem
✨ Finishing Touches
📝 Generate docstrings
🧪 Generate unit tests (beta)
feat/ux-improvementsComment
@coderabbitai helpto get the list of available commands and usage tips.