agent-exec transport 5a7bc332a82e8c04309dc5fcac926434/4bad7f41a3dc

This commit is contained in:
agent-exec-transport
2026-10-18 11:57:29 +00:00
parent dcbd36656b
commit a43aa171ea
+10 -8
View File
@@ -241,7 +241,7 @@ def read_receipt(filename):
return value
def task_context(current=None):
def task_context(current=None, require_target=True):
"""Verify an existing task checkout; this is not an approval identity."""
current = snapshot() if current is None else current
root = Path(git_text("rev-parse", "--show-toplevel")).resolve()
@@ -270,10 +270,11 @@ def task_context(current=None):
if len(bases) != 1 or bases[0][0] != current["target_branch"] or not GIT_SHA.fullmatch(bases[0][1]):
raise EvidenceError("Task card has no valid target and initial baseline")
r0 = bases[0][1]
if not current["target_head"]:
if not current["target_head"] and require_target:
raise EvidenceError("Task target is unverified; fetch it first")
for tip in (current["head"], current["target_head"]):
git("merge-base", "--is-ancestor", r0, tip)
if tip:
git("merge-base", "--is-ancestor", r0, tip)
check = subprocess.run([sys.executable, str(Path(__file__).with_name("check-worktree.py")), "before-sync"],
capture_output=True, text=True)
if check.returncode:
@@ -301,7 +302,7 @@ def validate_precheck(receipt, purpose="start"):
if purpose != "resume-local" and after["target_head"] != current["target_head"]:
raise EvidenceError("Precheck authoritative target has changed")
if purpose.startswith("resume-"):
context = task_context(current)
context = task_context(current, require_target=purpose != "resume-local")
try:
Path(receipt["cwd"]).resolve().relative_to(context["root"])
except ValueError:
@@ -311,10 +312,11 @@ def validate_precheck(receipt, purpose="start"):
raise EvidenceError("Precheck belongs to a different task branch")
git("merge-base", "--is-ancestor", context["r0"], after["target_head"])
if purpose == "resume-local":
try:
git("merge-base", "--is-ancestor", after["target_head"], current["target_head"])
except EvidenceError:
raise EvidenceError("Precheck target history has rewound or diverged") from None
if current["target_head"]:
try:
git("merge-base", "--is-ancestor", after["target_head"], current["target_head"])
except EvidenceError:
raise EvidenceError("Precheck target history has rewound or diverged") from None
validate_local_scope(receipt, current, context)