Commit 576de6a
fix(validator): tolerate null proposed_label in RawValidationDecisionSchema
Mirrors the _coerce_proposed_label validator already on
ValidationDecisionSchema. The chunked-validation path (added in #126,
merged into this PR via ca08fb2) routes LLM output through
RawValidationDecisionSchema instead of the wire-loose
ValidationDecisionSchema, so the existing coercer didn't apply on
that path.
Failure mode (gemma4-e4b on the post-merge bench): model emits
``proposed_label: null`` for ``decision: keep`` decisions; pydantic
rejects the entire chunk's records with ``string_type`` errors;
DataDesigner drops the row. On a 5-note × 2-mode bench across 5
candidate models, this caused gemma4-e4b's success rate to crater
to 1/5 redact + 2/5 rewrite even though the model otherwise
delivers best-in-class quality (util 0.96 / leak 0.03 on the rows
that survived).
Tests cover null and int-typed proposed_label drift. 501 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent dc0bc84 commit 576de6a
2 files changed
Lines changed: 48 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
63 | 80 | | |
64 | 81 | | |
65 | 82 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
126 | 126 | | |
127 | 127 | | |
128 | 128 | | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
129 | 160 | | |
130 | 161 | | |
131 | 162 | | |
| |||
0 commit comments