Add audited operator approval for one entity repair attempt
This commit is contained in:
1 parent
4cbba4c1e4
commit
61889740e6
14 files changed
+296
-17
No files matched your search
@@ -160,6 +160,39 @@ noch abschließen; erst danach wird die Prozess-Lease freigegeben. Ein Dispatch
|
||||
kann mehrere interne Schritte/Modellanfragen enthalten und entsprechend dauern.
|
||||
Bei hartem Beenden greift beim nächsten Start der Checkpoint-Wiederanlauf.
|
||||
|
||||
## Freigabe nach einer technischen Korrektur
|
||||
|
||||
Bei `ENTITY_RESOLUTION_INVALID_RESPONSES` bietet die aktuelle Fallansicht die
|
||||
Aktion **Einen Reparaturversuch freigeben**. Vorher die technische Ursache beheben
|
||||
und im Pflichtfeld kurz dokumentieren (keine Secrets). Die Freigabe wird über den
|
||||
authentifizierten Betreiberzugang mit CSRF-Schutz vorgemerkt. Maschinenclients
|
||||
dürfen sie nicht auslösen. Der Worker prüft Zustand, Projektbindung und aktuelle
|
||||
Paketgeneration erneut. Doppelte oder veraltete Aufträge gewähren keinen weiteren Versuch.
|
||||
|
||||
Jede Freigabe erlaubt genau einen zusätzlichen Antwortversuch in der betroffenen
|
||||
Namensauflösungsstufe (Suchplan oder Bewertung), ohne die bisherigen Versuche zu
|
||||
löschen. Eine gültige Reparatur kann anschließend den regulären Ablauf fortsetzen.
|
||||
Scheitert sie, bleibt der Fall erneut gesperrt. Weitere Versuche benötigen eine neue
|
||||
ausdrückliche Freigabe. Akteur, Begründung, betroffener Antwort-Hash und Code-Hash
|
||||
werden dauerhaft als Checkpoint in der Fallakte gespeichert. Revision, gültiger
|
||||
Suchplan, Recherchebelege und Untersuchungsbudgets werden nicht zurückgesetzt.
|
||||
Die Freigabe selbst führt keine Modellanfrage aus; die anschließende Bearbeitung
|
||||
kann reguläre LLM-Kosten verursachen.
|
||||
|
||||
Alternativ bei gestopptem Worker als root unter Linux:
|
||||
|
||||
```sh
|
||||
/opt/viano-bug-analysis/.venv/bin/python -m viano_bug_analysis.worker repair --config /etc/viano-bug-analysis/worker.toml --case-id BUG-000021 --package-id api-PAKETIDENTITAET --reason "Technische Korrektur installiert; Namensbewertung gezielt reparieren"
|
||||
```
|
||||
|
||||
Danach den Worker wieder starten. Der CLI-Befehl benötigt keinen Cloud-Schlüssel,
|
||||
weil er nur eine Freigabe protokolliert. Die vorhandene Projektkonfiguration muss
|
||||
unverändert gebunden sein. Diese Freigabe ist derzeit bewusst auf ausgeschöpfte
|
||||
Namensauflösung beschränkt. Sie umgeht weder menschliche Rückfragen noch
|
||||
fachliche Budgetgrenzen und öffnet keine erfolgreich abgeschlossenen Fälle oder
|
||||
`FAILED_TO_ANALYZE`-Revisionen. Für andere Fehlergründe bleiben die jeweiligen
|
||||
Retry- beziehungsweise Review-Verfahren maßgeblich.
|
||||
|
||||
Für einen Server ist die Vorlage `deploy/viano-bug-analysis-worker.service`
|
||||
vorbereitet. Sie wird nicht automatisch installiert oder gestartet. Dienstbenutzer,
|
||||
Pfade, Zugangsdaten und gemeinsame Workspace-Berechtigungen müssen zum Zielserver
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
# Explicit technical recovery for exhausted entity resolution
|
||||
|
||||
The authenticated case detail page now supports a reasoned approval for one additional response attempt after a software correction. Scope is currently `BLOCKED / ENTITY_RESOLUTION_INVALID_RESPONSES` during interpretation, covering plan and assessment. Other technical scheduling failures retain their existing retry paths; human feedback, completed results, final review and investigation-budget limits cannot be bypassed by this action.
|
||||
|
||||
Approval is durable intent, not a model call. The worker holds its regular case lock, rechecks generation and project configuration binding, verifies exhaustion and appends a manual-resume checkpoint. Actor, reason, rejected-call hash, implementation hash, stage and next attempt number are recorded. Previous attempts, revision, captures and accepted plan are retained. The entity resolver verifies these grants on replay and extends only that stage's attempt range, by one per explicit grant. A rejected extra attempt blocks again. Grants are not automatic and repeated same-generation web submissions are deduplicated or rejected as stale.
|
||||
|
||||
Validation on 2026-10-24, no paid model calls:
|
||||
|
||||
- 99 passed across operator repair, worker, entity resolution, lifecycle checkpoints and manual packaging tests.
|
||||
- 25 passed in the dashboard/operator repair test invocation (includes tests overlapping the previous invocation).
|
||||
- Node syntax check and real Edge browser smoke passed, including rendering and dispatch arguments of the repair control; no console errors.
|
||||
- Manual package --check passed after rebuilding the bundled user manual.
|
||||
- An unchanged copy of the operator-supplied BUG-000021 revision-2 ZIP was admitted into a temporary workspace and explicitly approved. It transitioned to INTERPRETING_CASE in the same revision without a model call. Original file and VPS data were not modified. The stale source generation was correctly rejected first, then the current imported generation was used.
|
||||
|
||||
Tests cover one-attempt exhaustion, second explicit grant, plan/capture reuse for assessment recovery, original-byte preservation, portable replay without another model call, CSRF, machine-client rejection, stale generation, invalid reason, queue deduplication and rejection of unrelated block reasons. Native Linux field verification remains pending deployment. No architecture specification was changed.
|
||||
Reference in new issue
Block a user