-
-
Notifications
You must be signed in to change notification settings - Fork 16
Feat/improvements #156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/improvements #156
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
- Fix blob URL memory leak with BlobUrlManager that tracks and revokes URLs - Fix episode key collision using composite key (podcastName::title) - Fix array bounds check crash in downloadedEpisodes.removeEpisode - Add network request timeouts (30s default) to prevent UI hangs - Fix interval leak in opml.ts TimerNotice - Add localStorage size limits (4MB) to FeedCacheService with LRU eviction - Add null safety checks throughout to prevent Svelte reactivity errors - Add unmount safety flag to prevent state updates after component destroy
Svelte's two-way bind directive requires both getter and setter.
Use padding-bottom trick instead of aspect-ratio for better compatibility.
- Replace Moment.js in formatSeconds with native time calculation - Add formatDate utility with Moment.js-compatible format tokens - Update TemplateEngine to use native formatDate
- Parse podcast:chapters URL from RSS feeds (Podcasting 2.0) - Fetch and parse chapter JSON data - Add ChapterList component with current chapter highlighting - Click chapters to seek to that timestamp
Async operations in Svelte reactive statements can cause runtime errors.
$store syntax should only be used at component top-level or templates.
- Use min-content for row sizing instead of 1fr - Add flex constraints and overflow-y for scroll containment
- Fix saveTranscription to handle existing files gracefully instead of throwing - Fix nested folder creation by creating directories recursively - Limit chunk transcription concurrency to 3 to avoid API rate limits - Add comprehensive test coverage for TranscriptionService
- Fix getFeed() to set internal feed state for consistent episode metadata - Add findImageElement() to properly handle itunes:image namespace tags - Fix findItemByTitle() to use case-insensitive matching and avoid double parsing - Ensure getEpisodes() loads feed metadata before parsing episodes - Add comprehensive test coverage for FeedParser
Gate latestEpisodesStore subscription by viewState to prevent async
fetch completions from updating displayedEpisodes after EpisodeList
is destroyed. Also use getEpisodeKey for stable {#each} keys.
9f8fae4 to
ff18fbc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codex Review
Here are some automated review suggestions for this pull request.
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .replace(/D/g, day.toString()) | ||
| .replace(/HH/g, pad(hours)) | ||
| .replace(/H/g, hours.toString()) | ||
| .replace(/hh/g, pad(hours12)) | ||
| .replace(/h/g, hours12.toString()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sequential replacements corrupt formatted month/weekday strings
The new formatDate builds the formatted string by repeatedly calling .replace on the same value. After the month/weekday tokens are substituted with literal names earlier in the chain, the subsequent hour replacements here also run over that already-substituted text, so letters like h or m inside "March" or "Monday" get replaced with time digits. For example, formatDate(new Date('2024-03-01T10:00:00'), 'MMMM') returns Marc10 because the final hour replacement rewrites the h in the month name. Any template using month or weekday names now produces incorrect output depending on the current time.
Useful? React with 👍 / 👎.
|
🎉 This PR is included in version 2.15.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
No description provided.