From 0416eaeaa8af1359a31ca743c379a8ebb8669577 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 11 May 2026 16:12:33 -0400 Subject: [PATCH] feat(context): Finalize AppController decoupling and aggregate integration --- src/app_controller.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app_controller.py b/src/app_controller.py index f0e9919..2e50d73 100644 --- a/src/app_controller.py +++ b/src/app_controller.py @@ -2633,7 +2633,7 @@ class AppController: self.disc_entries = models.parse_history_entries(disc_data.get("history", []), self.disc_roles) if "context_snapshot" in disc_data: snapshot_data = disc_data["context_snapshot"] - self.files = [models.FileItem.from_dict(f) if isinstance(f, dict) else models.FileItem(path=str(f)) for f in snapshot_data] + self.context_files = [models.FileItem.from_dict(f) if isinstance(f, dict) else models.FileItem(path=str(f)) for f in snapshot_data] self.ai_status = f"discussion: {name}" def _flush_disc_entries_to_project(self) -> None: @@ -2649,7 +2649,7 @@ class AppController: disc_data = discussions.setdefault(self.active_discussion, project_manager.default_discussion()) disc_data["history"] = history_strings disc_data["last_updated"] = project_manager.now_ts() - disc_data["context_snapshot"] = [f.to_dict() if hasattr(f, "to_dict") else {"path": str(f)} for f in self.files] + disc_data["context_snapshot"] = [f.to_dict() if hasattr(f, "to_dict") else {"path": str(f)} for f in self.context_files] def _create_discussion(self, name: str) -> None: """ @@ -2661,8 +2661,8 @@ class AppController: self.ai_status = f"discussion '{name}' already exists" return discussions[name] = project_manager.default_discussion() - if self.files: - discussions[name]["context_snapshot"] = [f.to_dict() for f in self.files] + if self.context_files: + discussions[name]["context_snapshot"] = [f.to_dict() for f in self.context_files] self._switch_discussion(name) def _branch_discussion(self, index: int) -> None: @@ -3077,6 +3077,7 @@ class AppController: models.save_config(self.config) track_id = self.active_track.id if self.active_track else None flat = project_manager.flat_config(self.project, self.active_discussion, track_id=track_id) + flat.setdefault("files", {})["paths"] = self.context_files persona = self.personas.get(self.ui_active_persona) strategy = persona.aggregation_strategy if persona else "auto" @@ -3111,6 +3112,7 @@ class AppController: history = orchestrator_pm.get_track_history_summary() proj = project_manager.load_project(self.active_project_path) flat = project_manager.flat_config(self.project) + flat.setdefault("files", {})["paths"] = self.context_files file_items = aggregate.build_file_items(Path(self.active_project_root), flat.get("files", {}).get("paths", [])) _t1_baseline = len(ai_client.get_comms_log()) @@ -3508,4 +3510,4 @@ class AppController: if self.active_track: self.active_tickets = [asdict(t) if not isinstance(t, dict) else t for t in self.active_track.tickets] else: - self.active_tickets = []] \ No newline at end of file + self.active_tickets = [] \ No newline at end of file