Private
Public Access
refactor(gui_2): merge command_palette; split registry->commands + render->gui_2; git rm src/command_palette.py
Per spec FR1 + Phase 1.3 + architecture feedback: src/command_palette.py
split by responsibility:
- Command/ScoredCommand/CommandRegistry/fuzzy_match/_close_palette/_execute (data/ops)
-> src/commands.py (which already owns _LazyCommandRegistry pattern)
- render_palette_modal (view/ImGui) -> src/gui_2.py
GUI is a pure view; the registry/data classes are ops; commands.py owns
the registry because commands.py is where @registry.register decorators live.
gui_2.render_palette_modal imports Command from commands.py to type its
parameters.
Also fixes Phase 1.1 (bg_shader) per architecture feedback:
BackgroundShader no longer owns 'enabled' state - the GUI is pure view.
State is now owned by AppController.bg_shader_enabled (read on load from
config, written from gui_2 checkbox via app's __setattr__ delegation).
Tests:
- tests/test_command_palette.py: imports from src.commands (was src.command_palette)
- tests/test_commands_no_top_level_command_palette.py: rewritten for the
new architecture (eager registry in commands.py; render in gui_2; no
circular import between commands.py and gui_2)
This commit is contained in:
@@ -2076,8 +2076,7 @@ class AppController:
|
||||
self.ui_separate_tool_calls_panel = _uip.separate_tool_calls_panel
|
||||
self.ui_auto_switch_layout = gui_cfg.get("auto_switch_layout", False)
|
||||
self.ui_tier_layout_bindings = gui_cfg.get("tier_layout_bindings", {"Tier 1": "", "Tier 2": "", "Tier 3": "", "Tier 4": ""})
|
||||
from src.gui_2 import get_bg
|
||||
get_bg().enabled = gui_cfg.get("bg_shader_enabled", False)
|
||||
self.bg_shader_enabled = gui_cfg.get("bg_shader_enabled", False)
|
||||
|
||||
_default_windows = {
|
||||
"Project Settings": True,
|
||||
@@ -3018,7 +3017,6 @@ class AppController:
|
||||
self.config["rag"] = self.rag_config.to_dict()
|
||||
|
||||
self.config["projects"] = {"paths": self.project_paths, "active": self.active_project_path}
|
||||
from src.gui_2 import get_bg
|
||||
# Update gui section while preserving other keys like bg_shader_enabled
|
||||
gui_cfg = self.config.get("gui", {})
|
||||
gui_cfg.update({
|
||||
@@ -3033,7 +3031,7 @@ class AppController:
|
||||
"separate_tier2": self.ui_separate_tier2,
|
||||
"separate_tier3": self.ui_separate_tier3,
|
||||
"separate_tier4": self.ui_separate_tier4,
|
||||
"bg_shader_enabled": get_bg().enabled
|
||||
"bg_shader_enabled": getattr(self, "bg_shader_enabled", False)
|
||||
})
|
||||
self.config["gui"] = gui_cfg
|
||||
|
||||
|
||||
Reference in New Issue
Block a user