fix(bar): skip V1 reconciliation in V2 mode - #28
Conversation
Skip reconcileV1PluginGroups when the shell is using the V2 layout. V1 reconciliation rewrites bar.layout with V1-only group assignments, which removes any V2 layout state and leaves third-party plugins unable to enable or disable themselves from the control center. Also update the ControlCenterPanel error message to show a V2-specific hint when plugin activation fails in V2 mode.
|
Closing this PR as superseded by PR #32. PR #28 addressed one narrow V1/V2 defect by guarding three V1 reconciliation call sites. It did not cover the complete Step 1C contract: startup/timer reconciliation isolation, V2 dynamic The Step 1C implementation in PR #32 provides those behaviors, includes the vendored copies and regression tests, and was independently reviewed and validated in live matrices on the local machine and machine2. PR #28 was not cherry-picked or used as an implementation source. |
Summary
Skip
reconcileV1PluginGroupswhen the shell is using the V2 layout.V1 reconciliation rewrites
bar.layoutwith V1-only group assignments, which removes any V2 layout state and leaves third-party plugins unable to enable or disable themselves from the control center.This fix guards the three call sites in Bar.qml where
reconcileV1PluginGroupsis invoked:applyProviderLayoutTransaction(around line 885 + rollback at 895)In V2 mode, the reconciliation is skipped so the V2 layout is preserved.
Additional fix
Updated the ControlCenterPanel error message to show a V2-specific hint when plugin activation fails in V2 mode, instead of always suggesting V1-only guidance.