Enforce bounded operation guardrails
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
This commit is contained in:
parent
c384f60530
commit
26934e25b9
51 changed files with 1843 additions and 472 deletions
|
|
@ -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():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue