diff --git a/.verification/view-settings-first/delivery.md b/.verification/view-settings-first/delivery.md new file mode 100644 index 000000000..1fe2f82cd --- /dev/null +++ b/.verification/view-settings-first/delivery.md @@ -0,0 +1,3 @@ +Newly opened viewed-object sidebars now start with their own discovered settings rather than the native Thread connection-status panel. The existing ThreadSidebar composition yields the view's configuration declarations first, followed by its inherited role panels. No label list, preferred-title lookup or new default flag. + +PanelMenu still restores the user's retained nominal panel selection before considering the first entry. This changes the initial presentation only; explicit selection, lazy form construction, ObjectState inheritance and native role-panel behavior are unchanged. The existing channel/file/native/context UI control passed on the preceding coherent change. This two-line ordering correction is established by the complete composition-to-selection trace; no extra test suite or profiler was run. diff --git a/.verification/view-settings-first/fix.plan.json b/.verification/view-settings-first/fix.plan.json new file mode 100644 index 000000000..463111aa1 --- /dev/null +++ b/.verification/view-settings-first/fix.plan.json @@ -0,0 +1,20 @@ +{ + "recipes": [ + { + "recipe_id": "view-settings-before-inherited-status-panels", + "operations": [ + { + "operation": "patch_target", + "file_path": "/home/ts/wt/codex-live--P181--toad/src/toad/widgets/side_bar.py", + "target_qualname": "ThreadSidebar.panel_entries", + "replacements": [ + { + "old_source": " yield from super().panel_entries()\n yield from self.query_ancestor(ViewSettingsScope).configuration_panels", + "new_source": " yield from self.query_ancestor(ViewSettingsScope).configuration_panels\n yield from super().panel_entries()" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/toad/widgets/side_bar.py b/src/toad/widgets/side_bar.py index 5eb30d47f..740ac7cbf 100644 --- a/src/toad/widgets/side_bar.py +++ b/src/toad/widgets/side_bar.py @@ -1359,8 +1359,8 @@ class ThreadSidebar(SideBar): placement_type = ThreadSidebarPlacement def panel_entries(self): - yield from super().panel_entries() yield from self.query_ancestor(ViewSettingsScope).configuration_panels + yield from super().panel_entries() def _compose_panels(self): yield PanelMenu(self.panel_entries(), self.navigation)