Private
Public Access
0
0

feat(presets): Implement ContextPresetManager and integrate with AppController

This commit is contained in:
2026-05-16 11:04:38 -04:00
parent e8fb9d1b23
commit e3d84bc4da
4 changed files with 146 additions and 33 deletions
+17
View File
@@ -35,6 +35,7 @@ from src import shell_runner
from src import theme_2 as theme
from src import thinking_parser
from src import tool_presets
from src.context_presets import ContextPresetManager
from src.file_cache import ASTParser
def parse_symbols(text: str) -> list[str]:
@@ -1122,6 +1123,7 @@ class AppController:
'text_viewer_title': 'text_viewer_title',
'text_viewer_type': 'text_viewer_type'
})
self.context_preset_manager = ContextPresetManager()
self.perf_monitor = performance_monitor.get_monitor()
self._perf_profiling_enabled = False
self._gui_task_handlers: Dict[str, Callable] = {
@@ -2917,6 +2919,21 @@ class AppController:
self.view_presets = [vp for vp in self.view_presets if vp.name != name]
self._flush_to_project()
def save_context_preset(self, preset: models.ContextPreset) -> None:
self.context_preset_manager.save_preset(self.project, preset)
self._save_active_project()
def load_context_preset(self, name: str) -> models.ContextPreset:
presets = self.context_preset_manager.load_all(self.project)
if name not in presets:
raise KeyError(f"Context preset '{name}' not found.")
preset = presets[name]
# Apply it to the current state
self.ui_file_paths = [f.path for f in preset.files]
self.screenshots = list(preset.screenshots)
self._save_active_project()
return preset
def _cb_load_track(self, track_id: str) -> None:
"""