Enforce bounded operation guardrails
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 21s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
This commit is contained in:
tegwick 2026-08-23 12:31:13 +02:00
parent c384f60530
commit 26934e25b9
51 changed files with 1843 additions and 472 deletions

View file

@ -263,7 +263,7 @@ def test_execute_instruction_with_audit_returns_metadata():
assert len(result.prompt_hash) == 64
assert result.model == "test-model"
assert result.output_validated is True
assert result.review_required is True
assert result.review_advisory is True
def test_execute_instruction_forwards_llm_connect_run_config():
@ -443,7 +443,7 @@ def test_resilient_report_recovers_valid_prefix_and_quarantines_truncated_tail()
result = execute_instruction_with_audit(instr, _Event(), {}, llm)
assert result.output_validated is True
assert result.review_required is True
assert result.review_advisory is True
assert result.report is not None
assert result.report["partial"] is True
assert len(result.report["recommendations"]) == 7
@ -593,7 +593,7 @@ class _MetadataBadLLM:
return ("x" * 9000) + "{"
def test_invalid_report_preserves_response_metadata_and_long_preview():
def test_invalid_report_keeps_metadata_but_discards_provider_output():
llm = _MetadataBadLLM()
instr = _instr(
id="daily-triage-report",
@ -611,10 +611,11 @@ def test_invalid_report_preserves_response_metadata_and_long_preview():
"usage": {"input_tokens": 1100, "output_tokens": 1200},
}
assert result.report["llm_response_metadata"] == result.llm_response_metadata
assert len(result.report["raw_output_preview"]) > 4000
assert "raw_output_preview" not in result.report
assert "partial_report" not in result.report
def test_execute_instruction_with_audit_preserves_invalid_report_with_sinks(
def test_execute_instruction_with_audit_discards_invalid_report_body(
tmp_path,
monkeypatch,
):
@ -657,12 +658,13 @@ def test_execute_instruction_with_audit_preserves_invalid_report_with_sinks(
assert result.tasks == []
assert result.output_validated is False
assert result.review_required is True
assert result.review_advisory is True
assert result.validation_error == "$.recommendations[0]: missing required property 'action'"
assert result.report is not None
assert result.report["status"] == "validation_failed"
assert result.report["partial_summary"] == "Generated partial triage."
assert result.report["partial_report"] == report_data
assert "partial_summary" not in result.report
assert "partial_report" not in result.report
assert "Generated partial triage." not in str(result.report)
assert llm.call_count == 2
@ -678,7 +680,7 @@ def test_execute_instruction_with_audit_preserves_execution_failure_with_sinks()
assert result.tasks == []
assert result.output_validated is False
assert result.review_required is True
assert result.review_advisory is True
assert result.validation_error == "LLM_CONNECT_URL is not configured"
assert result.report == {
"summary": (
@ -726,8 +728,7 @@ def test_condition_true_calls_llm():
# ── review_required field ─────────────────────────────────────────────────────
def test_review_required_field_on_instruction_def():
"""review_required is a declared field on InstructionDef."""
def test_legacy_review_required_maps_to_advisory():
defn = InstructionDef(
id="test",
trusted_fields=["event.attributes.x"],
@ -737,6 +738,7 @@ def test_review_required_field_on_instruction_def():
review_required=True,
)
assert defn.review_required is True
assert defn.review_advisory is True
def test_instruction_def_accepts_llm_connect_depth_config():
@ -755,7 +757,7 @@ def test_instruction_def_accepts_llm_connect_depth_config():
assert defn.model_params == {"reasoning_effort": "medium"}
def test_review_required_defaults_to_false():
def test_review_advisory_defaults_to_false():
defn = InstructionDef(
id="test",
trusted_fields=[],
@ -763,7 +765,21 @@ def test_review_required_defaults_to_false():
prompt="p",
output_schema="schema.json",
)
assert defn.review_required is False
assert defn.review_required is None
assert defn.review_advisory is False
def test_conflicting_review_names_are_rejected():
with pytest.raises(ValueError, match="review_required conflicts"):
InstructionDef(
id="test",
trusted_fields=[],
model="claude-sonnet-4-6",
prompt="p",
output_schema="schema.json",
review_required=True,
review_advisory=False,
)
def test_unknown_root_in_field_path_raises():