Repository navigation
fix: restore live data when opening Dock Doctor from the bar - #3
Merged
Merged
Conversation
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.
Summary
Fixes empty live windows opened from the Dock Doctor bar badge after a fresh Omarchy shell start. Registers the shared observer in a dedicated runtime module for the dynamic plugin loader. Updates the plugin to 1.0.2.
Root cause
The plugin was loaded by file URL from outside the shell configuration directory. Its observer singleton was not registered on that path, leaving
LiveObserver.acquireundefined. The earlier native fixture statically imported the plugin directory, hiding the failure.Proof
A cold external-plugin reproduction fails on 1.0.1 with the same singleton error captured from the installed shell. The explicit declarations make that reproduction pass. A new native gate loads the plugin asynchronously without importing its directory, presses both widgets' badge handlers, checks actual live view contents and shared connection identity, then closes and reopens both windows.
Gates
71f1852: OptiPlex passed 56 backend tests, 20 Qt results, native lifecycle and crash recovery, and the new cold external badge-window regression.999feb2ea2a2c8a9fec67cbef6b04dc5cc686a47, fully restarted the Omarchy shell, and visually confirmed 16 live devices. Exactly one observer is running; no singleton registration or undefined-binding errors remain.Review rounds
Round 1 stopped when the plain Qt gate exposed eager runtime loading; moving registration into its own module resolved that failure. The primary seat remained unavailable after its retry; the permitted substitute supplied the second completed review. Missing output is not a pass. The final traversal nit described an unreachable missed-child scenario and was rejected against Qt item semantics. No findings remain.
Needs a human
The owner authorized the fix, publication, and local restart. Marketplace listing approval remains with its maintainers.
factory: rounds=2 evidence=A,B,D host=optiplex