Skip to content

Conversation

@0xdhrv
Copy link
Contributor

@0xdhrv 0xdhrv commented Nov 25, 2025

Description

This pull request introduces major new features and improvements to the Odesli Raycast extension, including history and favorites management, Windows platform support, and several codebase updates. The primary changes add the ability to track converted links, manage favorites, and provide a new UI for viewing and interacting with history. Additionally, the extension now supports Windows, and dependencies and configuration files have been updated for better compatibility and maintainability.

Fixes:

New Features:

  • Added history and favorites functionality, including a new history command and UI (src/history.tsx) for viewing, searching, and managing converted links and favorites. Users can copy links, favorite/unfavorite, delete items, and clear all history.
  • Implemented persistent storage for history and favorites using Raycast's LocalStorage, with helper methods for adding, toggling favorites, deleting, and clearing history (src/storage.ts).

Platform Support:

  • Added Windows OS support in the extension manifest (package.json), allowing the extension to run on both macOS and Windows.

Core Logic Improvements:

  • Enhanced the main conversion flow to save song details (title, artist, thumbnail) to history when a link is converted, and improved HUD messaging to display song info after conversion (src/index.ts).
  • Updated dependencies (Raycast API, TypeScript, ESLint, etc.) and configuration files for improved compatibility and development experience (package.json, eslint.config.mjs, tsconfig.json).

Maintenance and Cleanup:

  • Migrated ESLint config to new format and removed the old .eslintrc.json file for consistency.
  • Added a contributor to the extension manifest for proper attribution.

Checklist

- feat: update changelog for history and favourites support
- feat: add history management for Odesli links
- chore: update dependencies and add eslint config
- Initial commit
@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: odesli Issues related to the odesli extension platform: macOS platform: Windows labels Nov 25, 2025
@raycastbot
Copy link
Collaborator

raycastbot commented Nov 25, 2025

Thank you for your contribution! 🎉

🔔 @anned20 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.

You can expect an initial review within five business days.

@0xdhrv 0xdhrv marked this pull request as ready for review November 25, 2025 19:36
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Nov 25, 2025

Greptile Overview

Greptile Summary

This PR adds history and favorites functionality to the Odesli extension along with Windows platform support. The implementation is well-structured with proper separation of concerns (storage layer, UI component, and main conversion logic).

Key changes:

  • New View History command for managing converted links and favorites
  • Persistent storage using Raycast's LocalStorage API
  • Enhanced conversion flow to capture and display song metadata
  • Added Windows OS support in extension manifest
  • Updated dependencies and migrated to new ESLint config format

Issues found:

  • ESLint config uses incorrect import syntax (eslint/config should be eslint)
  • Missing metadata folder with screenshots for the new view command

Confidence Score: 4/5

  • This PR is safe to merge after fixing the ESLint config syntax error
  • Score reflects one critical syntax error in ESLint config that will cause build issues, plus missing metadata screenshots. The core functionality is well-implemented with proper error handling, storage management, and UI patterns following Raycast conventions.
  • Pay attention to extensions/odesli/eslint.config.mjs for the import syntax fix

Important Files Changed

File Analysis

Filename Score Overview
extensions/odesli/package.json 5/5 Added new view command for history, contributor, Windows support, and updated dependencies
extensions/odesli/src/history.tsx 5/5 New component for viewing/managing history and favorites with proper UI patterns
extensions/odesli/src/storage.ts 5/5 Implements LocalStorage-based history management with proper error handling
extensions/odesli/src/index.ts 5/5 Enhanced with history tracking and improved HUD messages showing song details
extensions/odesli/eslint.config.mjs 4/5 Migrated to new ESLint config format, but uses incorrect import syntax

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

8 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

Comment on lines +22 to 27
{
"name": "history",
"title": "View History",
"description": "View and manage your Odesli link conversion history and favorites.",
"mode": "view"
}
Copy link
Contributor

Choose a reason for hiding this comment

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

style: new View History command added as a view mode - check that the extension includes a metadata folder with screenshots per the extension guidelines

Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

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

Looks good to me, approved 🔥

@raycastbot raycastbot merged commit b3dcbb1 into raycast:main Nov 26, 2025
2 checks passed
@github-actions
Copy link
Contributor

Published to the Raycast Store:
https://raycast.com/annedouwe/odesli

@raycastbot
Copy link
Collaborator

🎉 🎉 🎉

We've rewarded your Raycast account with some credits. You will soon be able to exchange them for some swag.

@0xdhrv 0xdhrv deleted the ext/odesli branch November 27, 2025 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension fix / improvement Label for PRs with extension's fix improvements extension: odesli Issues related to the odesli extension platform: macOS platform: Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants