TL;DR
- Issue #757 -- SmartProxy fixes + UI consolidation. "Proxy error ban time" is honoured again (previous audit clamped values <10 to a hardcoded 10, silently dropping the user's setting AND breaking the documented
0 = permanent bansentinel). The "Concurrent probes" spinner in the proxy-test action now persists across sessions. SmartProxy now lives on a single dedicated tab in Settings (between Downloads and Uploads) holding everything proxy-related -- master ON/OFF, proxy list, behaviour spinners, 509 recovery, IP / Test diagnostics. The standaloneQuota recovery & SmartProxy (509)dialog and its Edit-menu shortcut are gone; the controls were merged into the tab so users see one Save flow. - PR #745 (@SeanCassiere) merged. New optional Downloads-tab setting "Always reload MEGA folders instead of using cached folder data". When enabled, MegaBasterd bypasses the local folder-node cache (
existsCachedFolderNodesreturns false,getFolderNodes/getFolderNodes4skip the cache read) so folder-link lookups always hit MEGA.writeCachedFolderNodesstays active, so toggling the setting off later restores cached behaviour with refreshed data instead of stale data. Default off; opt-in. Thanks to Sean for the patch + the clean rebase. - i18n. Three SmartProxy tooltips (
ban_time,force,batch_size) localised in DE/HU/TR/VI/ZH (the keys were introduced in 8.42 with EN placeholder for those bundles, and theforcetooltip lost its now-stale(Quota Recovery dialog, Edit menu)reference everywhere). New tab titleui.tab.smartproxy="SmartProxy"in every bundle. - No behaviour changes outside SmartProxy / the new opt-in folder-reload setting. Everything that shipped in 8.42 is included; 8.43 is 8.42 + the changes above.
New in 8.43
Issue #757 -- SmartProxy
-
smartproxy_ban_timeno longer overridden (SmartMegaProxyManager.refreshSmartProxySettings). The #752 audit clamped<10sban times to a hard 10 to avoid pool churn, but two side effects were silently breaking the UI: the documented "0 = permanent ban" sentinel (which is still alive inblockProxy:if (this._ban_time == 0) _proxy_list.remove(proxy);) was rewritten to 10, AND any user-curated low ban time was ignored without notice. Replaced with explicit per-band handling:0-> permanent ban (entry removed from live pool on first failure; UI sentinel preserved).1..9-> honoured, with a startupWARNINGexplaining the pool-churn risk so the user knows why their log gets noisier.10..3600-> normal.>3600-> clamped to 3600 withWARNING("set to 0 if you want permanent").
The Settings spinner is tightened to
SpinnerNumberModel(value, 0, 3600, 1)so DB values outside that range are clamped on load and the legal range is visible in the UI; tooltip added explaining the bands. -
"Concurrent probes" persists across sessions (
QuotaRecoveryPanel.loadFromDB/saveToDB, new DB keysmartproxy_test_batch_size). Previous code initialised the spinner to20every time the panel was opened, regardless of what the user typed last time. Range[1, 100]preserved; tooltip clarifies the value only affects the proxyTestbutton, NOT runtime SmartProxy concurrency (this was the misunderstanding behind #757's feature request to mirror the spinner in the SmartProxy panel). -
SmartProxy activation mode now visible at startup. Without
FORCE SMART PROXY, SmartProxy is passive by design -- proxies only kick in after MEGA returns HTTP 509 (or while inside the post-509 recheck window). Users with valid "live" proxies who never see traffic routed through them keep hitting this. Surface it loudly: an INFO log at boot describes the mode ("[SmartProxy] mode: PASSIVE -- proxies are only used after MEGA returns HTTP 509 (or while inside the {Ns} post-509 recheck window). Enable FORCE SMART PROXY in settings if you want every chunk routed through proxies." / "mode: FORCE"), and theFORCE SMART PROXYcheckbox tooltip explicitly contrasts PASSIVE vs FORCE.
Issue #757 -- UI consolidation
-
SmartProxy lives on one tab now. The on/off checkbox + the proxy-list / behaviour panel that used to live under Downloads were extracted (
.form+ matchinginitComponentsedits, not a runtime reparent --GroupLayoutNPEs if aComponentSpringreferences a component no longer in the container) and stacked on a new dedicated tab inserted at index 1, alongside the 509 recovery and diagnostics content. Single Save flow; the new tab is wrapped in aJScrollPaneso it scrolls cleanly. Tab title:SmartProxy. -
Standalone
Quota Recoverydialog removed. TheQuotaRecoverySettingsDialog(Edit menu -> dialog with its own Save / Cancel) has been refactored intoQuotaRecoveryPanel extends JPanel, embedded inside the new SmartProxy tab. The Edit-menu shortcut is also gone -- it was redundant once the content moved AND it bypassed the account-deletion cleanup thatMainPanelView.settings_menuActionPerformedruns after the main Settings dialog closes (so deleting an account via the shortcut would leave the in-memory_main_panel.getMega_accounts()out of sync with the persisted state). -
Reparented controls now respect the dialog zoom + locale.
updateFonts(this, ...)andtranslateLabels(this, ...)run near the top ofSettingsDialog's constructor; before the reparent fix, the orphansmart_proxy_checkboxandsmart_proxy_settingswere not yet in the dialog tree at that point so they kept their raw 18 pt .form fonts and untranslated English text while the rest of the tab respected the user's zoom / language. The font/translation passes are now reapplied to the two orphans (and only those --translateLabelsis not idempotent on already-translated text) right after they are attached to the new tab.
PR #745 -- Always-reload-MEGA-folders setting (@SeanCassiere)
-
New Downloads-tab checkbox "Always reload MEGA folders instead of using cached folder data" wired to a new DB setting
always_reload_mega_folders(yes/no, default no). When enabled:MegaAPI.existsCachedFolderNodes(folder_id)short-circuits tofalse, suppressing the "use cached version?" prompt.MegaAPI.getFolderNodes/getFolderNodes4skip the cache read on entry, forcing a fresh MEGA lookup.writeCachedFolderNodesis not disabled, so the fresh response still updates the on-disk cache. Disabling the setting later restores cached behaviour with the now-refreshed data instead of dropping back onto stale data.
Opt-in for the user; no behaviour change unless toggled.
i18n
settings.smartproxy.ban_time.tooltip-- explains the 0 / 1..9 / 10..3600 / >3600 bands. Added with EN placeholder in 8.42 for DE/HU/TR/VI/ZH; now localised in all 8 bundles.settings.smartproxy.force.tooltip-- explains PASSIVE vs FORCE. Localised in all 8 bundles; the previous text pointed at "Quota Recovery dialog, Edit menu" which no longer exists, now points at the\"Recheck window\"spinner on the same tab.ui.quota.batch_size.tooltip-- localised in DE/HU/TR/VI/ZH so the "Test-action only, persisted across sessions" wording is consistent across every bundle.ui.tab.smartproxy=SmartProxy-- new tab title key in every bundle.
Translators -- the 5 non-EN/ES/IT translations were done as best-effort and might benefit from a native pass via #397.