fix(cv): sync operation terminal state
CI and Deploy / test (pull_request) Successful in 5m12s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-15 19:45:44 +02:00
parent 7185491a05
commit dbff0f8d49
6 changed files with 123 additions and 3 deletions
@@ -34,12 +34,14 @@ No dependency, schema, migration, proxy timeout or production switch changed. `W
## Remaining gates and known limits
- SEC-006/007 still own fixed parser versions, page/pixel/decompression/memory/process isolation and complete parser-child cancellation/cleanup. Legacy structured parsing calls are not all cancellation-aware. No malicious file was executed.
- Cancellation of an operation before a worker claims it is authoritative in `UserOperation` and shown correctly after refresh; the underlying extraction row is reconciled when retried/processed, but immediate terminal synchronization of that dormant row remains follow-up cleanup work.
- Operation cancellation, terminal failure/deadline recovery, and explicit retry now synchronize the referenced owner-scoped extraction row immediately. A queued CV operation can no longer leave history stuck at `queued` after it is cancelled or expires before worker claim.
- Browser localhost is denied by administrator policy. No real browser/mobile/theme/keyboard/refresh/back-forward workflow or screenshot is claimed.
- The authorized private CV was not used. Synthetic input must pass the SEC-006/007 gates before that local-only check.
- The generic lease tests cover restart recovery, but no CV parser/model process was interrupted and resumed in a runtime canary.
- MariaDB, selected Ollama model, worker telemetry, production activation and rollback canary remain unverified. The worker stays default-off.
The focused CV/operation/store regression slice is now 17/17 and the full backend is 660/660 after dormant-row cancellation/deadline/retry coverage.
## Rollback
Keep `Workers:AiOperationsEnabled=false`, revert `c3c5af8`, and retain the additive operation/extraction tables. Cancel or drain queued `cv.process` operations before removing the handler. No database downgrade or artifact rewrite is required; existing extraction runs remain readable.