checkpoint

This commit is contained in:
2026-02-27 18:35:11 -05:00
parent 3b2d82ed0d
commit 7a614cbe8c
17 changed files with 119 additions and 104 deletions

View File

@@ -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]

View File

@@ -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 = ""

View File

@@ -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 = []

View File

@@ -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>>>;;;

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = ""

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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 = []

View File

@@ -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.",
]

View File

@@ -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()