Private
Public Access
0
0

chore: delete legacy run_tests_batched.py (was preserved for one cycle)

This commit is contained in:
2026-06-08 01:15:12 -04:00
parent ac7e638b23
commit 50f26f0d5c
5 changed files with 48 additions and 205 deletions
+18 -18
View File
@@ -22,7 +22,7 @@ active = "C:/projects/Pikuma/ps1-ai/pikuma_ps1.toml"
[gui]
separate_message_panel = false
separate_response_panel = false
separate_tool_calls_panel = true
separate_tool_calls_panel = false
bg_shader_enabled = false
crt_filter_enabled = false
separate_task_dag = false
@@ -52,7 +52,7 @@ separate_external_tools = false
"Operations Hub" = true
Message = false
Response = false
"Tool Calls" = true
"Tool Calls" = false
"Text Viewer" = false
Theme = true
"Log Management" = true
@@ -66,35 +66,35 @@ Diagnostics = false
palette = "Solarized Light"
font_path = "fonts/MapleMono-Regular.ttf"
font_size = 20.0
scale = 1.0199999809265137
scale = 1.0
transparency = 1.0
child_transparency = 1.0
[theme.tone_mapping.moss]
brightness = 0.7699999809265137
contrast = 0.8700000047683716
gamma = 1.0
[theme.tone_mapping.solarized_light]
brightness = 0.6899999976158142
contrast = 0.8600000143051147
gamma = 0.7699999809265137
[theme.tone_mapping."Solarized Light"]
brightness = 0.6800000071525574
contrast = 0.7400000095367432
gamma = 1.0499999523162842
[theme.tone_mapping.Binks]
brightness = 0.5600000023841858
contrast = 0.7900000214576721
gamma = 2.2100000381469727
[theme.tone_mapping.moss]
brightness = 1.059999942779541
contrast = 0.5799999833106995
gamma = 1.059999942779541
[theme.tone_mapping.gray_variations]
brightness = 0.7699999809265137
contrast = 0.7200000286102295
gamma = 0.6899999976158142
[theme.tone_mapping.Binks]
brightness = 0.47999998927116394
contrast = 0.8399999737739563
gamma = 2.2100000381469727
[theme.tone_mapping."Solarized Light"]
brightness = 0.4699999988079071
contrast = 0.800000011920929
gamma = 0.6700000166893005
[mma]
max_workers = 4
+29 -29
View File
@@ -56,8 +56,8 @@ Collapsed=0
DockId=0x00000010,5
[Window][Tool Calls]
Pos=1138,29
Size=1437,1820
Pos=1124,28
Size=1365,1729
Collapsed=0
DockId=0x00000006,2
@@ -76,8 +76,8 @@ Collapsed=0
DockId=0xAFC85805,2
[Window][Theme]
Pos=0,29
Size=1136,1820
Pos=0,28
Size=1039,1729
Collapsed=0
DockId=0x00000010,0
@@ -105,26 +105,26 @@ Collapsed=0
DockId=0x0000000D,0
[Window][Discussion Hub]
Pos=1138,29
Size=1437,1820
Pos=1041,28
Size=1448,1729
Collapsed=0
DockId=0x00000006,0
[Window][Operations Hub]
Pos=0,29
Size=1136,1820
Pos=0,28
Size=1039,1729
Collapsed=0
DockId=0x00000010,4
[Window][Files & Media]
Pos=0,29
Size=1136,1820
Pos=0,28
Size=1039,1729
Collapsed=0
DockId=0x00000010,2
[Window][AI Settings]
Pos=0,29
Size=1136,1820
Pos=0,28
Size=1039,1729
Collapsed=0
DockId=0x00000010,3
@@ -140,8 +140,8 @@ Collapsed=0
DockId=0x00000006,2
[Window][Log Management]
Pos=1138,29
Size=1437,1820
Pos=1041,28
Size=1448,1729
Collapsed=0
DockId=0x00000006,1
@@ -409,8 +409,8 @@ Collapsed=0
DockId=0x00000006,1
[Window][Project Settings]
Pos=0,29
Size=1136,1820
Pos=0,28
Size=1039,1729
Collapsed=0
DockId=0x00000010,1
@@ -516,8 +516,8 @@ Size=1801,1532
Collapsed=0
[Window][Structural File Editor]
Pos=82,172
Size=2176,1441
Pos=76,51
Size=2345,1687
Collapsed=0
[Window][Text_Viewer_Unified]
@@ -650,9 +650,9 @@ Column 0 Width=233
Column 1 Weight=1.0000
[Table][0x1DA1F4A6,2]
RefScale=21
RefScale=20
Column 0 Weight=1.0000
Column 1 Width=534
Column 1 Width=576
[Table][0x5B562C13,3]
RefScale=21
@@ -682,10 +682,10 @@ Column 1 Width=80
Column 2 Width=150
[Table][0x7804123E,3]
RefScale=21
Column 0 Width=103
RefScale=25
Column 0 Width=122
Column 1 Weight=1.0000
Column 2 Width=279
Column 2 Width=221
[Table][0x09B0112E,3]
RefScale=20
@@ -699,8 +699,8 @@ Column 0 Width=30
Column 1 Width=30
[Table][0x9D36FCE8,2]
RefScale=21
Column 0 Width=736
RefScale=20
Column 0 Width=700
Column 1 Weight=1.0000
[Table][0xD9B78BEB,4]
@@ -834,13 +834,13 @@ Column 2 Weight=1.0000
DockNode ID=0x00000008 Pos=3125,170 Size=593,1157 Split=Y
DockNode ID=0x00000009 Parent=0x00000008 SizeRef=1029,147 Selected=0x0469CA7A
DockNode ID=0x0000000A Parent=0x00000008 SizeRef=1029,145 Selected=0xDF822E02
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,29 Size=2575,1820 Split=X
DockSpace ID=0xAFC85805 Window=0x079D3A04 Pos=0,28 Size=2489,1729 Split=X
DockNode ID=0x00000003 Parent=0xAFC85805 SizeRef=2357,1183 Split=X
DockNode ID=0x0000000B Parent=0x00000003 SizeRef=404,1186 Split=X Selected=0xF4139CA2
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=916,1681 Split=Y Selected=0x3F1379AF
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x7BD57D6A
DockNode ID=0x00000005 Parent=0x0000000B SizeRef=1039,1681 Split=Y Selected=0x3F1379AF
DockNode ID=0x00000010 Parent=0x00000005 SizeRef=983,1140 CentralNode=1 Selected=0x8CA2375C
DockNode ID=0x00000011 Parent=0x00000005 SizeRef=983,184 Selected=0x432BAE4E
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1437,1681 Selected=0x6F2B5B04
DockNode ID=0x00000006 Parent=0x0000000B SizeRef=1448,1681 Selected=0x6F2B5B04
DockNode ID=0x0000000D Parent=0x00000003 SizeRef=435,1186 Selected=0x363E93D6
DockNode ID=0x00000004 Parent=0xAFC85805 SizeRef=488,1183 Selected=0x3AEC3498
-44
View File
@@ -1,13 +1,8 @@
view_presets = []
[project]
name = "project"
git_dir = ""
system_prompt = ""
execution_mode = "native"
word_wrap = true
auto_scroll_comms = true
auto_scroll_tool_calls = true
[output]
output_dir = "./md_gen"
@@ -57,47 +52,8 @@ set_file_slice = false
py_update_definition = false
py_set_signature = false
py_set_var_declaration = false
edit_file = true
py_remove_def = true
py_add_def = true
py_move_def = true
py_region_wrap = true
ts_c_get_skeleton = true
ts_cpp_get_skeleton = true
ts_c_get_code_outline = true
ts_cpp_get_code_outline = true
ts_c_get_definition = true
ts_cpp_get_definition = true
ts_c_get_signature = true
ts_cpp_get_signature = true
ts_c_update_definition = true
ts_cpp_update_definition = true
derive_code_path = true
bd_create = true
bd_update = true
bd_list = true
bd_ready = true
[mma]
epic = ""
active_track_id = ""
tracks = []
[mma.tier_models."Tier 1"]
model = "gemini-3.1-pro-preview"
provider = "gemini"
[mma.tier_models."Tier 2"]
model = "gemini-3-flash-preview"
provider = "gemini"
[mma.tier_models."Tier 3"]
model = "gemini-2.5-flash-lite"
provider = "gemini"
[mma.tier_models."Tier 4"]
model = "gemini-2.5-flash-lite"
provider = "gemini"
[conductor]
dir = "conductor"
+1 -5
View File
@@ -6,12 +6,8 @@ roles = [
"Context",
]
active = "main"
auto_add = false
[discussions.main]
git_commit = ""
last_updated = "2026-06-08T00:35:00"
last_updated = "2026-06-08T01:05:27"
history = []
context_snapshot = []
sent_markdown = ""
sent_system_prompt = ""
-109
View File
@@ -1,109 +0,0 @@
"""Run the test suite in alphabetical batches of 32 files.
Behavior:
- Per-batch subprocess timeout of 180s. Exceeding the timeout counts
as a batch failure (the watchdog in tests/conftest.py bounds the
actual pytest hang at 30s, but the outer timeout is the
runner-level safety net).
- Per-batch elapsed time reported in the header line.
- pytest's own exit-code based failure detection (subprocess
CalledProcessError) is preserved for batches that finish but
contain test failures.
- Final summary lists all files in any failed batch (per file, not
per batch, so the user can re-run individual files).
Usage:
uv run python scripts/run_tests_batched.py
uv run python scripts/run_tests_batched.py --batch-size 16
uv run python scripts/run_tests_batched.py --timeout 300
"""
from __future__ import annotations
import argparse
import os
import subprocess
import sys
import time
def run_tests(batch_size: int, timeout: int) -> int:
test_dir: str = "tests"
if not os.path.isdir(test_dir):
print(f"ERROR: '{test_dir}' directory not found", file=sys.stderr)
return 2
test_files: list[str] = sorted(
f for f in os.listdir(test_dir)
if f.startswith("test_") and f.endswith(".py")
)
if not test_files:
print(f"ERROR: no test files found in '{test_dir}'", file=sys.stderr)
return 2
batches: list[list[str]] = [
test_files[i : i + batch_size] for i in range(0, len(test_files), batch_size)
]
failed_files: list[str] = []
batch_timings: list[float] = []
print(f"Starting test execution of {len(test_files)} files in {len(batches)} batches of {batch_size} (timeout {timeout}s per batch)...")
print()
for batch_idx, batch in enumerate(batches, start=1):
cmd: list[str] = ["uv", "run", "pytest", "--maxfail=10"] + [
os.path.join(test_dir, f) for f in batch
]
print(f"Batch {batch_idx}/{len(batches)} ({len(batch)} files):")
start: float = time.perf_counter()
try:
subprocess.run(cmd, check=True, timeout=timeout)
except subprocess.TimeoutExpired:
elapsed: float = time.perf_counter() - start
batch_timings.append(elapsed)
print(f" >>> Batch {batch_idx} TIMED OUT after {elapsed:.1f}s (limit {timeout}s)")
failed_files.extend(batch)
except subprocess.CalledProcessError as e:
elapsed = time.perf_counter() - start
batch_timings.append(elapsed)
print(f" >>> Batch {batch_idx} FAILED after {elapsed:.1f}s (pytest exit {e.returncode})")
failed_files.extend(batch)
else:
elapsed = time.perf_counter() - start
batch_timings.append(elapsed)
print(f" >>> Batch {batch_idx} passed in {elapsed:.1f}s")
print()
print("=" * 70)
if failed_files:
failed_batch_count: int = sum(
1 for batch in batches if any(f in failed_files for f in batch)
)
print(f"Total batches: {len(batches)}; failed batches: {failed_batch_count}")
print(f"Failed files: {len(failed_files)}")
print("=" * 70)
for f in failed_files:
print(f" - {f}")
print("=" * 70)
return 1
total_time: float = sum(batch_timings)
avg: float = total_time / max(len(batch_timings), 1)
print(f"All {len(batches)} batches passed in {total_time:.1f}s (avg {avg:.1f}s per batch)")
print("=" * 70)
return 0
def main() -> None:
ap: argparse.ArgumentParser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0])
ap.add_argument("--batch-size", type=int, default=32, help="tests per batch (default: 32)")
ap.add_argument("--timeout", type=int, default=180, help="seconds per batch (default: 180)")
args: argparse.Namespace = ap.parse_args()
if args.batch_size <= 0:
print("ERROR: --batch-size must be positive", file=sys.stderr)
sys.exit(2)
if args.timeout <= 0:
print("ERROR: --timeout must be positive", file=sys.stderr)
sys.exit(2)
sys.exit(run_tests(args.batch_size, args.timeout))
if __name__ == "__main__":
main()