Files
VianoBugAnalysis/docs/source-read-windows.md

4.5 KiB
Raw Permalink Blame History

Begrenzte Source-Lesefenster

project.query mit kind: source.read liest weiterhin ausschließlich aus dem konfigurierten Git-Snapshot. Übersteigt ein ansonsten gültiger inklusiver Zeilenbereich ProjectLimits.max_lines (Default 80), wird er ab der angeforderten Startzeile begrenzt ausgeführt. Die ursprüngliche Anfrage wird nicht verändert. Die Grenze ist konfigurierbar und keine Grenze des Case-Paketformats.

Beispiel: 115–215 fordert 101 Zeilen an. Geliefert werden höchstens 115–194. Das Capture enthält zusätzlich:

  • requested_line_count, line_limit, line_limit_exceeded
  • returned_line_count sowie angeforderten und gelieferten Start-/Endbereich
  • requested_range_complete, next_start_line und einen kurzen read_notice

truncated: true und requested_range_complete: false bedeuten, dass noch existierende Zeilen des angeforderten Bereichs fehlen. next_start_line nennt dann die nächste lesbare Fortsetzungszeile. Zum Weiterlesen ursprünglichen Endwert beibehalten; keine Zeilen überspringen oder erneut als neue Erkenntnis werten. eof bezieht sich auf den tatsächlich gelieferten Ausschnitt, nicht auf den ursprünglich gewünschten Endwert.

Erreicht das begrenzte Fenster bereits das Dateiende, ist keine weitere Ausgabe nötig: eof: true, truncated: false, next_start_line: null. Dies gilt auch bei einem Start hinter dem Dateiende mit leerem Ergebnis; das bisherige kontrollierte EOF-Verhalten bleibt erhalten. Vollständigkeit bezieht sich ausschließlich auf den angefragten Zeilenbereich bis EOF, nicht auf andere Dateien oder die gesamte Implementierung. Bestehende text_truncated-Angaben einzelner langer Codezeilen bleiben unabhängig davon erhalten.

Originalquery und Ergebnis werden gemeinsam unveränderlich im Capture gesichert. Das Ergebnisschema erlaubt die zusätzlichen Metadaten optional, damit historische Captures weiterhin gültig bleiben. Die begrenzte Investigation-Darstellung erhält diese Bereichs-/Fortsetzungsdaten auch außerhalb paginierter JSON-Fragmente. Normale Anfragen innerhalb der Grenze behalten ihre bisherige Ergebnisform.

Abgelehnt bleiben insbesondere nicht ganzzahlige oder nicht positive Startwerte, umgekehrte Bereiche, unsichere Pfade und nicht vorhandene Dateien. Die anderen Tooloperationen und deren Grenzen werden hierdurch nicht gelockert. Es findet keine automatische Folgeabfrage statt und kein Inhalt wird erfunden.

Lokale Tests verwenden beide kuratierten Bug-17-Antworten mit 101 und 91 Zeilen, prüfen exakt die zurückgelieferten Zeilen und lückenlose Fortsetzung, konfigurierbare Grenzen, EOF, sichere Ablehnung, Capture-Persistenz, kompakte Scope-Angaben und drei Controller-Startabfragen ohne Korrekturversuch. Keine bezahlten LLM-Aufrufe.

Prüfergebnis am 20.10.2026

16 neue Tests bestanden. Gemeinsame Prüfung mit Projekt-Recherche, Source-Kontext, begrenzter Investigation v1/v2 und Startup: 126 bestanden, 1 übersprungen, 5 fehlgeschlagen. Alle fünf Fehler wurden zusätzlich gegen den unveränderten Commit ab31924 reproduziert: ältere unbeschränkte Prompt-Tests treffen die bereits bestehende 20.000-Zeichen-Sicherung statt ihres erwarteten Folgeschritts. Betroffen sind test_model_loop_uses_project_tools_and_compact_previous_result (Varianten True, unknown, upgrade), test_started_project_loop_keeps_legacy_prompt_protocol und test_budgeted_evidence_and_portable_hybrid_resume. Keine dieser bestehenden Grenzen wurde für diese Änderung gelockert. git diff --check ohne Befund.

Explizite Wiederaufnahme nach technischer Reparatur

CheckpointStore.advance(..., manual_retry=True) erlaubt die vom Betreiber bewusst angeforderte sofortige Wiederaufnahme eines mit INVALID_LLM_RESPONSES blockierten Falls ausschließlich in dessen gespeicherten Fortsetzungszustand. Ohne dieses ausdrückliche Argument gilt weiterhin retry_not_before.

Die manuelle Wiederaufnahme darf keine Artefakte oder zusätzlichen Dateien ändern. Sie setzt weder Budget noch fachliche/technische Untersuchungsstände zurück. manual_retry: true wird im neuen unveränderlichen Lifecycle-Checkpoint protokolliert. Andere Blockierungsgründe, insbesondere AWAITING_TEST_FEEDBACK, werden dadurch nicht entsperrt. Idempotenz und Generationserwartung bleiben aktiv.

65 lokale Tests für Checkpoints, Queue und asynchrone Tests bestanden. Bug17 wurde auf ausdrücklichen Nutzerwunsch von Generation 47 auf 48 fortgesetzt; Artefakthashes und Budgeterhalt sind im separaten Wiederaufnahmebericht gesichert. Keine kostenpflichtige LLM-Ausführung durch den Entwicklungsagenten.