2 Commits

2 changed files with 170 additions and 160 deletions
+2 -2
View File
@@ -48,9 +48,9 @@ For deep implementation details when planning or implementing tracks, consult `d
- **High-Fidelity Selectable UI:** Most read-only labels and logs across the interface (including discussion history, comms payloads, tool outputs, and telemetry metrics) are now implemented as selectable text fields. This enables standard OS-level text selection and copying (Ctrl+C) while maintaining a high-density, non-editable aesthetic.
- **Enhanced MMA Observability:** Worker streams and ticket previews now support direct text selection, allowing for easy extraction of specific logs or reasoning fragments during parallel execution.
- **Detailed History Management:** Rich discussion history with branching, timestamping, and specific git commit linkage per conversation.
- **Advanced Log Management:** Optimizes log storage by offloading large data (AI-generated scripts and tool outputs) to unique files within the session directory, using compact `[REF:filename]` pointers in JSON-L logs to minimize token overhead during analysis.
- **Advanced Log Management:** Optimizes log storage by offloading large data (AI-generated scripts and tool outputs) to unique files within the session directory, using compact `[REF:filename]` pointers in JSON-L logs to minimize token overhead during analysis. Features a dedicated **Log Management panel** for monitoring, whitelisting, and pruning session logs.
- **Full Session Restoration:** Allows users to load and reconstruct entire historical sessions from their log directories. Includes a dedicated, tinted **'Historical Replay' mode** that populates discussion history and provides a read-only view of prior agent activities.
- **Dedicated Diagnostic Logging:** Consolidates transient system warnings and performance alerts into a separate **System Diagnostics** tab within the Log Management panel, ensuring the persistent Discussion History remains focused on high-signal content while providing deep visibility into runtime health.
- **Dedicated Diagnostics Hub:** Consolidates real-time telemetry (FPS, CPU, Frame Time) and transient system warnings into a standalone **Diagnostics panel**, providing deep visibility into application health without polluting the discussion history.
- **Improved MMA Observability:** Enhances sub-agent logging by injecting precise ticket IDs and descriptive roles into communication metadata, enabling granular filtering and tracking of parallel worker activities within the Comms History.
- **In-Depth Toolset Access:** MCP-like file exploration, URL fetching, search, and dynamic context aggregation embedded within a multi-viewport Dear PyGui/ImGui interface.
- **Integrated Workspace:** A consolidated Hub-based layout (Context, AI Settings, Discussion, Operations) designed for expert multi-monitor workflows.
+18 -8
View File
@@ -89,6 +89,7 @@ class App:
if not hasattr(self.controller, 'PROVIDERS'):
self.controller.PROVIDERS = PROVIDERS
self.controller.init_state()
self.show_windows.setdefault("Diagnostics", False)
self.controller.start_services(self)
# Aliases for controller-owned locks
self._send_thread_lock = self.controller._send_thread_lock
@@ -511,6 +512,9 @@ class App:
self._render_log_management()
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_log_management")
if self.show_windows.get("Diagnostics", False):
self._render_diagnostics_panel()
self.perf_monitor.end_frame()
# ---- Modals / Popups
with self._pending_dialog_lock:
@@ -999,8 +1003,6 @@ class App:
imgui.end()
return
if imgui.begin_tab_bar("log_mgmt_tabs"):
if imgui.begin_tab_item("Sessions")[0]:
if self._log_registry is None:
self._log_registry = log_registry.LogRegistry(str(paths.get_logs_dir() / "log_registry.toml"))
else:
@@ -1068,9 +1070,19 @@ class App:
reason="Manually whitelisted"
)
imgui.end_table()
imgui.end_tab_item()
if imgui.begin_tab_item("System Diagnostics")[0]:
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_log_management")
imgui.end()
def _render_diagnostics_panel(self) -> None:
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_diagnostics_panel")
exp, opened = imgui.begin("Diagnostics", self.show_windows.get("Diagnostics", False))
self.show_windows["Diagnostics"] = bool(opened)
if not exp:
imgui.end()
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_diagnostics_panel")
return
metrics = self.perf_monitor.get_metrics()
imgui.text("Performance Telemetry")
imgui.same_line()
@@ -1157,12 +1169,10 @@ class App:
imgui.text_wrapped(entry.get("message", ""))
imgui.end_table()
imgui.end_tab_item()
imgui.end_tab_bar()
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_log_management")
if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_diagnostics_panel")
imgui.end()
def _render_files_panel(self) -> None:
if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_files_panel")
imgui.text("Paths")