52 lines
3.3 KiB
TOML
52 lines
3.3 KiB
TOML
role = "tier3-worker"
|
|
docs = ["conductor/workflow.md"]
|
|
prompt = """
|
|
Refactor the tier stream display in @gui_2.py: replace the 4 collapsing_header sections inside _render_mma_dashboard with 4 separate dockable imgui.begin() windows.
|
|
|
|
CHANGES NEEDED:
|
|
|
|
1. In __init__ (around line 207), in the _default_windows dict, add 4 new entries after "MMA Dashboard":
|
|
"Tier 1: Strategy": True,
|
|
"Tier 2: Tech Lead": True,
|
|
"Tier 3: Workers": True,
|
|
"Tier 4: QA": True,
|
|
|
|
2. In _render_mma_dashboard (find the 4 collapsing_header blocks added for Tier 1/2/3/4 and the _tier_stream_last_len auto-scroll logic), REMOVE all of it. The method should no longer render any tier stream content.
|
|
|
|
3. Add a new method _render_tier_stream_panel(self, tier_key: str, stream_key: str | None) to App class (place it after _render_mma_dashboard). It renders content for one tier:
|
|
- If stream_key is not None (Tier 1, 2, 4): show self.mma_streams.get(stream_key, "") via imgui.text_wrapped inside a begin_child("##stream_content", ImVec2(-1, -1))
|
|
- If stream_key is None (Tier 3): aggregate all keys in self.mma_streams containing "Tier 3", show each with a ticket sub-header (imgui.text(ticket_id) then begin_child per ticket)
|
|
- Auto-scroll: if content length changed since last frame (tracked in self._tier_stream_last_len dict), call imgui.set_scroll_here_y(1.0)
|
|
|
|
4. In _gui_func, after the "MMA Dashboard" window block (around line 1592), add 4 new window blocks following the exact same pattern as other windows:
|
|
if self.show_windows.get("Tier 1: Strategy", False):
|
|
exp, self.show_windows["Tier 1: Strategy"] = imgui.begin("Tier 1: Strategy", self.show_windows["Tier 1: Strategy"])
|
|
if exp:
|
|
self._render_tier_stream_panel("Tier 1", "Tier 1")
|
|
imgui.end()
|
|
if self.show_windows.get("Tier 2: Tech Lead", False):
|
|
exp, self.show_windows["Tier 2: Tech Lead"] = imgui.begin("Tier 2: Tech Lead", self.show_windows["Tier 2: Tech Lead"])
|
|
if exp:
|
|
self._render_tier_stream_panel("Tier 2", "Tier 2 (Tech Lead)")
|
|
imgui.end()
|
|
if self.show_windows.get("Tier 3: Workers", False):
|
|
exp, self.show_windows["Tier 3: Workers"] = imgui.begin("Tier 3: Workers", self.show_windows["Tier 3: Workers"])
|
|
if exp:
|
|
self._render_tier_stream_panel("Tier 3", None)
|
|
imgui.end()
|
|
if self.show_windows.get("Tier 4: QA", False):
|
|
exp, self.show_windows["Tier 4: QA"] = imgui.begin("Tier 4: QA", self.show_windows["Tier 4: QA"])
|
|
if exp:
|
|
self._render_tier_stream_panel("Tier 4", "Tier 4 (QA)")
|
|
imgui.end()
|
|
|
|
5. Update @tests/test_mma_dashboard_streams.py — replace the 3 existing tests with new ones that test _render_tier_stream_panel instead:
|
|
- test_tier1_renders_stream_content: call App._render_tier_stream_panel(app, "Tier 1", "Tier 1") with mma_streams={"Tier 1": "hello"}, assert imgui.text_wrapped called with "hello"
|
|
- test_tier3_renders_worker_subheaders: call App._render_tier_stream_panel(app, "Tier 3", None) with mma_streams={"Tier 3 (Worker): T-001": "out1", "Tier 3 (Worker): T-002": "out2"}, assert imgui.text called with args containing "T-001" and "T-002"
|
|
- test_mma_dashboard_no_longer_has_strategy_box: call App._render_mma_dashboard(app), assert imgui.collapsing_header NOT called with any string containing "Tier"
|
|
|
|
Also confirm @tests/test_mma_approval_indicators.py still passes unchanged.
|
|
|
|
Use exactly 1-space indentation for Python code.
|
|
"""
|