Docstrings: remove State Mutations section, add ASCII Layout Maps to Context Management and MMA groups

This commit is contained in:
ed
2026-06-12 22:30:19 -04:00
parent 443f02a744
commit 6e59782d2b
+74 -27
View File
@@ -4252,13 +4252,15 @@ def render_context_modals(app: App) -> None:
Dispatches rendering calls to sub-modals relating to context management Dispatches rendering calls to sub-modals relating to context management
(empty context warning, file picker, missing files warning, and AST inspector). (empty context warning, file picker, missing files warning, and AST inspector).
State Mutations:
app.show_missing_files_modal (hides/closes missing files modal)
app.ui_new_context_preset_name (resets name on save)
app.controller (saves preset)
SSDL Shape: SSDL Shape:
`[I] -> [I:modals_dispatch]` `[I] -> [I:modals_dispatch]`
ASCII Layout Map:
Conditionally opens (in order):
[Empty Context Warning modal]
[Select Context Files modal]
[Missing Files Warning modal]
[Structural File Editor modal]
""" """
render_empty_context_modal(app) render_empty_context_modal(app)
render_add_context_files_modal(app) render_add_context_files_modal(app)
@@ -4351,13 +4353,20 @@ def render_context_preview_window(app: App) -> None:
Renders the Context Preview window. Automatically refreshes aggregated context previews in the background Renders the Context Preview window. Automatically refreshes aggregated context previews in the background
and renders formatted markdown text. and renders formatted markdown text.
State Mutations:
app.show_windows["Context Preview"], app.ui_separate_context_preview
app._last_context_preview_state (caches last previewed state to avoid redundant refresh)
app.context_preview_text (updates aggregation result text)
SSDL Shape: SSDL Shape:
`[I:preview_text] -> [B:clipboard_button] => [I:preview_box]` `[I:preview_text] -> [B:clipboard_button] => [I:preview_box]`
ASCII Layout Map:
+---------------------------------------------------------+
| Context Preview |
+---------------------------------------------------------+
| [Close] [Copy to Clipboard] |
| +-----------------------------------------------------+ |
| | # Context Composition | |
| | ## src/gui_2.py | |
| | ...aggregated markdown... | |
| +-----------------------------------------------------+ |
+---------------------------------------------------------+
""" """
_check_auto_refresh_context_preview(app) _check_auto_refresh_context_preview(app)
with imscope.window("Context Preview", app.show_windows["Context Preview"]) as (exp, opened): with imscope.window("Context Preview", app.show_windows["Context Preview"]) as (exp, opened):
@@ -5932,11 +5941,23 @@ def render_mma_dashboard(app: App) -> None:
""" """
Main MMA dashboard interface. Main MMA dashboard interface.
State Mutations:
None directly.
SSDL Shape: SSDL Shape:
`[I:focus_selector] -> [I:track_summary] -> [B:epic_planner] -> [I:track_browser] -> [B:global_controls] -> [I:usage_analytics] -> [I:ticket_queue] -> [I:task_dag] => [I:agent_streams]` `[I:focus_selector] -> [I:track_summary] -> [B:epic_planner] -> [I:track_browser] -> [B:global_controls] -> [I:usage_analytics] -> [I:ticket_queue] -> [I:task_dag] => [I:agent_streams]`
ASCII Layout Map:
+---------------------------------------------------------+
| [Focus: Tier 1 v] [Agent Streams v] |
| Track: my-track | Status: RUNNING | Cost: $0.0012 |
| Progress: ============================= 67.2% |
| [Plan Epic (Tier 1)] [Conductor Setup >] |
| Track Browser table... |
| [Step Mode] [Pause/Resume] |
| Usage section... |
| Ticket queue table... |
| [Task DAG panel] |
| [Ticket Editor if selected] |
| Agent Streams tabs... |
+---------------------------------------------------------+
""" """
if app.perf_profiling_enabled: app.perf_monitor.start_component("_render_mma_dashboard") if app.perf_profiling_enabled: app.perf_monitor.start_component("_render_mma_dashboard")
render_mma_focus_selector(app) render_mma_focus_selector(app)
@@ -6074,11 +6095,17 @@ def render_mma_epic_planner(app: App) -> None:
""" """
Renders the Epic Planning panel for Tier 1 strategy input and planning button. Renders the Epic Planning panel for Tier 1 strategy input and planning button.
State Mutations:
app.ui_epic_input (text input)
SSDL Shape: SSDL Shape:
`[I:input_textbox] => [B:plan_button]` `[I:input_textbox] => [B:plan_button]`
ASCII Layout Map:
+---------------------------------------------------------+
| Epic Planning (Tier 1) |
| +-----------------------------------------------------+ |
| | Describe the epic goal... | |
| +-----------------------------------------------------+ |
| [Plan Epic (Tier 1) ] |
+---------------------------------------------------------+
""" """
imgui.text_colored(C_LBL(), 'Epic Planning (Tier 1)') imgui.text_colored(C_LBL(), 'Epic Planning (Tier 1)')
_, app.ui_epic_input = imgui.input_text_multiline('##epic_input', app.ui_epic_input, imgui.ImVec2(-1, 80)) _, app.ui_epic_input = imgui.input_text_multiline('##epic_input', app.ui_epic_input, imgui.ImVec2(-1, 80))
@@ -6190,12 +6217,19 @@ def render_mma_ticket_editor(app: App) -> None:
Renders the ticket detail editor panel, letting the user modify priority, target, Renders the ticket detail editor panel, letting the user modify priority, target,
and persona override, mark a ticket complete, or delete it. and persona override, mark a ticket complete, or delete it.
State Mutations:
app.active_tickets (modifies status/priority/override fields via app._push_mma_state_update)
app.ui_selected_ticket_id
SSDL Shape: SSDL Shape:
`[I:ticket_details] -> [B:combo_selectors] => [B:action_buttons]` `[I:ticket_details] -> [B:combo_selectors] => [B:action_buttons]`
ASCII Layout Map:
+---------------------------------------------------------+
| Editing: ticket-042 |
| Status: in_progress |
| Priority: [medium v] |
| Target: src/gui_2.py |
| Depends on: ticket-041, ticket-040 |
| Persona Override: [None v] |
| [Mark Complete] [Delete] |
+---------------------------------------------------------+
""" """
imgui.separator(); imgui.text_colored(C_VAL(), f"Editing: {app.ui_selected_ticket_id}") imgui.separator(); imgui.text_colored(C_VAL(), f"Editing: {app.ui_selected_ticket_id}")
ticket = next((t for t in app.active_tickets if str(t.get('id', '')) == app.ui_selected_ticket_id), None) ticket = next((t for t in app.active_tickets if str(t.get('id', '')) == app.ui_selected_ticket_id), None)
@@ -6220,11 +6254,17 @@ def render_mma_agent_streams(app: App) -> None:
""" """
Renders the agent execution stream panels in a tabbed view for Tier 1, 2, 3, and 4. Renders the agent execution stream panels in a tabbed view for Tier 1, 2, 3, and 4.
State Mutations:
app.show_windows (toggles pop-out sub-windows)
SSDL Shape: SSDL Shape:
`[I] -> [B:tab_bar] => [I:stream_panels]` `[I] -> [B:tab_bar] => [I:stream_panels]`
ASCII Layout Map:
+---------------------------------------------------------+
| [Tier 1] [Tier 2] [Tier 3] [Tier 4] ([Beads]) |
| [ ] Pop Out Tier 1 |
| +-----------------------------------------------------+ |
| | Tier 1: Strategy stream text... | |
| +-----------------------------------------------------+ |
+---------------------------------------------------------+
""" """
imgui.text("Agent Streams") imgui.text("Agent Streams")
if imgui.begin_tab_bar("mma_streams_tabs"): if imgui.begin_tab_bar("mma_streams_tabs"):
@@ -6451,12 +6491,19 @@ def render_task_dag_panel(app: App) -> None: # 4. Task DAG Visualizer
Renders the interactive node editor DAG visualizer, mapping ticket relationships Renders the interactive node editor DAG visualizer, mapping ticket relationships
and allowing creation or deletion of links. and allowing creation or deletion of links.
State Mutations:
app.ui_selected_ticket_id (node selection)
app.active_tickets (updates dependency lists on link creation or deletion)
SSDL Shape: SSDL Shape:
`[I:task_nodes] -> [B:node_editor_canvas] => [I:link_connections]` `[I:task_nodes] -> [B:node_editor_canvas] => [I:link_connections]`
ASCII Layout Map:
+---------------------------------------------------------+
| Task DAG |
| +-----------------------------------------------------+ |
| | [ticket-041]--->[ticket-042]--->[ticket-043] | |
| | | | |
| | [ticket-040] | |
| +-----------------------------------------------------+ |
| [Add Ticket] |
+---------------------------------------------------------+
""" """
imgui.text("Task DAG") imgui.text("Task DAG")
if (app.active_track or app.active_tickets) and app.node_editor_ctx: if (app.active_track or app.active_tickets) and app.node_editor_ctx: