2.5 KiB
BUG-000021: independent citation diagnostics
Date: 2026-10-24. Input: operator-supplied BUG-000021-Fallakte.zip, analysis revision 1, review reason MODEL_VALIDATION_EXHAUSTED. No cloud calls were executed for this investigation or patch.
The interpretation-only fallback omitted the identity evidence for Furien in /relevant_entities/1 and independently cited a report in /described_behavior/0, where local-description facts are required. The existing statement collector diagnosed only the first issue. The next response correctly repaired the requested entity citation, but final validation rejected the previously undisclosed description citation.
The collector now reports both independent paths. Interpretation-only fallback rejections persist their diagnostics just like joint and statement-repair outputs. Feedback uses the saved diagnostics. Historical rejections without this diagnostic field retain the legacy collector, and statement-patch validation accepts the exact legacy or current deterministic issue list, preserving request and parent-call binding. No source rule or final validation was relaxed.
The curated rejection fixture is tests/fixtures/llm_rejections/20261024/bug21-independent-citation-errors/. It includes a rejected interpretation, source-validation context and analysis, not a full package or run dump. The independent usage report is docs/test-results/token-usage/bug21-first-field-review-20261024.json.
Validation: 92 passed, 1 skipped across joint-v2, early correction and entity-resolution tests; one subsequently added frozen-feedback regression passed separately. The unchanged operator package also passes correction.validate_review, including replay of its rejected calls. An additional joint-planning pipeline test fails at BLOCKED instead of OUTPUT_READY; the same test fails on the pre-patch HEAD source extracted to a temporary directory. The other 26 tests in that correction/joint-planning run pass; one is skipped.
The case detail page now distinguishes failed analysis from successful handoff. Recovery of an already exhausted revision uses the existing case-return contract with review_feedback, not a fabricated failed patch and not an in-place alteration of rejected responses. This starts a new analysis revision with the original archives and full history retained. It does not grant extra attempts to the exhausted revision. This operator recovery has not yet been executed on the VPS, and a new revision may repeat planning work. There was no hypothesis investigation budget initialized in this field run.