fix(host): keep Shibumi working under Omarchy 4.0.3 plugin facades - #49
Open
stevenklar wants to merge 3 commits into
Open
fix(host): keep Shibumi working under Omarchy 4.0.3 plugin facades#49stevenklar wants to merge 3 commits into
stevenklar wants to merge 3 commits into
Conversation
…chy 4.0.3 Omarchy 4.0.3 injects capability-scoped facades into third-party plugins: serviceFor() resolves only the caller's own service, pluginRegistry exposes only the caller's manifest without pluginsChanged, shell.bar is a scalar view, and __sourceDir is stripped from the manifest copy. The Shibumi bar rendered empty because no widget component and no sibling service could be resolved. - Add hancore.shibumi.state/host with a shared Registry singleton and a HostShell adapter; every suite service registers itself and wraps the injected shell so cross-plugin lookups, the active bar item and first-party proxies resolve on both 4.0.2 and 4.0.3. - Resolve host widgets from barWidgetRegistry when the registry facade has no entry point, and re-sync on catalogue revisions. - Derive pluginSourceDir from the plugin's own location when the manifest carries no __sourceDir, so payload verification keeps working.
…n proxy under Omarchy 4.0.3 The 4.0.3 registry facade exposes only the plugin's own manifest, so the Control Center listed no plugins and widgets embedded outside layout slots (system tray, update badge) never resolved an entry point. Rebuild the registry surface from manifest files and the host's listPlugins IPC, route enable/disable through the host's plugin IPC, keep host-owned widget handles once resolved, and attach the notification proxy reactively so it survives the bar registering after the services.
Open
Owner
|
Thanks for the PR which helps me for some partial fixes but not for a full implementation. |
Author
|
@HANCORE-linux feel free to use it as a base for a complete fix. I don't mind. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Omarchy 4.0.3 (omacom/omarchy#10733, backport of #9618) replaces the host objects injected into third-party plugins with capability-scoped facades:
serviceForresolves only the caller's own service, the registry view holds only the caller's manifest with nopluginsChanged,shell.baris a scalar view,__sourceDiris stripped, and only bar plugins receive first-party proxies. Shibumi's bar rendered as an empty outline, the Control Center listed no plugins, and embedded widgets (tray, update badge) never loaded.Changes
hancore.shibumi.state/host/: a sharedRegistrysingleton plusHostShelladapter. Every suite service registers itself and wraps its injected shell, so suite-internal lookups, the active bar item and first-party proxies resolve on both 4.0.2 and 4.0.3. APluginCataloguerebuilds the registry surface from manifest files and the host'slistPluginsIPC, and routes enable/disable through the host'ssetPluginEnabled/enablePluginIPC.barWidgetRegistrywhen no entry point is available and keep those handles once resolved; derivepluginSourceDirfrom the plugin's own location so payload verification keeps working.Security boundary
This does not touch what #9618 protects: authentication services stay outside the public service map and the reachable object graph, and nothing here references them. The registry shares only Shibumi's own services and bar among Shibumi's own plugins. It does extend the bar's narrow non-authentication proxies (idle, media, notifications) to suite services, and the directory is importable by any sibling plugin. Upstream's documented alternative is reduced functionality under replacement bars.
Known limits
The notifications proxy carries only Do Not Disturb, so the bell has no history under 4.0.3.
check-production-boundaryflags the sibling import as a package escape, and smoke tests that copy single plugin directories will needhancore.shibumi.state/hostalongside; both are left for follow-up.Verified
On Omarchy 4.0.3-1 with an isolated Quickshell smoke against a scoped facade and on a live session: full bar, tray, bell, and the Control Center plugin list restored; health check clean.