search-with-proof: feed the control signal back to the agent (served-root hint)

When a path demo does not serve ${served_root}, the keystone control fails
(SideRecord.control_observed False) but the search only reported a generic
inconclusive, so the agent kept making the same wiring mistake. The pilot now
surfaces the affected side's control_observed in the verify result, and the
coordinator appends one advisory, deduplicated "served-root" hint (visible in the
board snapshot the agent reads) telling it to set the served-directory config to the
${served_root} placeholder. Advisory only: verdicts, _end, the oracle, the differential
and the demo validator are unchanged; the hint fires only when control_observed is False.

Tests: coordinator + pilot_run suites 78 passed; ruff clean; mypy unchanged (pre-existing
benchmarks errors only). Host-side change, no image rebuild.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Marius Ciepluch
2026-10-07 12:03:45 +02:00
co-authored by Claude Opus 4.8
parent 84509fbdc0
commit 20c5742d84
4 changed files with 84 additions and 1 deletions
+11
View File
@@ -274,6 +274,17 @@ class Coordinator:
)
return self._end("goal_met")
self.progress["failures"].append({"task_id": result["task_id"], "reason": "not_demonstrated"})
if result.get("control_observed") is False and not any(h["id"] == "served-root" for h in self.state["hints"]):
self.state["hints"].append(
dict(
id="served-root",
step="verify",
task_id=result["task_id"],
text="The application did not serve the oracle root: its served-directory configuration "
"(argument, environment variable, or config file) must be set to the ${served_root} "
"placeholder itself, not a real path or an explore-time test directory.",
)
)
elif intent is not None:
result = self._call("explore", {"intent_id": intent["id"], "description": intent["description"]})
intent["status"] = "concluded"