From ca09776a95ded4835f38a9301ef94b5f31a40bb3 Mon Sep 17 00:00:00 2001 From: rxm Date: Mon, 15 Jun 2026 00:37:11 +0200 Subject: [PATCH] fix(settings): label refresh-interval field as Inventory, not Channels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Channels refresh interval" setting and its description ("How often the channel tracker re-queries Twitch...") were wrong: refreshMinMs/Max feed useInventoryRefresh, which schedules the Drops *inventory* re-query with jitter (default 60-70 min, hard 60-min floor). The channel tracker runs on its own, hardcoded cadence (~90s, ~25s fallback poll) in tracker.ts and is not configurable via this field. - i18n (en + de): rename label to "Inventory refresh interval" and rewrite the description to describe the inventory re-query. - Remove the orphaned pre-refactor refresh-preset/advanced i18n cluster (settings.refreshInterval, refreshHint, refreshPreset.*, refreshAdvanced*, refreshMin/Max) in both locales — unused since the field became a simple min/max minutes input; verified no references remain. - Fix misleading "channel-refresh" comments in EnginePanel, formatters, and refreshIntervalField (the cadence they describe is inventory). No behavior change; copy/labels and dead-key cleanup only. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../features/overview/EnginePanel.tsx | 2 +- src/renderer/features/overview/formatters.ts | 2 +- .../settings/sections/refreshIntervalField.ts | 4 +-- src/renderer/shared/i18n.tsx | 34 +++---------------- 4 files changed, 8 insertions(+), 34 deletions(-) diff --git a/src/renderer/features/overview/EnginePanel.tsx b/src/renderer/features/overview/EnginePanel.tsx index 761744b..a3f854e 100644 --- a/src/renderer/features/overview/EnginePanel.tsx +++ b/src/renderer/features/overview/EnginePanel.tsx @@ -9,7 +9,7 @@ export type EnginePanelProps = { watchingSince?: number | null; /** Watch-ping cadence in seconds — the engine credits one watch-minute per ping. */ watchCycleSeconds?: number; - /** Channel-refresh interval window (ms); rendered as a minutes range. */ + /** Inventory-refresh interval window (ms); rendered as a minutes range. */ refreshMinMs?: number; refreshMaxMs?: number; }; diff --git a/src/renderer/features/overview/formatters.ts b/src/renderer/features/overview/formatters.ts index 7325a28..7a91861 100644 --- a/src/renderer/features/overview/formatters.ts +++ b/src/renderer/features/overview/formatters.ts @@ -66,7 +66,7 @@ export function formatUptime(sinceMs: number, now: number = Date.now()): string } /** - * Channel-refresh interval window (min/max in ms) → a compact minutes label for + * Inventory-refresh interval window (min/max in ms) → a compact minutes label for * the EnginePanel "cadence" row, e.g. "60–70 min" (or "60 min" when min === max). * `unit` is the already-translated minutes abbreviation, keeping this pure. */ diff --git a/src/renderer/features/settings/sections/refreshIntervalField.ts b/src/renderer/features/settings/sections/refreshIntervalField.ts index 5cddaca..f60fdf4 100644 --- a/src/renderer/features/settings/sections/refreshIntervalField.ts +++ b/src/renderer/features/settings/sections/refreshIntervalField.ts @@ -1,8 +1,8 @@ /** - * Pure conversion/clamp helpers for the "Channels refresh interval" field. + * Pure conversion/clamp helpers for the "Inventory refresh interval" field. * * The field edits `refreshMinMs`/`refreshMaxMs` in MINUTES, because the engine - * enforces a hard 60-minute floor on the channel-refresh cadence in three + * enforces a hard 60-minute floor on the inventory-refresh cadence in three * independent layers (the renderer settings store, the inventory scheduler in * `useInventoryRefresh`, and the persisted-settings `clampRefreshIntervals`). * The field used to edit in seconds with a 5-second floor, so any sub-hour value diff --git a/src/renderer/shared/i18n.tsx b/src/renderer/shared/i18n.tsx index a77a5ba..4ac86b6 100644 --- a/src/renderer/shared/i18n.tsx +++ b/src/renderer/shared/i18n.tsx @@ -572,19 +572,6 @@ const translations: Translations = { "settings.debugTitle": "Debug tools", "settings.debugToggle": "Enable debug tab", "settings.debugHint": "Show the Debug tab with logs, snapshots, and perf data.", - "settings.refreshInterval": "Inventory refresh interval", - "settings.refreshHint": "Choose a preset or open Advanced for a custom range.", - "settings.refreshPreset": "Preset", - "settings.refreshPreset.1h": "~1 hour", - "settings.refreshPreset.2h": "~2 hours", - "settings.refreshPreset.4h": "~4 hours", - "settings.refreshPreset.6h": "~6 hours", - "settings.refreshPreset.12h": "~12 hours", - "settings.refreshPreset.custom": "Custom ({min}-{max} min)", - "settings.refreshAdvancedShow": "Advanced", - "settings.refreshAdvancedHide": "Hide advanced", - "settings.refreshMin": "Min (min)", - "settings.refreshMax": "Max (min)", "settings.resetAutomation": "Reset automation to defaults", "settings.alerts": "Alerts", "settings.alertsHint": "Desktop notifications for key events.", @@ -665,9 +652,9 @@ const translations: Translations = { "settings.row.minimizeToTray.label": "Minimize to tray", "settings.row.minimizeToTray.description": "Minimizing the window hides it from the taskbar (the tray icon stays available).", - "settings.row.refreshInterval.label": "Channels refresh interval", + "settings.row.refreshInterval.label": "Inventory refresh interval", "settings.row.refreshInterval.description": - "How often the channel tracker re-queries Twitch (random jitter between min and max).", + "How often DropPilot re-queries your Drops inventory from Twitch (random jitter between min and max).", "settings.row.resetAutomation.label": "Reset automation flags", "settings.row.resetAutomation.description": "Clears auto-claim, auto-switch, warmup, etc. back to defaults. Does not log you out.", @@ -1622,19 +1609,6 @@ const translations: Translations = { "settings.allowUnlinkedHint": "Farmt auch, wenn Twitch den Account als nicht verknüpft meldet.", "settings.demoModeTitle": "Demo-Modus", "settings.demoMode": "Demo-Modus", - "settings.refreshInterval": "Inventory Refresh Intervall", - "settings.refreshHint": "Waehle ein Preset oder nutze Erweitert fuer einen eigenen Bereich.", - "settings.refreshPreset": "Preset", - "settings.refreshPreset.1h": "~1 Stunde", - "settings.refreshPreset.2h": "~2 Stunden", - "settings.refreshPreset.4h": "~4 Stunden", - "settings.refreshPreset.6h": "~6 Stunden", - "settings.refreshPreset.12h": "~12 Stunden", - "settings.refreshPreset.custom": "Benutzerdefiniert ({min}-{max} min)", - "settings.refreshAdvancedShow": "Erweitert", - "settings.refreshAdvancedHide": "Erweitert ausblenden", - "settings.refreshMin": "Min (min)", - "settings.refreshMax": "Max (min)", "settings.resetAutomation": "Automation auf Standard zurücksetzen", "settings.alerts": "Benachrichtigungen", "settings.alertsHint": "Desktop-Alerts für wichtige Events.", @@ -1710,9 +1684,9 @@ const translations: Translations = { "settings.row.minimizeToTray.label": "Beim Minimieren ins Tray", "settings.row.minimizeToTray.description": "Minimieren blendet das Fenster aus der Taskleiste (Tray-Icon bleibt verfügbar).", - "settings.row.refreshInterval.label": "Channel-Refresh-Intervall", + "settings.row.refreshInterval.label": "Inventory-Refresh-Intervall", "settings.row.refreshInterval.description": - "Wie oft der Channel-Tracker Twitch neu abfragt (zufälliger Jitter zwischen Min und Max).", + "Wie oft DropPilot dein Drops-Inventar bei Twitch neu abfragt (zufälliger Jitter zwischen Min und Max).", "settings.row.resetAutomation.label": "Automatisierung zurücksetzen", "settings.row.resetAutomation.description": "Setzt auto-claim, auto-switch, warmup etc. auf die Defaults zurück. Loggt dich nicht aus.",