Repository navigation
v0.2.3
What's Changed in v0.2.3
- 32d85cd
fix(core): improve sqlite self-healing, sandbox warmup, and plugin lifecycle resilienceDatabaseFactoryquarantines and rebuilds a corrupt database instead of failing startup; sandbox workers are refused direct SQLite access.- Added
SandboxedPluginManager.warmup()and a worker ready-ping; startup grace period raised from 15s to 25s. - Crash dialog gains a
Repair Databaseaction for database and SQL faults. .pending_deleteand.uninstalledartifacts excluded from plugin scans inPluginInit,ActiveProviderRepositoryImpl, andDesktopRepositoryManager.
- 220bdd7
feat(desktop): sandbox reliability, error recovery dialogs, and details UI refinements- Added
PluginLoadFailureExceptionwithisPermanentclassification, plusPluginFailureStateandPluginFailureDialogfor quarantined plugins. initSecurityno longer pre-initializes DataStore and ProfileManager.- App heap capped at 512MB (
-Xmx1024mto-Xmx512m); worker tracks in-flight requests and schedules a post-scrape GC job. - Update manager verifies
checksums.txtSHA-256 before installing; release workflow verifies the downloaded mpv archive against its published SHA-256. - Details screen: full web URL action derived from the provider URL, wider play button, recommendations section cleanup.
- Added
- 07caf0f
feat(desktop): performance mode — disable blur/haze passes with two-way settings linkage- New
pref_performance_modetoggle under Settings → Home Feed. - Skips haze and blur passes in
TopBar,NavigationDock,ContextMenuOverlay,ExploreScreen,ExploreSearchOverlay,DetailsScreen,HomeScreen, andHomeHeroCarousel. EpisodeCardBakerreturns early andEpisodeCardrenders the raw thumbnail instead of baking a blurred card.
- New
- ffb238b
perf(sandbox): daemonize worker host and harden extension lifecycle- Startup grace period raised from 25s to 60s; startup plugin load budget raised from 20s to 45s.
- Added DNS-over-HTTPS resolver selection with a custom endpoint (DoH URL or plain IP on port 53).
- Added
ExtensionLoader.sandboxUnloadInterceptorso sandbox unloads route through the manager.
- f591dc5
fix(sandbox): guard plugin lifecycle, refine error classification, and harden file replacement- Serialized plugin loads behind
pluginLifecycleMutex;loadedPluginPathspruned to existing files. replaceFileWithRetryretriesFiles.movewith anATOMIC_MOVEfallback.SandboxedMainApiProxyfalls back to structural response types when the worker class is absent from the host classpath.- Update reloads now pass
forceRetry = true.
- Serialized plugin loads behind
- cb3e596
fix(plugins): harden update, cache cleanup, and unload locking- Bytecode cache cleaned from the canonical cache directory; timestamped
_<millis>-secure.jarfallbacks removed. - Superseded plugin files deleted after a successful install; uninstall matches cache artifacts by exact stem.
- All tracked plugin classloaders closed on unload.
- Desktop tests redirected to
build/test-dataviacloudstream.data.dirso they no longer touch the live profile.
- Bytecode cache cleaned from the canonical cache directory; timestamped
- b77ab81
fix(plugins): harden update rollback and sandbox validationcheckAndApplyPluginUpdatesnow routes throughautoUpdatePlugins, inheriting backup/rollback and update-history recording.PluginFileUtils.resolveRepoDircanonicalizes and rejects blank, dot-only, or escaping repository names.- Sandbox worker repository callbacks targeting private, loopback, link-local, or
file://URLs are rejected. - AppContainer workers are terminated if Job Object assignment fails.
- Added regression tests for unsafe repository names, private URLs, and rollback.
- 8c95861 Make AppContainer sandbox mandatory on Windows
- Removed
PREF_SANDBOX_ENABLED;SandboxedPluginManager.isEnabled()now returnsisSupported(). pref_sandbox_enabledremoved from the protected host key set.- Non-Windows platforms keep in-process loading.
- Removed
Full Changelog: v0.2.2...v0.2.3