2.4 KiB
BUG-000021 revision 2: scoped entity-assessment repair
Input: operator-provided BUG-000021-Fallakte (1).zip, revision 2, generation 43. No paid calls were executed for diagnosis or testing. The original package is unchanged.
All three assessments correctly selected Furien, entry 35286, from the complete base-name lookup. Each incorrectly used no_match for a nonempty, truncated German substring lookup containing unrelated harpy names. The validator correctly requires zero rows for no_match; previous feedback only supplied the generic ENTITY_RESOLUTION_SELECTION code.
The repair now freezes durable, index-specific diagnostics containing the actual status, row count, truncation, allowed candidates and citation constraints. Each structurally and semantically valid sibling entry is retained exactly. Only invalid entries are requested in the model response, with original search indices constrained by the local schema. The program merges them with frozen entries and runs the unchanged full assessment validation. Malformed patches retain the previously frozen entries and receive another bounded repair attempt; they cannot unlock an accepted sibling. No identity is selected automatically and no status is silently changed by string matching on the reason.
Feedback is saved before the call. Existing calls without version-2 feedback retain their exact original request. The projection is also applied when checking completed calls and replaying rejections, so persisted full assessments remain bound to the original partial response and its saved request. Limits and attempt budgets are unchanged. This patch does not silently reopen the already exhausted revision 2 or grant it another attempt.
Curated corpus: tests/fixtures/llm_rejections/20261024/bug21-localized-no-match/, approximately 18 KB. Usage snapshot: docs/test-results/token-usage/bug21-revision2-resolution-blocked-20261024.json; first-field-run snapshot remains separate. Missing cache/think-token values remain unknown; output totals do not add reasoning twice.
Validation: 60 tests passed across partial entity repair, legacy entity resolution and multidatabase research. Coverage includes the real rejected answer, strict rejection of invalid replacement sources/candidates/status, two-search completion, malformed patch recovery, restart without re-querying research, and portable replay without further model calls. Linux field verification remains pending deployment.