feat(mma): Implement track-scoped history and optimized sub-agent toolsets

This commit is contained in:
2026-02-27 19:51:13 -05:00
parent 134a11cdc2
commit b845b89543
2 changed files with 58 additions and 5 deletions

View File

@@ -754,6 +754,12 @@ class App:
self.active_track = None
self.active_tickets = []
# Load track-scoped history if track is active
if self.active_track:
track_history = project_manager.load_track_history(self.active_track.id, self.ui_files_base_dir)
if track_history:
self.disc_entries = _parse_history_entries(track_history, self.disc_roles)
def _save_active_project(self):
if self.active_project_path:
try:
@@ -790,6 +796,10 @@ class App:
def _flush_disc_entries_to_project(self):
history_strings = [project_manager.entry_to_str(e) for e in self.disc_entries]
if self.active_track:
project_manager.save_track_history(self.active_track.id, history_strings, self.ui_files_base_dir)
return
disc_sec = self.project.setdefault("discussion", {})
discussions = disc_sec.setdefault("discussions", {})
disc_data = discussions.setdefault(self.active_discussion, project_manager.default_discussion())
@@ -1398,7 +1408,8 @@ class App:
self._save_active_project()
self._flush_to_config()
save_config(self.config)
flat = project_manager.flat_config(self.project, self.active_discussion)
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)
full_md, path, file_items = aggregate.run(flat)
# Build stable markdown (no history) for Gemini caching
screenshot_base_dir = Path(flat.get("screenshots", {}).get("base_dir", "."))