hermes: require findings in worker schema
This commit is contained in:
parent
1ea8e16286
commit
2a103f9895
@ -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"
|
||||||
|
|||||||
@ -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",
|
||||||
|
|||||||
@ -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"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user