feat(mma): Enable manual ticket approval via Hook API for Step Mode

This commit is contained in:
2026-05-02 13:48:14 -04:00
parent 9f67a31b2f
commit 7fdf6c9782
4 changed files with 35 additions and 2 deletions
+18 -1
View File
@@ -605,7 +605,7 @@ class HookHandler(BaseHTTPRequestHandler):
elif self.path == "/api/mma/dag/mutate":
def mutate_dag():
try:
func = _get_app_attr(app, "_mutate_dag")
func = _get_app_attr(app, "mutate_dag")
if func: func(data)
except Exception as e:
sys.stderr.write(f"[DEBUG] Hook API mutate_dag error: {e}\n")
@@ -618,6 +618,23 @@ class HookHandler(BaseHTTPRequestHandler):
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"status": "queued"}).encode("utf-8"))
elif self.path == "/api/mma/ticket/approve":
ticket_id = data.get("ticket_id")
def approve_ticket():
try:
func = _get_app_attr(app, "approve_ticket")
if func: func(ticket_id)
except Exception as e:
sys.stderr.write(f"[DEBUG] Hook API approve_ticket error: {e}\n")
sys.stderr.flush()
lock = _get_app_attr(app, "_pending_gui_tasks_lock")
tasks = _get_app_attr(app, "_pending_gui_tasks")
if lock and tasks is not None:
with lock: tasks.append({"action": "custom_callback", "callback": approve_ticket})
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(json.dumps({"status": "queued"}).encode("utf-8"))
else:
self.send_response(404)
self.end_headers()