Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

Overview

  • Added progress tracking functionality for downloads and model states in the banner component
  • Implemented mechanisms to monitor and display download and model state progress

Details

  • Enhanced user experience by providing real-time progress updates
  • Integrated progress tracking for better visibility into download and model state processes

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 22, 2025

Warning

Rate limit exceeded

@ComputelessComputer has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 25 minutes and 42 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 6cf957d and e176f45.

📒 Files selected for processing (3)
  • apps/desktop/src/components/main/sidebar/banner/component.tsx
  • apps/desktop/src/components/main/sidebar/banner/index.tsx
  • apps/desktop/src/components/main/sidebar/banner/types.ts
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/progress-tracking-banner

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify
Copy link

netlify bot commented Dec 22, 2025

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit e176f45
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/6949295b1037da00083fd70d
😎 Deploy Preview https://deploy-preview-2470--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Dec 22, 2025

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit e176f45
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/6949295be2db6b0008fd2cb9
😎 Deploy Preview https://deploy-preview-2470--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Comment on lines +159 to +169
if (!globalShowBanner && !globalBannerTimer) {
globalBannerTimer = setTimeout(() => {
globalShowBanner = true;
setShowBanner(true);
globalBannerTimer = null;
}, BANNER_CHECK_DELAY_MS);
} else if (globalShowBanner) {
setShowBanner(true);
}, BANNER_CHECK_DELAY_MS);
}

return () => clearTimeout(timer);
return () => {};
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Memory leak: The cleanup function no longer clears the timer when the component unmounts. If the component unmounts before BANNER_CHECK_DELAY_MS expires, the timer will continue to run and call setShowBanner(true) on an unmounted component, causing a React warning and potential memory leak.

Fix:

return () => {
  if (globalBannerTimer) {
    clearTimeout(globalBannerTimer);
    globalBannerTimer = null;
  }
};

The global timer needs to be properly cleaned up to prevent the callback from executing after unmount.

Suggested change
if (!globalShowBanner && !globalBannerTimer) {
globalBannerTimer = setTimeout(() => {
globalShowBanner = true;
setShowBanner(true);
globalBannerTimer = null;
}, BANNER_CHECK_DELAY_MS);
} else if (globalShowBanner) {
setShowBanner(true);
}, BANNER_CHECK_DELAY_MS);
}
return () => clearTimeout(timer);
return () => {};
if (!globalShowBanner && !globalBannerTimer) {
globalBannerTimer = setTimeout(() => {
globalShowBanner = true;
setShowBanner(true);
globalBannerTimer = null;
}, BANNER_CHECK_DELAY_MS);
} else if (globalShowBanner) {
setShowBanner(true);
}
return () => {
if (globalBannerTimer) {
clearTimeout(globalBannerTimer);
globalBannerTimer = null;
}
};

Spotted by Graphite Agent

Fix in Graphite


Is this helpful? React 👍 or 👎 to let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants