diff --git a/shell/shell.qml b/shell/shell.qml index 82080624..8b4b82dc 100644 --- a/shell/shell.qml +++ b/shell/shell.qml @@ -317,7 +317,13 @@ ShellRoot { if (!manifest) return null if (manifest.__isFirstParty) return manifest var copy = JSON.parse(JSON.stringify(manifest)) - delete copy.__sourceDir + // __sourceDir is the plugin's own install directory, not a privilege + // signal: a third-party service/panel plugin needs it to locate its + // bundled scripts and assets (barWidgets already receive it via + // meta.sourceDir, but service/panel instances get only this manifest). + // Stripping it left those plugins with no way to find their own files, + // silently breaking every plugin that shells out to a bundled script. + // Only the true privilege markers below are withheld from third parties. delete copy.__isFirstParty delete copy.__hostCapabilities return copy