From 322f42db74c6a7cf85c83e9efab37c7e6f69307d Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 9 Mar 2026 23:34:08 -0400 Subject: [PATCH] style(ops): Refine Usage Analytics layout with section titles and separators --- config.toml | 2 + manualslop_layout.ini | 103 ++++++++++++++++++++++-------------------- src/gui_2.py | 14 +++--- 3 files changed, 63 insertions(+), 56 deletions(-) diff --git a/config.toml b/config.toml index 78f1c81..3921e96 100644 --- a/config.toml +++ b/config.toml @@ -25,6 +25,7 @@ separate_tool_calls_panel = false bg_shader_enabled = true crt_filter_enabled = false separate_task_dag = false +separate_usage_analytics = false [gui.show_windows] "Context Hub" = true @@ -32,6 +33,7 @@ separate_task_dag = false "AI Settings" = true "MMA Dashboard" = true "Task DAG" = false +"Usage Analytics" = false "Tier 1: Strategy" = true "Tier 2: Tech Lead" = true "Tier 3: Workers" = true diff --git a/manualslop_layout.ini b/manualslop_layout.ini index 8d5931c..c274e87 100644 --- a/manualslop_layout.ini +++ b/manualslop_layout.ini @@ -73,8 +73,8 @@ Collapsed=0 DockId=0xAFC85805,2 [Window][Theme] -Pos=0,1344 -Size=760,793 +Pos=0,1164 +Size=760,973 Collapsed=0 DockId=0x00000002,2 @@ -84,14 +84,14 @@ Size=900,700 Collapsed=0 [Window][Diagnostics] -Pos=2732,32 -Size=1108,1683 +Pos=2719,28 +Size=1121,1686 Collapsed=0 DockId=0x0000000C,2 [Window][Context Hub] -Pos=0,1344 -Size=760,793 +Pos=0,1164 +Size=760,973 Collapsed=0 DockId=0x00000002,1 @@ -102,26 +102,26 @@ Collapsed=0 DockId=0x0000000D,0 [Window][Discussion Hub] -Pos=1691,32 -Size=1039,2105 +Pos=1606,28 +Size=1111,2109 Collapsed=0 DockId=0x00000013,0 [Window][Operations Hub] -Pos=762,32 -Size=927,2105 +Pos=762,28 +Size=842,2109 Collapsed=0 DockId=0x00000012,0 [Window][Files & Media] -Pos=0,1344 -Size=760,793 +Pos=0,1164 +Size=760,973 Collapsed=0 DockId=0x00000002,0 [Window][AI Settings] -Pos=0,32 -Size=760,1310 +Pos=0,28 +Size=760,1134 Collapsed=0 DockId=0x00000001,0 @@ -131,14 +131,14 @@ Size=416,325 Collapsed=0 [Window][MMA Dashboard] -Pos=2732,32 -Size=1108,1683 +Pos=2719,28 +Size=1121,1686 Collapsed=0 DockId=0x0000000C,0 [Window][Log Management] -Pos=2732,32 -Size=1108,1683 +Pos=2719,28 +Size=1121,1686 Collapsed=0 DockId=0x0000000C,1 @@ -148,26 +148,26 @@ Size=262,209 Collapsed=0 [Window][Tier 1: Strategy] -Pos=2732,1717 -Size=1108,420 +Pos=2719,1716 +Size=1121,421 Collapsed=0 DockId=0x0000000F,0 [Window][Tier 2: Tech Lead] -Pos=2732,1717 -Size=1108,420 +Pos=2719,1716 +Size=1121,421 Collapsed=0 DockId=0x0000000F,1 [Window][Tier 4: QA] -Pos=2732,1717 -Size=1108,420 +Pos=2719,1716 +Size=1121,421 Collapsed=0 DockId=0x0000000F,2 [Window][Tier 3: Workers] -Pos=762,32 -Size=927,2105 +Pos=762,28 +Size=842,2109 Collapsed=0 DockId=0x00000012,1 @@ -326,6 +326,11 @@ Pos=786,858 Size=956,942 Collapsed=0 +[Window][Task DAG] +Pos=1461,823 +Size=1190,872 +Collapsed=0 + [Table][0xFB6E3870,4] RefScale=13 Column 0 Width=80 @@ -357,11 +362,11 @@ Column 3 Width=20 Column 4 Weight=1.0000 [Table][0x2A6000B6,4] -RefScale=22 -Column 0 Width=66 -Column 1 Width=100 +RefScale=20 +Column 0 Width=60 +Column 1 Width=90 Column 2 Weight=1.0000 -Column 3 Width=167 +Column 3 Width=151 [Table][0x8BCC69C7,6] RefScale=13 @@ -373,18 +378,18 @@ Column 4 Weight=1.0000 Column 5 Width=50 [Table][0x3751446B,4] -RefScale=14 -Column 0 Width=42 -Column 1 Width=64 +RefScale=20 +Column 0 Width=60 +Column 1 Width=91 Column 2 Weight=1.0000 -Column 3 Width=106 +Column 3 Width=151 [Table][0x2C515046,4] -RefScale=24 -Column 0 Width=76 +RefScale=20 +Column 0 Width=63 Column 1 Weight=1.0000 -Column 2 Width=183 -Column 3 Width=72 +Column 2 Width=152 +Column 3 Width=60 [Table][0xD99F45C5,4] Column 0 Sort=0v @@ -405,26 +410,26 @@ Column 1 Width=100 Column 2 Weight=1.0000 [Table][0xA02D8C87,3] -RefScale=22 -Column 0 Width=250 -Column 1 Width=165 +RefScale=20 +Column 0 Width=227 +Column 1 Width=150 Column 2 Weight=1.0000 [Docking][Data] DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02 -DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,32 Size=3840,2105 Split=X - DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2730,1183 Split=X +DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=3840,2109 Split=X + DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2717,1183 Split=X DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2 DockNode ID=0x00000007 Parent=0x0000000B SizeRef=760,858 Split=Y Selected=0x8CA2375C - DockNode ID=0x00000001 Parent=0x00000007 SizeRef=824,1310 CentralNode=1 Selected=0x7BD57D6A - DockNode ID=0x00000002 Parent=0x00000007 SizeRef=824,793 Selected=0x1DCB2623 - DockNode ID=0x0000000E Parent=0x0000000B SizeRef=1968,858 Split=X Selected=0x418C7449 - DockNode ID=0x00000012 Parent=0x0000000E SizeRef=927,402 Selected=0x418C7449 - DockNode ID=0x00000013 Parent=0x0000000E SizeRef=1039,402 Selected=0x6F2B5B04 + DockNode ID=0x00000001 Parent=0x00000007 SizeRef=824,1134 CentralNode=1 Selected=0x7BD57D6A + DockNode ID=0x00000002 Parent=0x00000007 SizeRef=824,973 Selected=0x1DCB2623 + DockNode ID=0x0000000E Parent=0x0000000B SizeRef=1955,858 Split=X Selected=0x418C7449 + DockNode ID=0x00000012 Parent=0x0000000E SizeRef=842,402 Selected=0x418C7449 + DockNode ID=0x00000013 Parent=0x0000000E SizeRef=1111,402 Selected=0x6F2B5B04 DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6 - DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1108,1183 Split=Y Selected=0x3AEC3498 + DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=1121,1183 Split=Y Selected=0x3AEC3498 DockNode ID=0x0000000C Parent=0x00000004 SizeRef=1074,1681 Selected=0x3AEC3498 DockNode ID=0x0000000F Parent=0x00000004 SizeRef=1074,420 Selected=0xBB346584 diff --git a/src/gui_2.py b/src/gui_2.py index 03dc2ee..a64e273 100644 --- a/src/gui_2.py +++ b/src/gui_2.py @@ -1788,7 +1788,7 @@ def hello(): def _render_token_budget_panel(self) -> None: if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_token_budget_panel") - imgui.text("Session Telemetry") + imgui.text_colored(C_LBL, 'Prompt Utilization') usage = self.session_usage total = usage["input_tokens"] + usage["output_tokens"] if total == 0 and usage.get("total_tokens", 0) > 0: @@ -1929,9 +1929,8 @@ def hello(): def _render_tool_analytics_panel(self) -> None: if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_tool_analytics_panel") - if not imgui.collapsing_header("Tool Usage Analytics"): - if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_tool_analytics_panel") - return + imgui.text_colored(C_LBL, 'Tool Usage') + imgui.separator() now = time.time() if not hasattr(self, '_tool_stats_cache_time') or now - self._tool_stats_cache_time > 1.0: self._cached_tool_stats = getattr(self.controller, '_tool_stats', {}) @@ -1970,9 +1969,8 @@ def hello(): def _render_session_insights_panel(self) -> None: if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_session_insights_panel") - if not imgui.collapsing_header("Session Insights"): - if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_session_insights_panel") - return + imgui.text_colored(C_LBL, 'Session Insights') + imgui.separator() insights = self.controller.get_session_insights() imgui.text(f"Total Tokens: {insights.get('total_tokens', 0):,}") imgui.text(f"API Calls: {insights.get('call_count', 0)}") @@ -1987,7 +1985,9 @@ def hello(): def _render_usage_analytics_panel(self) -> None: if self.perf_profiling_enabled: self.perf_monitor.start_component("_render_usage_analytics_panel") self._render_token_budget_panel() + imgui.separator() self._render_tool_analytics_panel() + imgui.separator() self._render_session_insights_panel() if self.perf_profiling_enabled: self.perf_monitor.end_component("_render_usage_analytics_panel")