feat: add measured detection review loop
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-15 03:00:08 +02:00
parent 94ecd377b7
commit d22abe8e7b
27 changed files with 1578 additions and 29 deletions
+55
View File
@@ -894,6 +894,61 @@ export interface QualityEvidenceGeoJsonResponse {
geojson: GeoJSON.FeatureCollection
}
export type DetectionEvidenceRole = 'false_positive' | 'false_negative'
export type DetectionReviewDecision =
| 'confirmed_model_false_positive'
| 'confirmed_model_false_negative'
| 'reference_gap_or_change'
| 'qa_alignment_mismatch'
| 'imagery_obscured_or_uncertain'
| 'uncertain'
| 'unreviewed'
export interface DetectionReviewUpsert {
evidence_role: DetectionEvidenceRole
evidence_feature_id: string
decision: DetectionReviewDecision
notes?: string | null
reviewed_by?: string
}
export interface DetectionReviewRead {
id?: string | null
project_id: string
quality_check_id: string
analysis_run_id?: string | null
evidence_role: DetectionEvidenceRole
evidence_feature_id: string
detection_id?: string | null
reference_feature_id?: string | null
decision: DetectionReviewDecision
notes?: string | null
reviewed_by?: string | null
confidence?: number | null
class_name?: string | null
source_tile_path?: string | null
created_at?: string | null
updated_at?: string | null
}
export interface DetectionReviewSummary {
total: number
reviewed: number
remaining: number
false_positive_total: number
false_negative_total: number
decision_counts: Record<string, number>
}
export interface DetectionReviewList {
items: DetectionReviewRead[]
total: number
limit: number
offset: number
summary: DetectionReviewSummary
}
export type ExportKind = 'dataset' | 'detection_run' | 'segmentation_run' | 'vector_selection'
export interface ExportRead {