2.3 KiB
2.3 KiB
Implementation Plan: Architecture Boundary Hardening
Architecture reference: docs/guide_architecture.md
Phase 1: Patch Context Amnesia Leak & Portability (Meta-Tooling)
Focus: Stop mma_exec.py from injecting massive full-text dependencies and remove hardcoded external paths.
- Task 1.1: In
scripts/mma_exec.py, completely remove theUNFETTERED_MODULESconstant and its associatedif dep in UNFETTERED_MODULES:check. Ensure all imported local dependencies strictly usegenerate_skeleton().6875459 - [~] Task 1.2: In
scripts/mma_exec.pyandscripts/claude_mma_exec.py, remove the hardcoded reference toC:\projects\misc\setup_*.ps1. Rely on the active environment's PATH to resolvegeminiandclaude, or provide an.envconfigurable override.
Phase 2: Complete MCP Tool Integration & Seal HITL Bypass (Application Core)
Focus: Expose all native MCP tools in the config and GUI, and ensure mutating tools trigger user approval.
- Task 2.1: Update
manual_slop.tomlandproject_manager.py'sdefault_project()to include all new tools (e.g.,set_file_slice,py_update_definition,py_set_signature) under[agent.tools]. - Task 2.2: Update
gui_2.py's settings/config panels to expose toggles for these new tools. - Task 2.3: In
mcp_client.py, define aMUTATING_TOOLSconstant set. - Task 2.4: In
ai_client.py's provider loops (_send_gemini,_send_gemini_cli,_send_anthropic,_send_deepseek), update the tool execution logic: ifname in mcp_client.MUTATING_TOOLS, it MUST trigger a GUI approval mechanism (likepre_tool_callback) before dispatching the tool.
Phase 3: DAG Engine Cascading Blocks (Application Core)
Focus: Prevent infinite deadlocks when Tier 3 workers fail repeatedly.
- Task 3.1: In
dag_engine.py, add acascade_blocks()method toTrackDAG. This method should iterate through alltodotickets and if any of their dependencies areblocked, mark the ticket itself asblocked. - Task 3.2: In
multi_agent_conductor.py, updateConductorEngine.run(). Before callingself.engine.tick(), callself.track_dag.cascade_blocks()(or equivalent) so that blocked states propagate cleanly, allowing theall_doneor block detection logic to exit the while loop correctly.