Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions src/outerloop/attempt.py
Original file line number Diff line number Diff line change
Expand Up @@ -3312,7 +3312,6 @@ def _resume_run(
"outcome": result.outcome,
"head_sha": candidate_sha,
},
at=now,
)
submitted_park = bool(stage.get("submitted"))
if stage.get("panel_skip"):
Expand Down Expand Up @@ -4227,7 +4226,6 @@ def refuse(
run_dir,
"syscall.decision",
{"verb": "submit", "outcome": "refused", "reason": redact(text, secrets)},
at=now,
)
append(
run_dir,
Expand Down Expand Up @@ -4643,7 +4641,7 @@ def refuse(
# read: visible, plainly not merge-ready
draft=draft,
)
record_event(run_dir, "pr.open", {"url": pr_url, "head_sha": result.candidate_sha}, at=now)
record_event(run_dir, "pr.open", {"url": pr_url, "head_sha": result.candidate_sha})
# Arm auto-merge, best-effort, and ONLY when branch protection
# requires a human review — the guard keeps bot-never-merges
# enforced in code, not in per-repo config. Never arm a draft,
Expand Down Expand Up @@ -6278,7 +6276,6 @@ def finish_run(
"ending",
{"state": ending, "reason": note},
refs=file_refs(directory, report),
at=now,
)
ref = str(record.stage.get("candidate_ref") or "")
if snapshot_attempted and not ref:
Expand Down
23 changes: 13 additions & 10 deletions src/outerloop/steward.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,10 @@ def changed_paths() -> list[str]:
"resume_session_id": session.session_id or "",
}
)
# written before finish_run, which keeps an existing report and
# records its hash in the trajectory's ending event
report_path = run_dir / "report.md"
_best_effort("run report", lambda: report_path.write_text(report), secrets)
_best_effort(
"final record",
lambda: finish_run(
Expand All @@ -533,8 +537,6 @@ def changed_paths() -> list[str]:
),
secrets,
)
report_path = run_dir / "report.md"
_best_effort("run report", lambda: report_path.write_text(report), secrets)
if issue_number:
_best_effort(
"issue report",
Expand Down Expand Up @@ -696,6 +698,15 @@ def _arm() -> None:
}
)
report_path = run_dir / "report.md"
# before finish_run, so the ending event hashes the report that stays
wrote = _best_effort(
"error report",
lambda: report_path.write_text(
f"# Steward report — {config.target} / {config.benchmark}\n"
f"Outcome: **{outcome_label}**\nNote: {note}\n"
),
secrets,
)
_best_effort(
"ending record",
lambda: finish_run(
Expand All @@ -711,14 +722,6 @@ def _arm() -> None:
),
secrets,
)
wrote = _best_effort(
"error report",
lambda: report_path.write_text(
f"# Steward report — {config.target} / {config.benchmark}\n"
f"Outcome: **{outcome_label}**\nNote: {note}\n"
),
secrets,
)
if issue_number:
if api_outage:
release = (
Expand Down
4 changes: 1 addition & 3 deletions src/outerloop/tick.py
Original file line number Diff line number Diff line change
Expand Up @@ -1191,9 +1191,7 @@ def wake(record: RunRecord, reason: str, tag: str) -> None:
if dry_run or _wake(root, record, reason, dispatcher, now, holder):
woken.append((record.run_id, tag))
if not dry_run:
record_event(
run_dir(root, record.run_id), "wake", {"reason": reason, "tag": tag}, at=now
)
record_event(run_dir(root, record.run_id), "wake", {"reason": reason, "tag": tag})

ledger_blocked: set[str] = set()
if github is not None and not dry_run:
Expand Down
1 change: 1 addition & 0 deletions tests/test_attempt_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,6 +1547,7 @@ def fail(*args, **kwargs):
events = read(directory)
assert [event["type"] for event in events] == ["ending"]
assert events[0]["data"] == {"state": "merged", "reason": "PR merged"}
assert events[0]["ts"] > NOW # wall-clock time, not the caller's tick time
Comment thread
renmengye marked this conversation as resolved.
Resolved
assert events[0]["refs"][0]["path"] == "report.md"
assert verify(directory, record.run_id) == []

Expand Down
Loading