1.8 KiB
1.8 KiB
Implementation Plan: Manual Block/Unblock Control (manual_block_control_20260306)
Reference: Spec | Architecture Guide
Phase 1: Add Manual Block Fields
Focus: Add manual_block flag to Ticket
-
Task 1.1: Initialize MMA Environment
-
Task 1.2: Add manual_block field to Ticket (
094a6c3)- WHERE:
src/models.pyTicketdataclass - WHAT: Add
manual_block: bool = False - HOW:
manual_block: bool = False
- WHERE:
-
Task 1.3: Add mark_manual_block method (
094a6c3)- WHERE:
src/models.pyTicket - WHAT: Method to set manual block with reason
- HOW:
def mark_manual_block(self, reason: str) -> None: self.status = "blocked" self.blocked_reason = f"[MANUAL] {reason}" self.manual_block = True
- WHERE:
Phase 2: Block/Unblock UI
Focus: Add block buttons to ticket display
-
Task 2.1: Add block button (
2ff5a8b)- WHERE:
src/gui_2.pyticket rendering - WHAT: Button to block with reason input
- HOW: Modal with text input for reason
- WHERE:
-
Task 2.2: Add unblock button (
2ff5a8b)- WHERE:
src/gui_2.pyticket rendering - WHAT: Button to clear manual block
- HOW:
if ticket.manual_block and ticket.status == "blocked": if imgui.button("Unblock"): ticket.status = "todo" ticket.blocked_reason = None ticket.manual_block = False
- WHERE:
Phase 3: Cascade Integration
Focus: Trigger cascade on block/unblock
- Task 3.1: Call cascade_blocks after manual block (
c6d0bc8)- WHERE:
src/gui_2.pyorsrc/multi_agent_conductor.py - WHAT: Update downstream tickets
- HOW:
self.dag.cascade_blocks()
- WHERE:
Phase 4: Testing
- Task 4.1: Write unit tests
- Task 4.2: Conductor - Phase Verification