hermes: require findings in worker schema

This commit is contained in:
jenkins 2026-08-16 12:04:27 -03:00
parent 1ea8e16286
commit 2a103f9895
3 changed files with 13 additions and 2 deletions

View File

@ -25,7 +25,7 @@ spec:
ai.bstein.dev/execution: Hermes Kanban with durable direct Codex and Claude Code CLI workers ai.bstein.dev/execution: Hermes Kanban with durable direct Codex and Claude Code CLI workers
ai.bstein.dev/model-policy: Jetson-assisted AUTO routing, low through xhigh, cross-provider fallback ai.bstein.dev/model-policy: Jetson-assisted AUTO routing, low through xhigh, cross-provider fallback
ai.bstein.dev/placement: rpi5 preferred; Jetson deferred until state storage is available ai.bstein.dev/placement: rpi5 preferred; Jetson deferred until state storage is available
ai.bstein.dev/config-rev: "20260816-review-findings-contract-v3" ai.bstein.dev/config-rev: "20260816-review-findings-contract-v4"
prometheus.io/scrape: "true" prometheus.io/scrape: "true"
prometheus.io/path: /metrics prometheus.io/path: /metrics
prometheus.io/port: "9010" prometheus.io/port: "9010"

View File

@ -60,7 +60,15 @@ NO_CODEX_THREAD = "no rollout found for thread id"
RESULT_SCHEMA: dict[str, Any] = { RESULT_SCHEMA: dict[str, Any] = {
"type": "object", "type": "object",
"additionalProperties": False, "additionalProperties": False,
"required": ["status", "summary", "changed_files", "tests_run", "artifacts", "blockers"], "required": [
"status",
"summary",
"changed_files",
"tests_run",
"artifacts",
"findings",
"blockers",
],
"properties": { "properties": {
"status": { "status": {
"type": "string", "type": "string",

View File

@ -952,6 +952,9 @@ def test_worker_contract_separates_review_findings_from_task_blockers(tmp_path:
assert "put defects and risks in findings" in prompt assert "put defects and risks in findings" in prompt
assert "blockers array must be empty whenever status is completed" in prompt assert "blockers array must be empty whenever status is completed" in prompt
assert "findings" in lanes.RESULT_SCHEMA["properties"] assert "findings" in lanes.RESULT_SCHEMA["properties"]
assert set(lanes.RESULT_SCHEMA["required"]) == set(
lanes.RESULT_SCHEMA["properties"]
)
assert "assigned task itself" in lanes.RESULT_SCHEMA["properties"]["blockers"]["description"] assert "assigned task itself" in lanes.RESULT_SCHEMA["properties"]["blockers"]["description"]