Compare commits
4 Commits
95bf1cac7b
...
ea84168ada
| Author | SHA1 | Date | |
|---|---|---|---|
| ea84168ada | |||
| 828f728d67 | |||
| 48b2993089 | |||
| 6f1e00b647 |
+4
-1
@@ -36,5 +36,8 @@ Finalize the migration and decommission the original `gui.py`.
|
|||||||
- [x] Task: Update project entry point or documentation to point to `gui_2.py` as the primary interface. [b92fa90]
|
- [x] Task: Update project entry point or documentation to point to `gui_2.py` as the primary interface. [b92fa90]
|
||||||
- [x] Task: Final project-wide link validation and documentation update. [14984c5]
|
- [x] Task: Final project-wide link validation and documentation update. [14984c5]
|
||||||
- [x] Task: Conductor - User Manual Verification 'Phase 4: Deprecation and Cleanup' (Protocol in workflow.md) [14984c5]
|
- [x] Task: Conductor - User Manual Verification 'Phase 4: Deprecation and Cleanup' (Protocol in workflow.md) [14984c5]
|
||||||
|
|
||||||
|
## Phase: Review Fixes
|
||||||
|
- [x] Task: Apply review suggestions [6f1e00b]
|
||||||
---
|
---
|
||||||
[checkpoint: (SHA will be recorded here)]
|
[checkpoint: 6f1e00b]
|
||||||
@@ -30,11 +30,6 @@ This file tracks all major tracks for the project. Each track has its own detail
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- [x] **Track: Investigate differences left between gui.py and gui_2.py. Needs to reach full parity, so we can sunset guy.py**
|
|
||||||
*Link: [./tracks/gui2_parity_20260224/](./tracks/gui2_parity_20260224/)*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- [ ] **Track: 4-Tier Architecture Implementation & Conductor Self-Improvement**
|
- [ ] **Track: 4-Tier Architecture Implementation & Conductor Self-Improvement**
|
||||||
*Link: [./tracks/mma_implementation_20260224/](./tracks/mma_implementation_20260224/)*
|
*Link: [./tracks/mma_implementation_20260224/](./tracks/mma_implementation_20260224/)*
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -8,9 +8,9 @@ system_prompt = ""
|
|||||||
|
|
||||||
[theme]
|
[theme]
|
||||||
palette = "Gold"
|
palette = "Gold"
|
||||||
font_path = ""
|
|
||||||
font_size = 14.0
|
font_size = 14.0
|
||||||
scale = 1.5
|
scale = 1.2000000476837158
|
||||||
|
font_path = ""
|
||||||
|
|
||||||
[projects]
|
[projects]
|
||||||
paths = [
|
paths = [
|
||||||
|
|||||||
@@ -36,15 +36,18 @@ def save_config(config: dict):
|
|||||||
with open(CONFIG_PATH, "wb") as f:
|
with open(CONFIG_PATH, "wb") as f:
|
||||||
tomli_w.dump(config, f)
|
tomli_w.dump(config, f)
|
||||||
|
|
||||||
|
|
||||||
def hide_tk_root() -> Tk:
|
def hide_tk_root() -> Tk:
|
||||||
root = Tk()
|
root = Tk()
|
||||||
root.withdraw()
|
root.withdraw()
|
||||||
root.wm_attributes("-topmost", True)
|
root.wm_attributes("-topmost", True)
|
||||||
return root
|
return root
|
||||||
|
|
||||||
|
|
||||||
# Color Helpers
|
# Color Helpers
|
||||||
def vec4(r, g, b, a=1.0): return imgui.ImVec4(r/255, g/255, b/255, a)
|
def vec4(r, g, b, a=1.0): return imgui.ImVec4(r/255, g/255, b/255, a)
|
||||||
|
|
||||||
|
|
||||||
C_OUT = vec4(100, 200, 255)
|
C_OUT = vec4(100, 200, 255)
|
||||||
C_IN = vec4(140, 255, 160)
|
C_IN = vec4(140, 255, 160)
|
||||||
C_REQ = vec4(255, 220, 100)
|
C_REQ = vec4(255, 220, 100)
|
||||||
@@ -65,6 +68,7 @@ HEAVY_KEYS = {"message", "text", "script", "output", "content"}
|
|||||||
DISC_ROLES = ["User", "AI", "Vendor API", "System"]
|
DISC_ROLES = ["User", "AI", "Vendor API", "System"]
|
||||||
AGENT_TOOL_NAMES = ["run_powershell", "read_file", "list_directory", "search_files", "get_file_summary", "web_search", "fetch_url"]
|
AGENT_TOOL_NAMES = ["run_powershell", "read_file", "list_directory", "search_files", "get_file_summary", "web_search", "fetch_url"]
|
||||||
|
|
||||||
|
|
||||||
def truncate_entries(entries: list[dict], max_pairs: int) -> list[dict]:
|
def truncate_entries(entries: list[dict], max_pairs: int) -> list[dict]:
|
||||||
if max_pairs <= 0:
|
if max_pairs <= 0:
|
||||||
return []
|
return []
|
||||||
@@ -73,6 +77,7 @@ def truncate_entries(entries: list[dict], max_pairs: int) -> list[dict]:
|
|||||||
return entries
|
return entries
|
||||||
return entries[-target_count:]
|
return entries[-target_count:]
|
||||||
|
|
||||||
|
|
||||||
def _parse_history_entries(history: list[str], roles: list[str] | None = None) -> list[dict]:
|
def _parse_history_entries(history: list[str], roles: list[str] | None = None) -> list[dict]:
|
||||||
known = roles if roles is not None else DISC_ROLES
|
known = roles if roles is not None else DISC_ROLES
|
||||||
entries = []
|
entries = []
|
||||||
@@ -80,6 +85,7 @@ def _parse_history_entries(history: list[str], roles: list[str] | None = None) -
|
|||||||
entries.append(project_manager.str_to_entry(raw, known))
|
entries.append(project_manager.str_to_entry(raw, known))
|
||||||
return entries
|
return entries
|
||||||
|
|
||||||
|
|
||||||
class ConfirmDialog:
|
class ConfirmDialog:
|
||||||
_next_id = 0
|
_next_id = 0
|
||||||
def __init__(self, script: str, base_dir: str):
|
def __init__(self, script: str, base_dir: str):
|
||||||
@@ -94,7 +100,10 @@ class ConfirmDialog:
|
|||||||
self._event.wait()
|
self._event.wait()
|
||||||
return self._approved, self._script
|
return self._approved, self._script
|
||||||
|
|
||||||
|
|
||||||
class App:
|
class App:
|
||||||
|
"""The main ImGui interface orchestrator for Manual Slop."""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.config = load_config()
|
self.config = load_config()
|
||||||
|
|
||||||
@@ -1870,6 +1879,7 @@ class App:
|
|||||||
theme.apply_current()
|
theme.apply_current()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
|
"""Initializes the ImGui runner and starts the main application loop."""
|
||||||
theme.load_from_config(self.config)
|
theme.load_from_config(self.config)
|
||||||
|
|
||||||
self.runner_params = hello_imgui.RunnerParams()
|
self.runner_params = hello_imgui.RunnerParams()
|
||||||
|
|||||||
+1
-1
@@ -121,7 +121,7 @@ history = [
|
|||||||
|
|
||||||
[discussion.discussions."test gemini mock interaction"]
|
[discussion.discussions."test gemini mock interaction"]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-23T22:59:50"
|
last_updated = "2026-02-24T21:42:09"
|
||||||
history = []
|
history = []
|
||||||
|
|
||||||
[agent.tools]
|
[agent.tools]
|
||||||
|
|||||||
+30
-32
@@ -12,7 +12,7 @@ ViewportPos=43,95
|
|||||||
ViewportId=0x78C57832
|
ViewportId=0x78C57832
|
||||||
Size=897,649
|
Size=897,649
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,0
|
DockId=0x00000007,0
|
||||||
|
|
||||||
[Window][Files]
|
[Window][Files]
|
||||||
ViewportPos=3125,170
|
ViewportPos=3125,170
|
||||||
@@ -33,7 +33,7 @@ DockId=0x0000000A,0
|
|||||||
Pos=0,17
|
Pos=0,17
|
||||||
Size=1680,730
|
Size=1680,730
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000011,0
|
DockId=0x00000007,0
|
||||||
|
|
||||||
[Window][Provider]
|
[Window][Provider]
|
||||||
ViewportPos=43,95
|
ViewportPos=43,95
|
||||||
@@ -41,7 +41,7 @@ ViewportId=0x78C57832
|
|||||||
Pos=0,651
|
Pos=0,651
|
||||||
Size=897,468
|
Size=897,468
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,0
|
DockId=0x00000007,0
|
||||||
|
|
||||||
[Window][Message]
|
[Window][Message]
|
||||||
Pos=0,749
|
Pos=0,749
|
||||||
@@ -78,11 +78,10 @@ Collapsed=0
|
|||||||
DockId=0x0000000F,2
|
DockId=0x0000000F,2
|
||||||
|
|
||||||
[Window][Theme]
|
[Window][Theme]
|
||||||
ViewportPos=43,95
|
Pos=0,17
|
||||||
ViewportId=0x78C57832
|
Size=432,858
|
||||||
Size=897,1896
|
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000002,0
|
DockId=0x00000007,2
|
||||||
|
|
||||||
[Window][Text Viewer - Entry #7]
|
[Window][Text Viewer - Entry #7]
|
||||||
Pos=379,324
|
Pos=379,324
|
||||||
@@ -90,16 +89,16 @@ Size=900,700
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][Diagnostics]
|
[Window][Diagnostics]
|
||||||
Pos=1190,794
|
Pos=863,794
|
||||||
Size=490,406
|
Size=817,406
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000006,0
|
DockId=0x00000006,0
|
||||||
|
|
||||||
[Window][Context Hub]
|
[Window][Context Hub]
|
||||||
Pos=0,17
|
Pos=0,17
|
||||||
Size=270,728
|
Size=432,858
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000011,0
|
DockId=0x00000007,0
|
||||||
|
|
||||||
[Window][AI Settings Hub]
|
[Window][AI Settings Hub]
|
||||||
Pos=406,17
|
Pos=406,17
|
||||||
@@ -108,46 +107,45 @@ Collapsed=0
|
|||||||
DockId=0x0000000D,0
|
DockId=0x0000000D,0
|
||||||
|
|
||||||
[Window][Discussion Hub]
|
[Window][Discussion Hub]
|
||||||
Pos=1190,17
|
Pos=863,17
|
||||||
Size=490,775
|
Size=817,775
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000005,0
|
DockId=0x00000005,0
|
||||||
|
|
||||||
[Window][Operations Hub]
|
[Window][Operations Hub]
|
||||||
Pos=272,17
|
Pos=434,17
|
||||||
Size=916,1183
|
Size=427,858
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000010,0
|
DockId=0x0000000E,0
|
||||||
|
|
||||||
[Window][Files & Media]
|
[Window][Files & Media]
|
||||||
Pos=0,17
|
Pos=0,17
|
||||||
Size=270,728
|
Size=432,858
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000011,1
|
DockId=0x00000007,1
|
||||||
|
|
||||||
[Window][AI Settings]
|
[Window][AI Settings]
|
||||||
Pos=0,747
|
Pos=0,877
|
||||||
Size=270,453
|
Size=861,323
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0x00000012,0
|
DockId=0x00000013,0
|
||||||
|
|
||||||
[Docking][Data]
|
[Docking][Data]
|
||||||
DockNode ID=0x00000007 Pos=43,95 Size=897,1896 Split=Y
|
|
||||||
DockNode ID=0x00000002 Parent=0x00000007 SizeRef=1029,1119 Selected=0x8CA2375C
|
|
||||||
DockNode ID=0x00000001 Parent=0x00000007 SizeRef=1029,775 Selected=0x8B4EBFA6
|
|
||||||
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=216,256 Size=1680,1183 Split=Y
|
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,17 Size=1680,1183 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=1188,1183 Split=X
|
DockNode ID=0x00000003 Parent=0x0000000C SizeRef=861,1183 Split=X
|
||||||
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
|
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=Y Selected=0xF4139CA2
|
||||||
DockNode ID=0x0000000E Parent=0x0000000B SizeRef=270,1183 Split=Y Selected=0xF4139CA2
|
DockNode ID=0x00000002 Parent=0x0000000B SizeRef=1029,1119 Split=Y Selected=0xF4139CA2
|
||||||
DockNode ID=0x00000011 Parent=0x0000000E SizeRef=422,728 CentralNode=1 Selected=0xF4139CA2
|
DockNode ID=0x00000010 Parent=0x00000002 SizeRef=432,328 Split=X Selected=0x8CA2375C
|
||||||
DockNode ID=0x00000012 Parent=0x0000000E SizeRef=422,453 Selected=0x7BD57D6A
|
DockNode ID=0x00000007 Parent=0x00000010 SizeRef=432,858 CentralNode=1 Selected=0x8CA2375C
|
||||||
DockNode ID=0x00000010 Parent=0x0000000B SizeRef=916,1183 Selected=0x418C7449
|
DockNode ID=0x0000000E Parent=0x00000010 SizeRef=427,858 Selected=0x418C7449
|
||||||
|
DockNode ID=0x00000013 Parent=0x00000002 SizeRef=432,323 Selected=0x7BD57D6A
|
||||||
|
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=490,1183 Split=Y Selected=0x418C7449
|
DockNode ID=0x00000004 Parent=0x0000000C SizeRef=817,1183 Split=Y Selected=0x418C7449
|
||||||
DockNode ID=0x00000005 Parent=0x00000004 SizeRef=837,775 Selected=0x6F2B5B04
|
DockNode ID=0x00000005 Parent=0x00000004 SizeRef=837,775 Selected=0x6F2B5B04
|
||||||
DockNode ID=0x00000006 Parent=0x00000004 SizeRef=837,406 Selected=0xB4CBF21A
|
DockNode ID=0x00000006 Parent=0x00000004 SizeRef=837,406 Selected=0xB4CBF21A
|
||||||
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
DockNode ID=0x0000000F Parent=0xAFC85805 SizeRef=1362,451 Selected=0xDD6419BC
|
||||||
|
|||||||
+1
-1
@@ -35,5 +35,5 @@ active = "main"
|
|||||||
|
|
||||||
[discussion.discussions.main]
|
[discussion.discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-24T19:59:19"
|
last_updated = "2026-02-24T21:55:23"
|
||||||
history = []
|
history = []
|
||||||
|
|||||||
@@ -4,6 +4,13 @@ import time
|
|||||||
import requests
|
import requests
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
# Ensure project root is in path
|
||||||
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||||
|
|
||||||
|
from api_hook_client import ApiHookClient
|
||||||
|
|
||||||
def kill_process_tree(pid):
|
def kill_process_tree(pid):
|
||||||
"""Robustly kills a process and all its children."""
|
"""Robustly kills a process and all its children."""
|
||||||
@@ -67,10 +74,17 @@ def live_gui(request):
|
|||||||
kill_process_tree(process.pid)
|
kill_process_tree(process.pid)
|
||||||
pytest.fail(f"Failed to start {gui_script} with test hooks.")
|
pytest.fail(f"Failed to start {gui_script} with test hooks.")
|
||||||
|
|
||||||
|
client = ApiHookClient() # Initialize client here
|
||||||
try:
|
try:
|
||||||
yield process, gui_script
|
yield process, gui_script
|
||||||
finally:
|
finally:
|
||||||
print(f"\n[Fixture] Finally block triggered: Shutting down {gui_script}...")
|
print(f"\n[Fixture] Finally block triggered: Shutting down {gui_script}...")
|
||||||
|
# Reset the GUI state before shutting down
|
||||||
|
try:
|
||||||
|
client.reset_session()
|
||||||
|
time.sleep(1) # Give GUI time to process reset
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[Fixture] Error resetting GUI session: {e}")
|
||||||
kill_process_tree(process.pid)
|
kill_process_tree(process.pid)
|
||||||
log_file.close()
|
log_file.close()
|
||||||
|
|
||||||
|
|||||||
+2
-55
@@ -38,58 +38,5 @@ auto_add = true
|
|||||||
|
|
||||||
[discussion.discussions.main]
|
[discussion.discussions.main]
|
||||||
git_commit = ""
|
git_commit = ""
|
||||||
last_updated = "2026-02-24T19:59:10"
|
last_updated = "2026-02-24T21:55:18"
|
||||||
history = [
|
history = []
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0 Stress test entry 0",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1 Stress test entry 1",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 2 Stress test entry 2 Stress test entry 2 Stress test entry 2 Stress test entry 2",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 3 Stress test entry 3 Stress test entry 3 Stress test entry 3 Stress test entry 3",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 4 Stress test entry 4 Stress test entry 4 Stress test entry 4 Stress test entry 4",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 5 Stress test entry 5 Stress test entry 5 Stress test entry 5 Stress test entry 5",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 6 Stress test entry 6 Stress test entry 6 Stress test entry 6 Stress test entry 6",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 7 Stress test entry 7 Stress test entry 7 Stress test entry 7 Stress test entry 7",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 8 Stress test entry 8 Stress test entry 8 Stress test entry 8 Stress test entry 8",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 9 Stress test entry 9 Stress test entry 9 Stress test entry 9 Stress test entry 9",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 10 Stress test entry 10 Stress test entry 10 Stress test entry 10 Stress test entry 10",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 11 Stress test entry 11 Stress test entry 11 Stress test entry 11 Stress test entry 11",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 12 Stress test entry 12 Stress test entry 12 Stress test entry 12 Stress test entry 12",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 13 Stress test entry 13 Stress test entry 13 Stress test entry 13 Stress test entry 13",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 14 Stress test entry 14 Stress test entry 14 Stress test entry 14 Stress test entry 14",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 15 Stress test entry 15 Stress test entry 15 Stress test entry 15 Stress test entry 15",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 16 Stress test entry 16 Stress test entry 16 Stress test entry 16 Stress test entry 16",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 17 Stress test entry 17 Stress test entry 17 Stress test entry 17 Stress test entry 17",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 18 Stress test entry 18 Stress test entry 18 Stress test entry 18 Stress test entry 18",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 19 Stress test entry 19 Stress test entry 19 Stress test entry 19 Stress test entry 19",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 20 Stress test entry 20 Stress test entry 20 Stress test entry 20 Stress test entry 20",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 21 Stress test entry 21 Stress test entry 21 Stress test entry 21 Stress test entry 21",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 22 Stress test entry 22 Stress test entry 22 Stress test entry 22 Stress test entry 22",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 23 Stress test entry 23 Stress test entry 23 Stress test entry 23 Stress test entry 23",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 24 Stress test entry 24 Stress test entry 24 Stress test entry 24 Stress test entry 24",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 25 Stress test entry 25 Stress test entry 25 Stress test entry 25 Stress test entry 25",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 26 Stress test entry 26 Stress test entry 26 Stress test entry 26 Stress test entry 26",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 27 Stress test entry 27 Stress test entry 27 Stress test entry 27 Stress test entry 27",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 28 Stress test entry 28 Stress test entry 28 Stress test entry 28 Stress test entry 28",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 29 Stress test entry 29 Stress test entry 29 Stress test entry 29 Stress test entry 29",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 30 Stress test entry 30 Stress test entry 30 Stress test entry 30 Stress test entry 30",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 31 Stress test entry 31 Stress test entry 31 Stress test entry 31 Stress test entry 31",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 32 Stress test entry 32 Stress test entry 32 Stress test entry 32 Stress test entry 32",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 33 Stress test entry 33 Stress test entry 33 Stress test entry 33 Stress test entry 33",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 34 Stress test entry 34 Stress test entry 34 Stress test entry 34 Stress test entry 34",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 35 Stress test entry 35 Stress test entry 35 Stress test entry 35 Stress test entry 35",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 36 Stress test entry 36 Stress test entry 36 Stress test entry 36 Stress test entry 36",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 37 Stress test entry 37 Stress test entry 37 Stress test entry 37 Stress test entry 37",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 38 Stress test entry 38 Stress test entry 38 Stress test entry 38 Stress test entry 38",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 39 Stress test entry 39 Stress test entry 39 Stress test entry 39 Stress test entry 39",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 40 Stress test entry 40 Stress test entry 40 Stress test entry 40 Stress test entry 40",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 41 Stress test entry 41 Stress test entry 41 Stress test entry 41 Stress test entry 41",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 42 Stress test entry 42 Stress test entry 42 Stress test entry 42 Stress test entry 42",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 43 Stress test entry 43 Stress test entry 43 Stress test entry 43 Stress test entry 43",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 44 Stress test entry 44 Stress test entry 44 Stress test entry 44 Stress test entry 44",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 45 Stress test entry 45 Stress test entry 45 Stress test entry 45 Stress test entry 45",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 46 Stress test entry 46 Stress test entry 46 Stress test entry 46 Stress test entry 46",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 47 Stress test entry 47 Stress test entry 47 Stress test entry 47 Stress test entry 47",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 48 Stress test entry 48 Stress test entry 48 Stress test entry 48 Stress test entry 48",
|
|
||||||
"@1771981100.9238136\nUser:\nStress test entry 49 Stress test entry 49 Stress test entry 49 Stress test entry 49 Stress test entry 49",
|
|
||||||
"@2026-02-24T19:58:27\nUser:\nHello! This is an automated test. Just say 'Acknowledged'.",
|
|
||||||
"@2026-02-24T19:58:29\nAI:\nAcknowledged",
|
|
||||||
]
|
|
||||||
|
|||||||
+5
-5
@@ -9,18 +9,18 @@ from unittest.mock import patch
|
|||||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||||
|
|
||||||
from api_hook_client import ApiHookClient
|
from api_hook_client import ApiHookClient
|
||||||
import gui
|
import gui_legacy
|
||||||
|
|
||||||
def test_hooks_enabled_via_cli():
|
def test_hooks_enabled_via_cli():
|
||||||
with patch.object(sys, 'argv', ['gui.py', '--enable-test-hooks']):
|
with patch.object(sys, 'argv', ['gui_legacy.py', '--enable-test-hooks']):
|
||||||
app = gui.App()
|
app = gui_legacy.App()
|
||||||
assert app.test_hooks_enabled is True
|
assert app.test_hooks_enabled is True
|
||||||
|
|
||||||
def test_hooks_disabled_by_default():
|
def test_hooks_disabled_by_default():
|
||||||
with patch.object(sys, 'argv', ['gui.py']):
|
with patch.object(sys, 'argv', ['gui_legacy.py']):
|
||||||
if 'SLOP_TEST_HOOKS' in os.environ:
|
if 'SLOP_TEST_HOOKS' in os.environ:
|
||||||
del os.environ['SLOP_TEST_HOOKS']
|
del os.environ['SLOP_TEST_HOOKS']
|
||||||
app = gui.App()
|
app = gui_legacy.App()
|
||||||
assert getattr(app, 'test_hooks_enabled', False) is False
|
assert getattr(app, 'test_hooks_enabled', False) is False
|
||||||
|
|
||||||
def test_live_hook_server_responses(live_gui):
|
def test_live_hook_server_responses(live_gui):
|
||||||
|
|||||||
Reference in New Issue
Block a user