Conversation
- fix: prevent infinite loop in profile selection by optimizing useEffect dependencies - docs: update screenshot filename in README from social-profile to at-profile - chore: rename and add profile metadata images - Initial commit
|
Thank you for your contribution! 🎉 🔔 @chrismessina @pedrecal you might want to have a look. You can use this guide to learn how to check out the Pull Request locally in order to test it. Due to our current reduced availability during summer, the initial review may take up to 10-15 business days. |
|
@greptile could you take a look? |
There was a problem hiding this comment.
Looking at this PR, I can see several good improvements to the at-profile extension:
What I see:
Positive changes:
- ✅ Fixed infinite loop: The main fix in
open-profile-form.tsxproperly guards against unnecessary state updates that were causing the infinite loop - ✅ Added screenshots: Proper metadata screenshots added for the Raycast Store
- ✅ Updated Raycast API: Bumped from v1.80.0 to v1.102.3 (latest)
- ✅ Proper changelog: Well-documented changes with clear sections
The key fix:
The infinite loop was caused by the useEffect dependency array including selectedApp and setSelectedApp, which would trigger the effect whenever selectedApp changed, potentially causing it to change again. The fix:
- Added a guard condition:
if (foundApp && selectedApp !== foundApp.value) - Removed
selectedAppandsetSelectedAppfrom the dependency array - This ensures the effect only runs when
initialApporappschange, not whenselectedAppchanges
Other improvements:
- Added WARP.md to .gitignore
- Updated README to reference the correct screenshot filename
- Package lock properly updated with new dependencies
- Added overrides for
tmpandexternal-editorpackages
This looks like a solid update that addresses the main issues while bringing the extension up to current standards. The infinite loop fix is particularly important for user experience.
There was a problem hiding this comment.
Greptile Summary
This review covers only the changes made since the last review (commit 7afa813), not the entire PR.
The changes in this commit show a significant expansion of the at-profile extension's functionality through modifications to package.json. The developer has added four new commands (manage-apps, history, export-apps, import-apps) along with a new tools section, suggesting this extension is evolving into a comprehensive profile management system. A new dependency js-yaml has been added to support import/export functionality, and the Raycast API has been updated to the latest version (^1.102.3).
The extension also shows a terminology shift with the command argument changing from 'site' to 'app', indicating a rebranding or conceptual change in how the extension categorizes platforms. The addition of the tools section aligns with Raycast's AI extension capabilities, though the PR description focuses on metadata screenshots and infinite loop fixes rather than these substantial functional changes.
Confidence score: 2/5
- This PR requires careful review due to potential security vulnerabilities and significant undocumented changes
- Score lowered due to removal of security overrides that previously patched vulnerabilities in transitive dependencies, plus major functional changes not mentioned in PR description
- Pay close attention to the package.json changes, particularly the removed overrides section and the extensive new functionality being added
1 file reviewed, no comments
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag. |
Description
Added the missing metadata screenshots and fixed an errant infinite loop!
Also updated the Raycast API to the latest.
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder