feat(history): Context snapshotting per discussion/take
This commit is contained in:
@@ -2597,6 +2597,9 @@ class AppController:
|
||||
disc_data = discussions[name]
|
||||
with self._disc_entries_lock:
|
||||
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.ai_status = f"discussion: {name}"
|
||||
|
||||
def _flush_disc_entries_to_project(self) -> None:
|
||||
@@ -2612,6 +2615,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() for f in self.files]
|
||||
|
||||
def _create_discussion(self, name: str) -> None:
|
||||
"""
|
||||
@@ -2623,6 +2627,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]
|
||||
self._switch_discussion(name)
|
||||
|
||||
def _branch_discussion(self, index: int) -> None:
|
||||
|
||||
Reference in New Issue
Block a user