Linux Mint add .deb and resolve mac#4407
Conversation
…tion and automated download support
…artifact generation workflow
…electron-builder dependencies
…ktop across platforms
…S para estabilizar Linux/Windows
…me to summarize." This reverts commit d954004.
…me to summarize." This reverts commit c311928.
…me to summarize." This reverts commit 327b6c4.
descomprime y sube los instaladores de cada artefacto
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (3)
src/plugins/in-app-menu/renderer/TitleBar.tsx (1)
22-75: Move component definition below all imports.The
DownloadManagerTitleButtoncomponent is defined between import statements (lines 22–73 appear before thecacheNoArgsimport on line 75). This breaks standard module organization where all imports should precede component/function definitions.Suggested fix
Move the entire
DownloadManagerTitleButtoncomponent definition (lines 22–73) to after all import statements (after line 78).🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/in-app-menu/renderer/TitleBar.tsx` around lines 22 - 75, The DownloadManagerTitleButton component is declared before all imports (it appears above the import of cacheNoArgs); move the entire DownloadManagerTitleButton function/component definition so that all import statements (including import { cacheNoArgs } from '@/providers/decorators') come first, then place DownloadManagerTitleButton below them to restore proper module ordering and avoid interleaving definitions and imports.src/plugins/downloader/templates/download-manager.tsx (2)
292-319: Consider adding error handling to IPC invocations.The action functions invoke IPC methods without handling potential errors. While failures may be rare, unhandled promise rejections could cause silent failures. Consider adding
.catch()handlers or wrapping in try/catch for user feedback.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/downloader/templates/download-manager.tsx` around lines 292 - 319, The IPC invocation handlers (setConcurrent, togglePause, retryFailed, retrySingle, removeFailed, clearCompleted) call props.ipc.invoke(...) without any error handling; wrap each invoke call in a try/catch or append .catch(...) to handle rejected promises and surface errors (e.g., log via console.error or notify the user) so failures aren’t silently ignored. Update each function (setConcurrent, togglePause, retryFailed, retrySingle, removeFailed, clearCompleted) to await the invoke or attach a .catch that handles and logs the error and optionally shows user feedback.
137-148: Consider moving IPC setup intoonMount.The IPC listeners (lines 137–138) and initial state fetch (lines 146–148) are registered synchronously during component creation rather than inside
onMount. While this works in SolidJS, wrapping IPC setup inonMountis more conventional and ensures the component is fully initialized before receiving events.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/downloader/templates/download-manager.tsx` around lines 137 - 148, Move the IPC listener registration and initial state fetch into Solid's lifecycle by importing and using onMount: register props.ipc.on('download-manager-state', onStateUpdate) and props.ipc.on('download-manager-item-update', onItemUpdate) inside onMount, and also call props.ipc.invoke('download-manager-get-state') there (then call onStateUpdate with the returned DownloadManagerState); keep the props.ipc.removeAllListeners calls in the existing onCleanup to tear down listeners. This ensures props.ipc, onStateUpdate and onItemUpdate are set up when the component is mounted while download-manager-get-state remains invoked after mount.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/plugins/downloader/templates/download-manager.tsx`:
- Around line 209-218: The setTimeout created inside addToast can fire after the
component unmounts and cause state updates on an unmounted component; modify
addToast to store each timeout ID (e.g., in a Map or ref keyed by the toast id)
when you call setTimeout, and ensure removeToast clears its associated timeout
via clearTimeout(timeoutId) before removing from setToasts; additionally
register an onCleanup (or component unmount) handler that iterates stored
timeout IDs and calls clearTimeout for each to cancel pending timers. Ensure
references to addToast, removeToast, setToasts and Toast id are used to
correlate and clear timers.
---
Nitpick comments:
In `@src/plugins/downloader/templates/download-manager.tsx`:
- Around line 292-319: The IPC invocation handlers (setConcurrent, togglePause,
retryFailed, retrySingle, removeFailed, clearCompleted) call
props.ipc.invoke(...) without any error handling; wrap each invoke call in a
try/catch or append .catch(...) to handle rejected promises and surface errors
(e.g., log via console.error or notify the user) so failures aren’t silently
ignored. Update each function (setConcurrent, togglePause, retryFailed,
retrySingle, removeFailed, clearCompleted) to await the invoke or attach a
.catch that handles and logs the error and optionally shows user feedback.
- Around line 137-148: Move the IPC listener registration and initial state
fetch into Solid's lifecycle by importing and using onMount: register
props.ipc.on('download-manager-state', onStateUpdate) and
props.ipc.on('download-manager-item-update', onItemUpdate) inside onMount, and
also call props.ipc.invoke('download-manager-get-state') there (then call
onStateUpdate with the returned DownloadManagerState); keep the
props.ipc.removeAllListeners calls in the existing onCleanup to tear down
listeners. This ensures props.ipc, onStateUpdate and onItemUpdate are set up
when the component is mounted while download-manager-get-state remains invoked
after mount.
In `@src/plugins/in-app-menu/renderer/TitleBar.tsx`:
- Around line 22-75: The DownloadManagerTitleButton component is declared before
all imports (it appears above the import of cacheNoArgs); move the entire
DownloadManagerTitleButton function/component definition so that all import
statements (including import { cacheNoArgs } from '@/providers/decorators') come
first, then place DownloadManagerTitleButton below them to restore proper module
ordering and avoid interleaving definitions and imports.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3543ce55-e5b2-488c-903f-695b94b81e6d
📒 Files selected for processing (3)
src/plugins/downloader/templates/download-manager.tsxsrc/plugins/in-app-menu/renderer/TitleBar.tsxsrc/plugins/in-app-menu/titlebar.css
✅ Files skipped from review due to trivial changes (1)
- src/plugins/in-app-menu/titlebar.css
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@src/plugins/in-app-menu/renderer/TitleBar.tsx`:
- Around line 32-33: The JSX and event-listener lines in TitleBar.tsx (notably
the window.addEventListener('ytmd-download-badge-update', handleBadgeUpdate as
EventListener) and the JSX prop blocks around the other noted ranges) are
failing Prettier and jsx-sort-props checks; fix by running Prettier-style
formatting and reorder JSX props to match the project's jsx-sort-props rule
(typically alphabetical) for the components in this file, and normalize the
event listener call by removing or moving the type cast into a separate const
(e.g., const badgeListener: EventListener = handleBadgeUpdate;
window.addEventListener('ytmd-download-badge-update', badgeListener);) so the
expression is formatted cleanly; apply the same formatting/prop-sorting to the
blocks at the other mentioned ranges (45-46, 59-64).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 04ab9f58-a0a8-4684-9d10-3bf31c4e9cd8
📒 Files selected for processing (1)
src/plugins/in-app-menu/renderer/TitleBar.tsx
There was a problem hiding this comment.
♻️ Duplicate comments (2)
src/plugins/in-app-menu/renderer/TitleBar.tsx (2)
33-49:⚠️ Potential issue | 🟡 MinorThis JSX block still fails current lint/format rules.
The prop-order and Prettier issues in this block are still present (including the style object trailing comma / multiline SVG prop formatting). Please apply formatter + lint autofix for this section.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/in-app-menu/renderer/TitleBar.tsx` around lines 33 - 49, In TitleBar.tsx fix the failing lint/format issues in the JSX block: reorder props to satisfy prop-order (keep style last or as your project's convention), remove the trailing comma in the inline style object, and convert SVG attributes to JSX camelCase (e.g., strokeWidth, strokeLinecap, strokeLinejoin) and format the SVG props into a single consistent multiline style; then run Prettier/ESLint autofix (or your project's formatter) on this file to apply the remaining formatting fixes.
30-33:⚠️ Potential issue | 🟠 MajorLocalize and properly label this icon-only button.
Line 32 is still hardcoded (
"Gestor de Descargas"), and the control still lacks an explicit accessible name viaaria-label. Please reuse the existing download-manager translation string and apply it to bothtitleandaria-label.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/in-app-menu/renderer/TitleBar.tsx` around lines 30 - 33, The button in TitleBar.tsx that calls handleClick currently hardcodes title="Gestor de Descargas" and is missing an aria-label; replace the hardcoded text by reusing the existing download-manager translation string (the same translated value) for both the button's title and aria-label attributes so the icon-only control has an explicit accessible name and uses the existing i18n key.
🧹 Nitpick comments (1)
src/plugins/in-app-menu/renderer/TitleBar.tsx (1)
24-26: Remove debug logging from the click handler.Line 25 looks like leftover debug output in renderer code.
Suggested cleanup
const handleClick = () => { - console.log('Download Manager button clicked'); window.dispatchEvent(new CustomEvent('ytmd-download-manager-toggle')); };🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/plugins/in-app-menu/renderer/TitleBar.tsx` around lines 24 - 26, Remove the leftover debug console.log from the click handler: in the handleClick function that dispatches the 'ytmd-download-manager-toggle' CustomEvent (used in TitleBar.tsx), delete the console.log('Download Manager button clicked') line so the handler only dispatches the event; ensure no other debug logs remain in that function.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@src/plugins/in-app-menu/renderer/TitleBar.tsx`:
- Around line 33-49: In TitleBar.tsx fix the failing lint/format issues in the
JSX block: reorder props to satisfy prop-order (keep style last or as your
project's convention), remove the trailing comma in the inline style object, and
convert SVG attributes to JSX camelCase (e.g., strokeWidth, strokeLinecap,
strokeLinejoin) and format the SVG props into a single consistent multiline
style; then run Prettier/ESLint autofix (or your project's formatter) on this
file to apply the remaining formatting fixes.
- Around line 30-33: The button in TitleBar.tsx that calls handleClick currently
hardcodes title="Gestor de Descargas" and is missing an aria-label; replace the
hardcoded text by reusing the existing download-manager translation string (the
same translated value) for both the button's title and aria-label attributes so
the icon-only control has an explicit accessible name and uses the existing i18n
key.
---
Nitpick comments:
In `@src/plugins/in-app-menu/renderer/TitleBar.tsx`:
- Around line 24-26: Remove the leftover debug console.log from the click
handler: in the handleClick function that dispatches the
'ytmd-download-manager-toggle' CustomEvent (used in TitleBar.tsx), delete the
console.log('Download Manager button clicked') line so the handler only
dispatches the event; ensure no other debug logs remain in that function.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: d2fcb160-f3a0-4f32-ae0d-fea48d4740c2
📒 Files selected for processing (1)
src/plugins/in-app-menu/renderer/TitleBar.tsx
This reverts commit 8cc256a.
This reverts commit 0e65dba.
This reverts commit 07638c3.
This reverts commit 99eb27d.
…n generate the commit message for you.
… so I can generate the commit message for you.
…to reduce IPC and network congestion
… distros missing Roboto
… when ad finishes in adSpeedup plugin
…th workspace persistence
…ialization sequence
…o screen-saver for floating lyrics window
The problem with downloads on Windows and others has been resolved.
Summary by CodeRabbit
New Features
Internationalization
Chores