Compare commits
9 Commits
b9686392d7
...
129cc33d01
| Author | SHA1 | Date | |
|---|---|---|---|
| 129cc33d01 | |||
| be7174ca53 | |||
| 763bc2e734 | |||
| 10724f86a5 | |||
| 535667b51f | |||
| e28f89f313 | |||
| 21c74772f6 | |||
| 2e9c995bbe | |||
| e72d512372 |
@@ -15,6 +15,8 @@ Read at session start: `conductor/tech-stack.md`, `conductor/workflow.md`
|
||||
- Break down tasks into specific technical steps for Tier 3 Workers
|
||||
- Maintain PERSISTENT context throughout a track's implementation phase (NO Context Amnesia)
|
||||
- Review implementations and coordinate bug fixes via Tier 4 QA
|
||||
- **CRITICAL: ATOMIC PER-TASK COMMITS**: You MUST commit your progress on a per-task basis. Immediately after a task is verified successfully, you must stage the changes, commit them, attach the git note summary, and update `plan.md` before moving to the next task. Do NOT batch multiple tasks into a single commit.
|
||||
- **Meta-Level Sanity Check**: After completing a track (or upon explicit request), perform a codebase sanity check. Run `uv run ruff check .` and `uv run mypy --explicit-package-bases .` to ensure Tier 3 Workers haven't degraded static analysis constraints. Identify broken simulation tests and append them to a tech debt track or fix them immediately.
|
||||
|
||||
## Delegation Commands (PowerShell)
|
||||
|
||||
|
||||
@@ -4,26 +4,26 @@ Architecture reference: [docs/guide_architecture.md](../../../docs/guide_archite
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Dead Code Removal
|
||||
## Phase 1: Dead Code Removal [checkpoint: be7174c]
|
||||
Focus: Delete the two confirmed dead code blocks — no behavior change, pure deletion.
|
||||
|
||||
- [ ] Task 1.1: In `gui_2.py`, delete the first `_render_comms_history_panel` definition.
|
||||
- [x] Task 1.1: In `gui_2.py`, delete the first `_render_comms_history_panel` definition. 2e9c995
|
||||
- **Location**: Lines 3041-3073 (use `py_get_code_outline` to confirm current line numbers before editing).
|
||||
- **What**: The entire method body from `def _render_comms_history_panel(self) -> None:` through `imgui.end_child()` and the following blank line. The live version begins at ~line 3435 after this deletion shifts lines.
|
||||
- **How**: Use `set_file_slice` to delete lines 3041-3073 (replace with empty string). Then run `py_get_code_outline` to confirm only one `_render_comms_history_panel` remains.
|
||||
- **Verify**: `grep -n "_render_comms_history_panel" gui_2.py` should show exactly 2 hits: the `def` line and the call site in `_gui_func`.
|
||||
|
||||
- [ ] Task 1.2: In `gui_2.py` `__init__`, delete the duplicate state variable assignments.
|
||||
- [x] Task 1.2: In `gui_2.py` `__init__`, delete the duplicate state variable assignments. e28f89f
|
||||
- **Location**: Second occurrences of `ui_conductor_setup_summary`, `ui_new_track_name`, `ui_new_track_desc`, `ui_new_track_type`. Currently at lines 308-311 (grep to confirm exact lines before editing: `grep -n "ui_conductor_setup_summary" gui_2.py`).
|
||||
- **What**: Delete these 4 lines. The first correct assignments remain at lines 218-221.
|
||||
- **How**: Use `set_file_slice` to remove lines 308-311 (replace with empty string).
|
||||
- **Verify**: Each variable should appear exactly once in `__init__` (grep to confirm).
|
||||
|
||||
- [ ] Task 1.3: Write/run tests to confirm no regressions.
|
||||
- [x] Task 1.3: Write/run tests to confirm no regressions. 535667b
|
||||
- Run `uv run pytest tests/ -x -q` and confirm all tests pass.
|
||||
- Run `uv run python -c "from gui_2 import App; print('import ok')"` to confirm no syntax errors.
|
||||
|
||||
- [ ] Task 1.4: Conductor — User Manual Verification
|
||||
- [x] Task 1.4: Conductor — User Manual Verification
|
||||
- Start the app with `uv run python gui_2.py` and confirm it launches without error.
|
||||
- Open "Operations Hub" → "Comms History" tab and confirm the comms panel renders (color legend visible).
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[ai]
|
||||
provider = "gemini_cli"
|
||||
model = "gemini-2.0-flash"
|
||||
model = "gemini-3-flash-preview"
|
||||
temperature = 0.0
|
||||
max_tokens = 8192
|
||||
history_trunc_limit = 8000
|
||||
|
||||
38
gui_2.py
38
gui_2.py
@@ -305,10 +305,6 @@ class App:
|
||||
agent_tools_cfg = self.project.get("agent", {}).get("tools", {})
|
||||
self.ui_agent_tools: dict[str, bool] = {t: agent_tools_cfg.get(t, True) for t in AGENT_TOOL_NAMES}
|
||||
self.tracks: list[dict[str, Any]] = []
|
||||
self.ui_conductor_setup_summary = ""
|
||||
self.ui_new_track_name = ""
|
||||
self.ui_new_track_desc = ""
|
||||
self.ui_new_track_type = "feature"
|
||||
self._show_add_ticket_form = False
|
||||
self.ui_new_ticket_id = ""
|
||||
self.ui_new_ticket_desc = ""
|
||||
@@ -3037,40 +3033,6 @@ class App:
|
||||
imgui.separator()
|
||||
imgui.end_child()
|
||||
|
||||
def _render_comms_history_panel(self) -> None:
|
||||
imgui.text_colored(vec4(200, 220, 160), f"Status: {self.ai_status}")
|
||||
imgui.same_line()
|
||||
if imgui.button("Clear##comms"):
|
||||
ai_client.clear_comms_log()
|
||||
self._comms_log.clear()
|
||||
imgui.same_line()
|
||||
if imgui.button("Load Log"):
|
||||
self._cb_load_prior_log()
|
||||
if self.is_viewing_prior_session:
|
||||
imgui.same_line()
|
||||
if imgui.button("Exit Prior Session"):
|
||||
self.is_viewing_prior_session = False
|
||||
self.prior_session_entries.clear()
|
||||
self.ai_status = "idle"
|
||||
imgui.separator()
|
||||
imgui.text_colored(vec4(255, 200, 100), "VIEWING PRIOR SESSION")
|
||||
imgui.separator()
|
||||
imgui.begin_child("scroll_area")
|
||||
clipper = imgui.ListClipper()
|
||||
clipper.begin(len(self._comms_log))
|
||||
while clipper.step():
|
||||
for i in range(clipper.display_start, clipper.display_end):
|
||||
entry = self._comms_log[i]
|
||||
imgui.text_colored(C_KEY, f"[{entry.get('direction')}] {entry.get('type')}")
|
||||
imgui.same_line()
|
||||
if imgui.button(f"[+]##c{i}"):
|
||||
self.show_text_viewer = True
|
||||
self.text_viewer_title = f"Comms Entry #{i}"
|
||||
self.text_viewer_content = json.dumps(entry.get("payload"), indent=2)
|
||||
imgui.text_unformatted(str(entry.get("payload"))[:200] + "...")
|
||||
imgui.separator()
|
||||
imgui.end_child()
|
||||
|
||||
def _render_mma_dashboard(self) -> None:
|
||||
# Task 5.3: Dense Summary Line
|
||||
track_name = self.active_track.description if self.active_track else "None"
|
||||
|
||||
@@ -79,7 +79,7 @@ DockId=0x0000000F,2
|
||||
|
||||
[Window][Theme]
|
||||
Pos=0,17
|
||||
Size=32,824
|
||||
Size=197,824
|
||||
Collapsed=0
|
||||
DockId=0x00000005,1
|
||||
|
||||
@@ -89,14 +89,14 @@ Size=900,700
|
||||
Collapsed=0
|
||||
|
||||
[Window][Diagnostics]
|
||||
Pos=34,17
|
||||
Size=596,326
|
||||
Pos=199,17
|
||||
Size=606,326
|
||||
Collapsed=0
|
||||
DockId=0x00000010,1
|
||||
|
||||
[Window][Context Hub]
|
||||
Pos=0,17
|
||||
Size=32,824
|
||||
Size=197,824
|
||||
Collapsed=0
|
||||
DockId=0x00000005,0
|
||||
|
||||
@@ -107,26 +107,26 @@ Collapsed=0
|
||||
DockId=0x0000000D,0
|
||||
|
||||
[Window][Discussion Hub]
|
||||
Pos=632,17
|
||||
Size=1048,592
|
||||
Pos=807,17
|
||||
Size=633,592
|
||||
Collapsed=0
|
||||
DockId=0x00000012,0
|
||||
|
||||
[Window][Operations Hub]
|
||||
Pos=34,17
|
||||
Size=596,326
|
||||
Pos=199,17
|
||||
Size=606,326
|
||||
Collapsed=0
|
||||
DockId=0x00000010,0
|
||||
|
||||
[Window][Files & Media]
|
||||
Pos=0,843
|
||||
Size=32,357
|
||||
Size=197,357
|
||||
Collapsed=0
|
||||
DockId=0x00000006,1
|
||||
|
||||
[Window][AI Settings]
|
||||
Pos=0,843
|
||||
Size=32,357
|
||||
Size=197,357
|
||||
Collapsed=0
|
||||
DockId=0x00000006,0
|
||||
|
||||
@@ -136,14 +136,14 @@ Size=416,325
|
||||
Collapsed=0
|
||||
|
||||
[Window][MMA Dashboard]
|
||||
Pos=632,611
|
||||
Size=1048,589
|
||||
Pos=807,611
|
||||
Size=633,589
|
||||
Collapsed=0
|
||||
DockId=0x00000013,0
|
||||
|
||||
[Window][Log Management]
|
||||
Pos=632,17
|
||||
Size=1048,592
|
||||
Pos=807,17
|
||||
Size=633,592
|
||||
Collapsed=0
|
||||
DockId=0x00000012,1
|
||||
|
||||
@@ -153,26 +153,26 @@ Size=262,209
|
||||
Collapsed=0
|
||||
|
||||
[Window][Tier 1: Strategy]
|
||||
Pos=632,611
|
||||
Size=1048,589
|
||||
Pos=807,611
|
||||
Size=633,589
|
||||
Collapsed=0
|
||||
DockId=0x00000013,1
|
||||
|
||||
[Window][Tier 2: Tech Lead]
|
||||
Pos=366,763
|
||||
Size=264,437
|
||||
Pos=644,763
|
||||
Size=161,437
|
||||
Collapsed=0
|
||||
DockId=0x00000017,0
|
||||
|
||||
[Window][Tier 4: QA]
|
||||
Pos=34,763
|
||||
Size=330,437
|
||||
Pos=199,763
|
||||
Size=443,437
|
||||
Collapsed=0
|
||||
DockId=0x00000016,0
|
||||
|
||||
[Window][Tier 3: Workers]
|
||||
Pos=34,345
|
||||
Size=596,416
|
||||
Pos=199,345
|
||||
Size=606,416
|
||||
Collapsed=0
|
||||
DockId=0x00000014,0
|
||||
|
||||
@@ -212,24 +212,24 @@ Column 3 Weight=1.0000
|
||||
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,17 Size=1680,1183 Split=Y
|
||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=1440,1183 Split=Y
|
||||
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F
|
||||
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=2056,1183 Split=X
|
||||
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=805,1183 Split=X
|
||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=Y Selected=0xF4139CA2
|
||||
DockNode ID=0x00000002 Parent=0x0000000B SizeRef=1029,1119 Split=X Selected=0xF4139CA2
|
||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=728,858 Split=Y Selected=0x8CA2375C
|
||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=197,858 Split=Y Selected=0x8CA2375C
|
||||
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,824 Selected=0xF4139CA2
|
||||
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,995 CentralNode=1 Selected=0x7BD57D6A
|
||||
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=1326,858 Split=Y Selected=0x418C7449
|
||||
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,447 Selected=0xB4CBF21A
|
||||
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=606,858 Split=Y Selected=0x418C7449
|
||||
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,447 Selected=0x418C7449
|
||||
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,1171 Split=Y Selected=0x655BC6E9
|
||||
DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1469,570 Selected=0x655BC6E9
|
||||
DockNode ID=0x00000015 Parent=0x00000011 SizeRef=1469,599 Split=X Selected=0x5CDB7A4B
|
||||
DockNode ID=0x00000016 Parent=0x00000015 SizeRef=736,599 Selected=0x5CDB7A4B
|
||||
DockNode ID=0x00000017 Parent=0x00000015 SizeRef=588,599 Selected=0x390E7942
|
||||
DockNode ID=0x00000016 Parent=0x00000015 SizeRef=443,599 Selected=0x5CDB7A4B
|
||||
DockNode ID=0x00000017 Parent=0x00000015 SizeRef=161,599 Selected=0x390E7942
|
||||
DockNode ID=0x00000001 Parent=0x0000000B SizeRef=1029,775 Selected=0x8B4EBFA6
|
||||
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
||||
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=1048,1183 Split=Y Selected=0x2C0206CE
|
||||
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=633,1183 Split=Y Selected=0x2C0206CE
|
||||
DockNode ID=0x00000012 Parent=0x00000004 SizeRef=905,811 Selected=0x6F2B5B04
|
||||
DockNode ID=0x00000013 Parent=0x00000004 SizeRef=905,807 Selected=0x3AEC3498
|
||||
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
||||
|
||||
@@ -8,5 +8,5 @@ active = "main"
|
||||
|
||||
[discussions.main]
|
||||
git_commit = ""
|
||||
last_updated = "2026-03-02T13:16:02"
|
||||
last_updated = "2026-03-02T14:28:49"
|
||||
history = []
|
||||
|
||||
Reference in New Issue
Block a user