From 25419f4aa3eef12dedf7dac1cd374ec4008c7e9d Mon Sep 17 00:00:00 2001 From: Ed_ Date: Tue, 12 May 2026 20:00:36 -0400 Subject: [PATCH] docs(conductor): Synchronize docs for track 'GUI Refactor & Stabilization' --- conductor/product-guidelines.md | 1 + conductor/tech-stack.md | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conductor/product-guidelines.md b/conductor/product-guidelines.md index 8516ff9..1ef2eef 100644 --- a/conductor/product-guidelines.md +++ b/conductor/product-guidelines.md @@ -23,6 +23,7 @@ - Utilize proper asynchronous batching and queue-based pipelines for background AI work, ensuring a data-oriented flow rather than tangled object-oriented state graphs. - **Strict State Management:** There must be a rigorous separation between the Main GUI rendering thread and daemon execution threads. The UI should *never* hang during AI communication or script execution. Use lock-protected queues and events for synchronization. - **Comprehensive Logging:** Aggressively log all actions, API payloads, tool calls, and executed scripts. Maintain timestamped JSON-L and markdown logs to ensure total transparency and debuggability. +- **Mandatory ImGui Verification:** All changes to the GUI (`gui_2.py`) MUST be verified using the custom AST linter (`scripts/check_imgui_scopes.py`) to ensure all ImGui scopes (begin/end, push/pop) are properly matched. Developers should prioritize the use of `src/imgui_scopes.py` context managers (`imscope`) over manual push/pop calls. - **Dependency Minimalism:** Limit external dependencies where possible. For instance, prefer standard library modules (like `urllib` and `html.parser` for web tools) over heavy third-party packages. ## Phase 5: Heavy Curation & Structural Integrity (MANDATORY) diff --git a/conductor/tech-stack.md b/conductor/tech-stack.md index 793922d..9693f1e 100644 --- a/conductor/tech-stack.md +++ b/conductor/tech-stack.md @@ -67,7 +67,7 @@ - **pywin32:** For custom OS window frame manipulation on Windows (e.g., minimizing, maximizing, closing, and dragging the borderless ImGui window). - **pytest:** For unit and integration testing, leveraging custom fixtures for live GUI verification. - **Taxonomy & Artifacts:** Enforces a clean root by organizing core implementation into a `src/` directory, and redirecting session logs and artifacts to configurable directories (defaulting to `logs/sessions/` and `scripts/generated/`). Temporary test data and test logs are siloed in `tests/artifacts/` and `tests/logs/`. -- **ApiHookClient:** A dedicated IPC client for automated GUI interaction and state inspection. +- **ApiHookClient:** A dedicated IPC client for automated GUI interaction and state inspection. Now supports simulating complex interactions including `drag` and `right_click` operations. - **mma-exec / mma.ps1:** Python-based execution engine and PowerShell wrapper for managing the 4-Tier MMA hierarchy and automated documentation mapping. - **dag_engine.py:** A native Python utility implementing `TrackDAG` and `ExecutionEngine` for dependency resolution, cycle detection, transitive blocking propagation, and programmable task execution loops. Optimized using **Kahn's Algorithm** and **iterative DFS** to eliminate recursion overhead and provide $O(V+E)$ performance. - **multi_agent_conductor.py:** Orchestrates the concurrent execution of implementation tracks using a non-blocking `ConductorEngine` and a thread-safe `WorkerPool`. Employs configurable concurrency limits and thread-local context isolation to manage multi-agent state. @@ -86,3 +86,5 @@ - **Interface-Driven Development (IDD):** Enforces a "Stub-and-Resolve" pattern where cross-module dependencies are resolved by generating signatures/contracts before implementation. - **UI Concern Isolation:** Enforces a strict separation between the GUI layer (Tkinter/ImGui) and the business logic (AppController). All platform-native UI actions, such as file and directory selection, are handled exclusively within the GUI layer. +ter/ImGui) and the business logic (AppController). All platform-native UI actions, such as file and directory selection, are handled exclusively within the GUI layer. +