Return bounded source excerpts instead of rejecting oversized reads
This commit is contained in:
1 parent
ab31924b79
commit
ecec96ce14
5 files changed
+232
-6
No files matched your search
@@ -0,0 +1,57 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user