fix: trial parser now shows LATEST trial (was stuck on first match); params from last block

This commit is contained in:
drjones
2026-09-27 17:22:48 -07:00
parent 98420f2ca7
commit fed18fa2e2

View File

@@ -14,10 +14,11 @@ def tail_log(n=120):
return []
def run_state():
lines = tail_log(400)
lines = tail_log(3000)
text = "".join(lines)
state = {"phase": "unknown", "trial": 0, "trials_total": 200, "params": [], "done": False, "exit": None}
m = re.search(r"Running trial (\d+) of (\d+)", text)
m = None
for m in re.finditer(r"Running trial (\d+) of (\d+)", text): pass # keep LAST occurrence
if m:
state["phase"] = "optimizing"
state["trial"] = int(m.group(1)); state["trials_total"] = int(m.group(2))
@@ -32,8 +33,15 @@ def run_state():
# capture current trial params
params = {}
in_params = False
for ln in lines:
if "Parameters:" in ln: in_params = True; params = {}; continue
last_param_start = None
for i, ln in enumerate(lines):
if "Parameters:" in ln: last_param_start = i
if last_param_start is not None:
in_params = True
for ln in lines[last_param_start+1:]:
pm = re.match(r"\s+\* ([a-z_.]+) = ([^#]+)", ln)
if pm: params[pm.group(1)] = pm.group(2).strip()
elif ln.strip() and "Parameters" not in ln: break
if in_params:
pm = re.match(r"\s+\* ([a-z_.]+) = ([^#]+)", ln)
if pm: params[pm.group(1)] = pm.group(2).strip()