todo-45.7-structured-incomplete-mixed-validation.md 1.6 KB

Todo 45.7 Structured Incomplete Mixed Validation Plan

Status: done

Result

Separated fallback eligibility from incomplete-result normalization. Structured complete=False no longer bypasses enum, type, or additional-property errors; optional-only incomplete and pure missing-only paths remain eligible.

Goal

Ensure a structured resolver's explicit complete=False signal cannot trigger LLM fallback when the resolved arguments also contain substantive validation errors.

Scope

  • Add structured-incomplete regressions for required plus enum, type, and additional-property failures.
  • Compute fallback eligibility before converting optional-schema incomplete results into INVALID_ARGUMENTS.
  • Allow fallback only for pure missing-only validation or explicit incomplete with no substantive validation error.

Files

  • Modify: src/agent_lab/application/events/kernel.py
  • Modify: tests/test_event_kernel.py

Requirement Execution Loop

Plan

  1. Add RED tests proving EventArgumentResolution(..., complete=False) plus mixed substantive errors currently calls fallback.
  2. Separate fallback_eligible from the normalized invalid result status.
  3. Preserve optional-only explicit incomplete fallback and pure required-missing fallback.
  4. Run focused/full tests and final bounded reviews.

Observe / Update

Close Todo 45 only when the named reproductions pass and no Critical/Important findings remain.

Verification

  • UV_CACHE_DIR=.uv-cache uv run pytest tests/test_event_kernel.py -q
  • UV_CACHE_DIR=.uv-cache uv run pytest
  • git diff --check