Skip to content

fix: restore live data when opening Dock Doctor from the bar - #3

Merged
Kb2uka merged 2 commits into
mainfrom
fix/live-window-binding
Sep 13, 2026
Merged

Kb2uka merged 2 commits into
mainfrom
fix/live-window-binding

Conversation

@Kb2uka

@Kb2uka Kb2uka commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

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.acquire undefined. 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

  • Exact revision 71f1852: OptiPlex passed 56 backend tests, 20 Qt results, native lifecycle and crash recovery, and the new cold external badge-window regression.
  • Python compilation, manifest validation, and diff checks passed.
  • Hosted Linux x64, arm64, and interface checks passed.
  • Installed 1.0.2 at merged revision 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 Seat A Substitute A Seat B Accepted Rejected Needs human
1 interrupted interrupted interrupted — — 0
2 missing 5/5 (0) 5/5 (1 NIT) 0 1 0

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

@Kb2uka
Kb2uka marked this pull request as ready for review September 13, 2026 16:52
@Kb2uka
Kb2uka merged commit 999feb2 into main Sep 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant