76 lines
4.5 KiB
Markdown
76 lines
4.5 KiB
Markdown
# 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.
|