checkpoint
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
[ai]
|
[ai]
|
||||||
provider = "gemini"
|
provider = "gemini_cli"
|
||||||
model = "gemini-2.5-flash-lite"
|
model = "gemini-2.5-flash-lite"
|
||||||
temperature = 0.0
|
temperature = 0.0
|
||||||
max_tokens = 8192
|
max_tokens = 8192
|
||||||
@@ -9,7 +9,7 @@ system_prompt = ""
|
|||||||
[theme]
|
[theme]
|
||||||
palette = "ImGui Dark"
|
palette = "ImGui Dark"
|
||||||
font_size = 16.0
|
font_size = 16.0
|
||||||
scale = 1.0
|
scale = 1.2999999523162842
|
||||||
font_path = ""
|
font_path = ""
|
||||||
|
|
||||||
[projects]
|
[projects]
|
||||||
@@ -32,7 +32,7 @@ active = "C:\\projects\\manual_slop\\tests\\temp_project.toml"
|
|||||||
"Discussion Hub" = true
|
"Discussion Hub" = true
|
||||||
"Operations Hub" = true
|
"Operations Hub" = true
|
||||||
Theme = true
|
Theme = true
|
||||||
"Log Management" = false
|
"Log Management" = true
|
||||||
Diagnostics = true
|
Diagnostics = true
|
||||||
|
|
||||||
[headless]
|
[headless]
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ main_context = "MainContext.md"
|
|||||||
system_prompt = ""
|
system_prompt = ""
|
||||||
word_wrap = true
|
word_wrap = true
|
||||||
summary_only = false
|
summary_only = false
|
||||||
|
auto_scroll_comms = true
|
||||||
|
auto_scroll_tool_calls = true
|
||||||
|
|
||||||
[output]
|
[output]
|
||||||
output_dir = "./md_gen"
|
output_dir = "./md_gen"
|
||||||
@@ -42,3 +44,9 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[gemini_cli]
|
||||||
|
binary_path = "gemini"
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
|||||||
@@ -85,5 +85,5 @@ history = [
|
|||||||
|
|
||||||
[discussions."test gemini mock interaction"]
|
[discussions."test gemini mock interaction"]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-24T22:12:47"
|
last_updated = "2026-02-27T11:50:13"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -78,8 +78,8 @@ Collapsed=0
|
|||||||
DockId=0x0000000F,2
|
DockId=0x0000000F,2
|
||||||
|
|
||||||
[Window][Theme]
|
[Window][Theme]
|
||||||
Pos=0,17
|
Pos=0,20
|
||||||
Size=588,545
|
Size=832,824
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000005,1
|
DockId=0x00000005,1
|
||||||
|
|
||||||
@@ -89,14 +89,14 @@ Size=900,700
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][Diagnostics]
|
[Window][Diagnostics]
|
||||||
Pos=590,17
|
Pos=834,20
|
||||||
Size=530,1228
|
Size=1343,935
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000E,0
|
DockId=0x00000010,0
|
||||||
|
|
||||||
[Window][Context Hub]
|
[Window][Context Hub]
|
||||||
Pos=0,17
|
Pos=0,20
|
||||||
Size=588,545
|
Size=832,824
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000005,0
|
DockId=0x00000005,0
|
||||||
|
|
||||||
@@ -107,26 +107,26 @@ Collapsed=0
|
|||||||
DockId=0x0000000D,0
|
DockId=0x0000000D,0
|
||||||
|
|
||||||
[Window][Discussion Hub]
|
[Window][Discussion Hub]
|
||||||
Pos=1122,17
|
Pos=2179,20
|
||||||
Size=558,1228
|
Size=1262,1634
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000004,0
|
DockId=0x00000004,0
|
||||||
|
|
||||||
[Window][Operations Hub]
|
[Window][Operations Hub]
|
||||||
Pos=590,17
|
Pos=834,20
|
||||||
Size=530,1228
|
Size=1343,935
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x0000000E,1
|
DockId=0x00000010,1
|
||||||
|
|
||||||
[Window][Files & Media]
|
[Window][Files & Media]
|
||||||
Pos=0,564
|
Pos=0,846
|
||||||
Size=588,681
|
Size=832,808
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,1
|
DockId=0x00000006,1
|
||||||
|
|
||||||
[Window][AI Settings]
|
[Window][AI Settings]
|
||||||
Pos=0,564
|
Pos=0,846
|
||||||
Size=588,681
|
Size=832,808
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,0
|
DockId=0x00000006,0
|
||||||
|
|
||||||
@@ -136,32 +136,51 @@ Size=416,325
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][MMA Dashboard]
|
[Window][MMA Dashboard]
|
||||||
Pos=157,466
|
Pos=834,957
|
||||||
Size=676,653
|
Size=1343,697
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
DockId=0x00000011,0
|
||||||
|
|
||||||
[Table][0xFB6E3870,3]
|
[Window][Log Management]
|
||||||
|
Pos=2179,20
|
||||||
|
Size=1262,1634
|
||||||
|
Collapsed=0
|
||||||
|
DockId=0x00000004,1
|
||||||
|
|
||||||
|
[Table][0xFB6E3870,4]
|
||||||
RefScale=13
|
RefScale=13
|
||||||
Column 0 Width=80
|
Column 0 Width=80
|
||||||
Column 1 Weight=1.0000
|
Column 1 Weight=1.0000
|
||||||
Column 2 Width=100
|
Column 2 Width=100
|
||||||
|
Column 3 Width=120
|
||||||
|
|
||||||
|
[Table][0xFC15AE63,7]
|
||||||
|
Column 0 Weight=1.4012
|
||||||
|
Column 1 Weight=0.5285
|
||||||
|
Column 2 Weight=0.5347
|
||||||
|
Column 3 Weight=2.4767
|
||||||
|
Column 4 Weight=0.6084
|
||||||
|
Column 5 Weight=0.4425
|
||||||
|
Column 6 Weight=1.0079
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
|
||||||
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
|
||||||
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
|
||||||
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=1680,1228 Split=Y
|
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,20 Size=3441,1634 Split=Y
|
||||||
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F
|
DockNode ID=0x0000000C Parent=0xAFC85805 SizeRef=1362,1041 Split=X Selected=0x5D11106F
|
||||||
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=1120,1183 Split=X
|
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=2177,1183 Split=X
|
||||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=Y Selected=0xF4139CA2
|
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=0x00000002 Parent=0x0000000B SizeRef=1029,1119 Split=X Selected=0xF4139CA2
|
||||||
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=588,858 Split=Y Selected=0x8CA2375C
|
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=832,858 Split=Y Selected=0x8CA2375C
|
||||||
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,545 Selected=0xF4139CA2
|
DockNode ID=0x00000005 Parent=0x00000007 SizeRef=295,824 Selected=0xF4139CA2
|
||||||
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,636 CentralNode=1 Selected=0x7BD57D6A
|
DockNode ID=0x00000006 Parent=0x00000007 SizeRef=295,724 CentralNode=1 Selected=0x7BD57D6A
|
||||||
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=530,858 Selected=0x418C7449
|
DockNode ID=0x0000000E Parent=0x00000002 SizeRef=1343,858 Split=Y Selected=0x418C7449
|
||||||
|
DockNode ID=0x00000010 Parent=0x0000000E SizeRef=868,887 Selected=0x418C7449
|
||||||
|
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=868,661 Selected=0x3AEC3498
|
||||||
DockNode ID=0x00000001 Parent=0x0000000B SizeRef=1029,775 Selected=0x8B4EBFA6
|
DockNode ID=0x00000001 Parent=0x0000000B SizeRef=1029,775 Selected=0x8B4EBFA6
|
||||||
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
|
||||||
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=558,1183 Selected=0x6F2B5B04
|
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=1262,1183 Selected=0x6F2B5B04
|
||||||
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
||||||
|
|
||||||
;;;<<<Layout_655921752_Default>>>;;;
|
;;;<<<Layout_655921752_Default>>>;;;
|
||||||
|
|||||||
@@ -29,3 +29,8 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
active_track_id = ""
|
||||||
|
tracks = []
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ active = "main"
|
|||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T21:32:42"
|
last_updated = "2026-02-27T13:51:45"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -33,3 +33,8 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
active_track_id = ""
|
||||||
|
tracks = []
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ auto_add = true
|
|||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T21:33:34"
|
last_updated = "2026-02-27T13:50:46"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -30,3 +30,6 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ roles = [
|
|||||||
"Reasoning",
|
"Reasoning",
|
||||||
]
|
]
|
||||||
history = []
|
history = []
|
||||||
active = "TestDisc_1772159592"
|
active = "TestDisc_1772218225"
|
||||||
auto_add = true
|
auto_add = true
|
||||||
|
|
||||||
[discussions.TestDisc_1772159592]
|
[discussions.TestDisc_1772218225]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T21:33:27"
|
last_updated = "2026-02-27T13:50:39"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ base_dir = "."
|
|||||||
paths = []
|
paths = []
|
||||||
|
|
||||||
[gemini_cli]
|
[gemini_cli]
|
||||||
binary_path = "gemini"
|
binary_path = "\"C:\\projects\\manual_slop\\.venv\\Scripts\\python.exe\" \"C:\\projects\\manual_slop\\tests\\mock_gemini_cli.py\""
|
||||||
|
|
||||||
[deepseek]
|
[deepseek]
|
||||||
reasoning_effort = "medium"
|
reasoning_effort = "medium"
|
||||||
@@ -33,3 +33,8 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
active_track_id = ""
|
||||||
|
tracks = []
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ auto_add = true
|
|||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T21:34:05"
|
last_updated = "2026-02-27T13:51:49"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -33,3 +33,8 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
active_track_id = ""
|
||||||
|
tracks = []
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ auto_add = true
|
|||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T21:33:51"
|
last_updated = "2026-02-27T13:51:03"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ main_context = ""
|
|||||||
word_wrap = true
|
word_wrap = true
|
||||||
summary_only = false
|
summary_only = false
|
||||||
auto_scroll_comms = true
|
auto_scroll_comms = true
|
||||||
auto_scroll_tool_calls = true
|
auto_scroll_tool_calls = false
|
||||||
|
|
||||||
[output]
|
[output]
|
||||||
output_dir = "./md_gen"
|
output_dir = "./md_gen"
|
||||||
@@ -33,3 +33,8 @@ search_files = true
|
|||||||
get_file_summary = true
|
get_file_summary = true
|
||||||
web_search = true
|
web_search = true
|
||||||
fetch_url = true
|
fetch_url = true
|
||||||
|
|
||||||
|
[mma]
|
||||||
|
epic = ""
|
||||||
|
active_track_id = ""
|
||||||
|
tracks = []
|
||||||
|
|||||||
@@ -5,17 +5,20 @@ roles = [
|
|||||||
"System",
|
"System",
|
||||||
"Reasoning",
|
"Reasoning",
|
||||||
]
|
]
|
||||||
active = "mma_human veriffication"
|
active = "AutoDisc"
|
||||||
auto_add = true
|
auto_add = true
|
||||||
|
|
||||||
[discussions.main]
|
[discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T22:00:42"
|
last_updated = "2026-02-27T13:51:58"
|
||||||
history = [
|
history = [
|
||||||
"@2026-02-26T22:00:02\nSystem:\n[PERFORMANCE ALERT] CPU usage high: 92.2%. Please consider optimizing recent changes or reducing load.",
|
"@2026-02-27T13:51:51\nUser:\nHello! This is an automated test. Just say 'Acknowledged'.",
|
||||||
|
"@2026-02-27T13:51:58\nAI:\nAcknowledged.",
|
||||||
]
|
]
|
||||||
|
|
||||||
[discussions."mma_human veriffication"]
|
[discussions.AutoDisc]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-26T22:07:06"
|
last_updated = "2026-02-27T18:34:58"
|
||||||
history = []
|
history = [
|
||||||
|
"@2026-02-27T18:18:46\nSystem:\n[PERFORMANCE ALERT] Frame time high: 61.9ms. Please consider optimizing recent changes or reducing load.",
|
||||||
|
]
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import glob # Will be used to find api_hook_client.py path if needed, though sys.path modification is better.
|
import glob
|
||||||
|
|
||||||
# --- Configuration ---
|
# --- Configuration ---
|
||||||
GUI_SCRIPT = 'gui_2.py'
|
GUI_SCRIPT = 'gui_2.py'
|
||||||
TEST_HOOKS_FLAG = '--enable-test-hooks'
|
TEST_HOOKS_FLAG = '--enable-test-hooks'
|
||||||
API_HOOK_CLIENT_MODULE = 'api_hook_client'
|
API_HOOK_CLIENT_MODULE = 'api_hook_client'
|
||||||
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) # Calculate project root
|
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
||||||
|
|
||||||
# Ensure project root is in sys.path to import modules like api_hook_client
|
# Ensure project root is in sys.path to import modules like api_hook_client
|
||||||
if PROJECT_ROOT not in sys.path:
|
if PROJECT_ROOT not in sys.path:
|
||||||
@@ -27,7 +26,7 @@ except ImportError as e:
|
|||||||
def run_visual_mma_verification():
|
def run_visual_mma_verification():
|
||||||
print("Starting visual MMA verification test...")
|
print("Starting visual MMA verification test...")
|
||||||
|
|
||||||
# Change current directory to project root to ensure relative paths are correct for gui_2.py
|
# Change current directory to project root
|
||||||
original_dir = os.getcwd()
|
original_dir = os.getcwd()
|
||||||
if original_dir != PROJECT_ROOT:
|
if original_dir != PROJECT_ROOT:
|
||||||
try:
|
try:
|
||||||
@@ -47,7 +46,7 @@ def run_visual_mma_verification():
|
|||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE,
|
stderr=subprocess.PIPE,
|
||||||
text=True,
|
text=True,
|
||||||
cwd=PROJECT_ROOT # Explicitly set working directory
|
cwd=PROJECT_ROOT
|
||||||
)
|
)
|
||||||
print(f"GUI process started with PID: {gui_process.pid}")
|
print(f"GUI process started with PID: {gui_process.pid}")
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
@@ -57,32 +56,25 @@ def run_visual_mma_verification():
|
|||||||
print(f"Error starting GUI process: {e}")
|
print(f"Error starting GUI process: {e}")
|
||||||
return
|
return
|
||||||
|
|
||||||
# Give the GUI a moment to start and open the hook server.
|
# Wait for GUI to start
|
||||||
print("Waiting for GUI to initialize and hook server to start (5 seconds)...")
|
print("Waiting for GUI to initialize and hook server to start (5 seconds)...")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
|
|
||||||
# Check if the GUI process exited prematurely
|
|
||||||
if gui_process.poll() is not None:
|
if gui_process.poll() is not None:
|
||||||
print(f"Error: GUI process exited prematurely with return code {gui_process.returncode}.")
|
print(f"Error: GUI process exited prematurely with return code {gui_process.returncode}.")
|
||||||
stderr_output = gui_process.stderr.read()
|
|
||||||
if stderr_output:
|
|
||||||
print("--- GUI Stderr ---")
|
|
||||||
print(stderr_output)
|
|
||||||
print("------------------")
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# 2. Use api_hook_client.ApiHookClient to push events
|
# 2. Use ApiHookClient
|
||||||
try:
|
try:
|
||||||
client = ApiHookClient()
|
client = ApiHookClient()
|
||||||
print("ApiHookClient initialized successfully.")
|
print("ApiHookClient initialized successfully.")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Failed to initialize ApiHookClient. Ensure the hook server is running on port 8999. Error: {e}")
|
print(f"Failed to initialize ApiHookClient. Error: {e}")
|
||||||
if gui_process:
|
if gui_process:
|
||||||
gui_process.terminate()
|
gui_process.terminate()
|
||||||
gui_process.wait()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
# 3. Include at least 5 tickets in different states
|
# 3. Setup MMA data
|
||||||
track_data = {
|
track_data = {
|
||||||
"id": "visual_test_track",
|
"id": "visual_test_track",
|
||||||
"title": "Visual Verification Track",
|
"title": "Visual Verification Track",
|
||||||
@@ -109,8 +101,6 @@ def run_visual_mma_verification():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f" - Warning: Failed to push mma_state_update: {e}")
|
print(f" - Warning: Failed to push mma_state_update: {e}")
|
||||||
|
|
||||||
# 4. After a short delay, push an 'mma_step_approval' event
|
|
||||||
print("\nWaiting for GUI to render ticket queue and progress bar (3 seconds)...")
|
|
||||||
time.sleep(3)
|
time.sleep(3)
|
||||||
|
|
||||||
print("Pushing 'mma_step_approval' event to trigger HITL modal...")
|
print("Pushing 'mma_step_approval' event to trigger HITL modal...")
|
||||||
@@ -125,60 +115,27 @@ def run_visual_mma_verification():
|
|||||||
print(f"Error pushing mma_step_approval event: {e}")
|
print(f"Error pushing mma_step_approval event: {e}")
|
||||||
|
|
||||||
# 5. Provide clear print statements for manual verification
|
# 5. Provide clear print statements for manual verification
|
||||||
print("
|
print("\n--- Manual Verification Instructions ---")
|
||||||
--- Manual Verification Instructions ---")
|
|
||||||
print("Please visually inspect the running GUI application:")
|
print("Please visually inspect the running GUI application:")
|
||||||
print("1. MMA Dashboard: Ensure the 'MMA Dashboard' panel is visible and active.")
|
print("1. MMA Dashboard: Ensure the 'MMA Dashboard' panel is visible and active.")
|
||||||
print("2. Ticket Queue: Verify the 'Ticket Queue' section displays all 5 tickets with correct statuses:")
|
print("2. Ticket Queue: Verify the 'Ticket Queue' section displays all 5 tickets with correct statuses.")
|
||||||
print(" - TICKET-001: Should be 'todo'")
|
print("3. Progress Bar: Check that the progress bar correctly reflects the completed/total tickets.")
|
||||||
print(" - TICKET-002: Should be 'running'")
|
|
||||||
print(" - TICKET-003: Should be 'complete'")
|
|
||||||
print(" - TICKET-004: Should be 'blocked'")
|
|
||||||
print(" - TICKET-005: Should be 'paused'")
|
|
||||||
print(" Observe the distinct status colors for each ticket.")
|
|
||||||
print("3. Progress Bar: Check that the progress bar correctly reflects the completed/total tickets (e.g., 1/5).")
|
|
||||||
print("4. Approval Modal: Confirm that an 'MMA Step Approval' modal has appeared.")
|
print("4. Approval Modal: Confirm that an 'MMA Step Approval' modal has appeared.")
|
||||||
print(" - Verify it contains a 'Proposed Tool Call' section (e.g., showing 'powershell -Command...').")
|
print("\n--------------------------------------")
|
||||||
print(" - Ensure there is an option/button to 'Edit Payload'.")
|
|
||||||
print("
|
|
||||||
--------------------------------------")
|
|
||||||
print("The test script has finished its automated actions.")
|
print("The test script has finished its automated actions.")
|
||||||
print("The GUI application is still running. Please perform manual verification.")
|
print("The GUI application is still running. Press Enter to exit.")
|
||||||
print("Press Enter in this terminal to stop the GUI process and exit the test script.")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
input()
|
input()
|
||||||
except EOFError:
|
except EOFError:
|
||||||
print("EOF received, exiting.")
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
print("
|
print("\nStopping GUI process...")
|
||||||
Stopping GUI process...")
|
|
||||||
if gui_process:
|
if gui_process:
|
||||||
try:
|
gui_process.terminate()
|
||||||
gui_process.terminate()
|
gui_process.wait(timeout=5)
|
||||||
gui_process.wait(timeout=10)
|
|
||||||
print("GUI process terminated gracefully.")
|
|
||||||
except subprocess.TimeoutExpired:
|
|
||||||
print("GUI process did not terminate within the timeout. Killing it forcefully.")
|
|
||||||
gui_process.kill()
|
|
||||||
gui_process.wait()
|
|
||||||
except Exception as e:
|
|
||||||
print(f"Error during GUI process termination: {e}")
|
|
||||||
else:
|
|
||||||
print("GUI process was not started or already terminated.")
|
|
||||||
|
|
||||||
print("Visual MMA verification test script finished.")
|
print("Visual MMA verification test script finished.")
|
||||||
|
|
||||||
# Restore original directory
|
|
||||||
if original_dir != PROJECT_ROOT:
|
|
||||||
try:
|
|
||||||
os.chdir(original_dir)
|
|
||||||
print(f"Restored original working directory: {original_dir}")
|
|
||||||
except FileNotFoundError:
|
|
||||||
print(f"Warning: Could not restore original working directory '{original_dir}'.")
|
|
||||||
|
|
||||||
# --- Main execution ---
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# When the script is executed directly, ensure it runs from the correct context.
|
|
||||||
run_visual_mma_verification()
|
run_visual_mma_verification()
|
||||||
|
|||||||
Reference in New Issue
Block a user